Ice Reference Documentation
<<< Previous | Slice Documentation | Next >>>

# `Ice::ObjectFactory`

## Overview

    local interface ObjectFactory

A factory for objects. Object factories are used in several places, for example, when receiving "objects by value" and when ::Freeze restores a persistent object. Object factories must be implemented by the application writer, and registered with the communicator.

### Used By

`Communicator::addObjectFactory`, `Communicator::findObjectFactory`

### See Also

::Freeze

### Operation Index

`create`

  Create a new object for a given object type.

`destroy`

  Called when the factory is removed from the communicator, or if the communicator is destroyed.

## `create`

    Object create(string type);

Create a new object for a given object type. The type is the absolute Slice type id, i.e., the id relative to the unnamed top-level Slice module. For example, the absolute Slice type id for interfaces of type `Bar` in the module `Foo` is `::Foo::Bar`.

| The leading "`::`" is required.

### Parameters

`type`

  The object type.

### Return Value

The object created for the given type, or nil if the factory is unable to create the object.

## `destroy`

    void destroy();

Called when the factory is removed from the communicator, or if the communicator is destroyed.

### See Also

`Communicator::destroy`

<<< Previous | Home | Next >>>
`Ice::ObjectAdapterIdInUseException` | Up | `Ice::ObjectNotExistException`