zeus::IZUnknown Class Reference

#include <IZUnknown.hpp>

Inheritance diagram for zeus::IZUnknown:

zeus::IListIterator< TValueType > zeus::ICommPipe zeus::ICriticalSection zeus::IInputStream zeus::ILibraryManager zeus::IListIterator< T > zeus::ILogger zeus::IMessagePool zeus::IMessageQueue zeus::IMessageServerConnection zeus::IModule zeus::IModuleSession zeus::INamedContext zeus::INamedObject zeus::IObserver zeus::IOutputStream zeus::IPostProcessor zeus::IPropertyAccess zeus::IRemoteObject zeus::IRunnable zeus::ISecurityManager zeus::ISecurityPlugin zeus::ISerializable zeus::ISimpleCommand zeus::ISingletonManager zeus::IStringContainer zeus::ISubject zeus::ISynchronizeObject zeus::ISynchronMessage zeus::IThread zeus::IThreadManager zeus::IThreadMessageQueue zeus::IXErrorObject zeus::IXLoaderObject zeus::IXMemberVariable zeus::IXMLDocument zeus::IXMLErrorReporter zeus::IXMLNode zeus::IXMLNodeError zeus::IXMLNodeList zeus::IXMLParser zeus::IXObject zeus::IXObjectCollection zeus::IXObjectCompare zeus::IXObjectFactory zeus::IXPathResults zeus::IXRootObject zeus::IXSDNodes zeus::IXSynchronAction zeus::IXSynchronActionListener zeus::IZeusAPI zeus::IZObjectFactory zeus::TZObject

List of all members.

Public Member Functions

virtual Retval MQUALIFIER askForInterface (const InterfaceID &rInterfaceID, IZUnknown *&rpIface)=0
virtual void MQUALIFIER addRef () const =0
virtual void MQUALIFIER release () const =0


Detailed Description

The interface IZUnknown is used as the basic interface of the framework. It defines methods for memory management in C++. The concept is based on reference counters. Each call of addRef will increase the counter, each call of release() will decrease the counter. If the counter reaches zero, the object will be deleted automatically. When creating an new object, the reference counter is initalized with one and no addRef() must be called.

Member Function Documentation

virtual Retval MQUALIFIER zeus::IZUnknown::askForInterface ( const InterfaceID rInterfaceID,
IZUnknown *&  rpIface 
) [pure virtual]

This method is used to cast to different interface types. This is a secure way asking for other implemented interfaces, since C++ does not reject invalid casts.

Parameters:
uiInterfaceID : ID of the requested interface
ppIface : return value of the interface. The pointer contains the address of the requested interface
Return values:
RET_NOERROR : Interface returned
RET_UNKNOWN_INTERFACE : Interface is not valid or not implemented

Implemented in zeus::TSingleLinkedList< T >::TSingleListIterator.

virtual void MQUALIFIER zeus::IZUnknown::addRef (  )  const [pure virtual]

This method increases the reference counter of this object. The call is const because it will not change the content of the object, since the reference counter is not an object data. This allows to handle const reference using addRef() and release().

Implemented in zeus::TAbstractMessage, zeus::TBinaryMessage, zeus::TCommPipe, zeus::TCommPipe_Stub, zeus::TMapMessage, zeus::TMessagePool_Stub, zeus::TMessageServerConnection_Stub, zeus::TObjectMessage, zeus::TTextMessage, zeus::TXMLMessage, zeus::TAbstractModuleSession, zeus::TModule, zeus::TSimpleCommand, zeus::TSystemManager, zeus::TZeusAPI, zeus::TBluetoothSocket, zeus::TPeerFinder, zeus::TSerialConnection, zeus::TSocket, zeus::TAbstractRemoteObject, zeus::TAbstractStub, zeus::TNamedContext, zeus::TNamedContext_Stub, zeus::TNamedObject, zeus::TNaming, zeus::TRemoteMethodCall, zeus::TRemoteReference, zeus::TFingerPrint, zeus::TSecurityManager, zeus::TAbstractInputStream, zeus::TAbstractMainThread, zeus::TAbstractOutputStream, zeus::TCriticalSection, zeus::TFileSystemWatcher, zeus::TLibraryManager, zeus::TMutex, zeus::TPropertyFile, zeus::TSettingsManager, zeus::TSingleLinkedList< T >::TSingleListIterator, zeus::TSingletonManager, zeus::TStdLogger, zeus::TStringContainer, zeus::TSynchronizeObject, zeus::TThread, zeus::TThreadManager, zeus::TThreadMessageQueue, zeus::TXErrorObject, zeus::TXLoaderObject, zeus::TXMemberVariable, zeus::TXObject, zeus::TXObjectCollection, zeus::TXObjectFactory, zeus::TXRootObject, zeus::TXSynchronAction, zeus::TZObject, zeus::TZObjectFactory, and zeus::TZVariant.

virtual void MQUALIFIER zeus::IZUnknown::release (  )  const [pure virtual]

This method decreases the reference counter of this object. This call is const as well (like addRef()). The killing of an object is allowed by const method, because the content is not used any more.

Implemented in zeus::TAbstractMessage, zeus::TBinaryMessage, zeus::TCommPipe, zeus::TCommPipe_Stub, zeus::TMapMessage, zeus::TMessagePool_Stub, zeus::TMessageServerConnection_Stub, zeus::TObjectMessage, zeus::TTextMessage, zeus::TXMLMessage, zeus::TAbstractModuleSession, zeus::TModule, zeus::TSimpleCommand, zeus::TSystemManager, zeus::TZeusAPI, zeus::TBluetoothSocket, zeus::TPeerFinder, zeus::TSerialConnection, zeus::TSocket, zeus::TAbstractRemoteObject, zeus::TAbstractStub, zeus::TNamedContext, zeus::TNamedContext_Stub, zeus::TNamedObject, zeus::TNaming, zeus::TRemoteMethodCall, zeus::TRemoteReference, zeus::TFingerPrint, zeus::TSecurityManager, zeus::TAbstractInputStream, zeus::TAbstractMainThread, zeus::TAbstractOutputStream, zeus::TCriticalSection, zeus::TFileSystemWatcher, zeus::TLibraryManager, zeus::TMutex, zeus::TPropertyFile, zeus::TSettingsManager, zeus::TSingleLinkedList< T >::TSingleListIterator, zeus::TSingletonManager, zeus::TStdLogger, zeus::TStringContainer, zeus::TSynchronizeObject, zeus::TThread, zeus::TThreadManager, zeus::TThreadMessageQueue, zeus::TXErrorObject, zeus::TXLoaderObject, zeus::TXMemberVariable, zeus::TXObject, zeus::TXObjectCollection, zeus::TXObjectFactory, zeus::TXRootObject, zeus::TXSynchronAction, zeus::TZObject, zeus::TZObjectFactory, and zeus::TZVariant.


The documentation for this class was generated from the following file:


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Wed Oct 28 21:42:35 2009