Public Types | Public Member Functions

zeus::IZObjectFactory Class Reference

#include <IZObjectFactory.hpp>

Inheritance diagram for zeus::IZObjectFactory:
zeus::IZUnknown zeus::TZObjectFactory

List of all members.

Public Types

typedef Retval MQUALIFIER(* FCreateZObject )(Uint uiObjectID, IInputStream *pStream, IZUnknown *&rpObj)

Public Member Functions

virtual Retval MQUALIFIER createObjectFromStream (const IByteArray &rStream, const InterfaceID &rInterfaceID, IZUnknown *&rpObj)=0
virtual Retval MQUALIFIER createObjectByClassName (const IString &rClassName, const IString &rCodeModule, IZUnknown *&rpObj)=0
virtual Uint MQUALIFIER registerClass (const IString &rName, IZObjectFactory::FCreateZObject pFunction)=0
virtual Retval MQUALIFIER unregisterClass (const IString &rName, Uint uiHandle)=0

Detailed Description

The IZObjectFactory Interface defines the factory to create serializable objects by class name and streaming information


Member Typedef Documentation

typedef Retval MQUALIFIER(* zeus::IZObjectFactory::FCreateZObject)(Uint uiObjectID, IInputStream *pStream, IZUnknown *&rpObj)

Member Function Documentation

virtual Retval MQUALIFIER zeus::IZObjectFactory::createObjectByClassName ( const IString rClassName,
const IString rCodeModule,
IZUnknown *&  rpObj 
) [pure virtual]

Factory method to create a registered serializable object according to the classname. This will return a empty object created with the standard constructor

Parameters:
rClassName: Name of the class
rCodeModule: Code module
rpObj: Return value of created object
Return values:
RET_NOERROR: Object created
RET_REQUEST_FAILED: not a registered class

Implemented in zeus::TZObjectFactory.

virtual Retval MQUALIFIER zeus::IZObjectFactory::createObjectFromStream ( const IByteArray rStream,
const InterfaceID rInterfaceID,
IZUnknown *&  rpObj 
) [pure virtual]

Factory method to create a registered serializable object out of a byte stream.

Parameters:
rStream: Byte stream
rInterfaceID: Interface to cast
rpObj: Return value of created object
Return values:
RET_NOERROR: Object created
RET_REQUEST_FAILED: Invalid stream or Object could not be created. Eventually not a registered class

Implemented in zeus::TZObjectFactory.

virtual Uint MQUALIFIER zeus::IZObjectFactory::registerClass ( const IString rName,
IZObjectFactory::FCreateZObject  pFunction 
) [pure virtual]

Register a class

Parameters:
rName: Name of the class
pFunction: Factory function to call for creating an object of this class
Returns:
Handle of the creation. If handle is NULL (0) the registration failed

Implemented in zeus::TZObjectFactory.

virtual Retval MQUALIFIER zeus::IZObjectFactory::unregisterClass ( const IString rName,
Uint  uiHandle 
) [pure virtual]

Unregsiter a registered class

Parameters:
rName: Name of the class
uiHandle: Handle received by the registration
Return values:
RET_NOERROR: Class unregistered
RET_REQUEST_FAILED: Invalid handle or class not registered
RET_INVALID_PARAMETER: Invalid parameter received.

Implemented in zeus::TZObjectFactory.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Sun Jan 22 2012 15:28:38