ZeusBase-Library  2.0.4
zeus::IZUnknown Class Referenceabstract

#include <IZUnknown.hpp>

Inheritance diagram for zeus::IZUnknown:
zeus::IListIterator< TValueType > zeus::IListIterator< zeus::IXObject * > zeus::IBatchContext zeus::ICommPipe zeus::ICriticalSection zeus::IEvent 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::IOptionManager zeus::IOutputStream zeus::IPostProcessor zeus::IPropertyAccess zeus::IRemoteObject zeus::IRunnable zeus::ISecurityManager zeus::ISecurityPlugin zeus::ISerializable zeus::IServiceLocator zeus::ISimpleCommand zeus::ISingletonManager zeus::IStringContainer zeus::ISubject zeus::ISynchronizeObject zeus::ISynchronMessage zeus::IThread zeus::IThreadManager zeus::IThreadMessageQueue zeus::ITimerEventObserver zeus::ITimerManager zeus::IUniformResourceIdentifier zeus::IVariableResolver zeus::IWaitableObject 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::IXProcess zeus::IXProcessMonitor zeus::IXProcProject zeus::IXProcTarget zeus::IXRootObject zeus::IXSDNodes zeus::IXSynchronAction zeus::IXSynchronActionListener zeus::IZeusAPI zeus::IZObjectFactory zeus::TZObject

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

§ addRef()

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::TZVariant, zeus::TAbstractStub, zeus::TSingleLinkedList< T >::TSingleListIterator, zeus::TSerialConnection, zeus::TSettingsManager, zeus::TAbstractInputStream, zeus::TXObject, zeus::TAbstractOutputStream, zeus::TAbstractRemoteObject, zeus::TBluetoothSocket, zeus::TSocket, zeus::TThread, zeus::TXObjectFactory, zeus::TFileSystemWatcher, zeus::TMapMessage, zeus::TSecurityManager, zeus::TNaming, zeus::TXLoaderObject, zeus::TXSynchronAction, zeus::TXMLMessage, zeus::TAbstractMessage, zeus::TTextMessage, zeus::TLibraryManager, zeus::TObjectMessage, zeus::TBinaryMessage, zeus::TXMemberVariable, zeus::TCommPipe, zeus::TRemoteMethodCall, zeus::TAbstractMainThread, zeus::TModule, zeus::TSimpleCommand, zeus::TXProcProject, zeus::TRemoteReference, zeus::TCriticalSection, zeus::TThreadManager, zeus::TSystemManager, zeus::TXObjectCollection, zeus::TZeusAPI, zeus::TPeerFinder, zeus::TFingerPrint, zeus::TZObject, zeus::TStdLogger, zeus::TCommPipe_Stub, zeus::TXMLBatchProcessor, zeus::TPropertyFile, zeus::TTimerManager, zeus::TMutex, zeus::TOptionManager, zeus::TEvent, zeus::TZObjectFactory, zeus::TAbstractXProcess, zeus::TThreadMessageQueue, zeus::TSingletonManager, zeus::TNamedContext, zeus::TXProcTarget, zeus::TStringContainer, zeus::TSynchronizeObject, zeus::TVariableResolver, zeus::TXRootObject, zeus::TAbstractModuleSession, zeus::TXErrorObject, zeus::TLocalMapMessage, zeus::TBatchContext, zeus::TTimerEventGroupContainer, zeus::TNamedObject, zeus::TTimerEvent, zeus::TTimerEventHandleCreator, zeus::TNamedContext_Stub, zeus::TMessagePool_Stub, and zeus::TMessageServerConnection_Stub.

§ askForInterface()

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
rInterfaceID: ID of the requested interface
rpIface: 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::TZVariant, zeus::TAbstractStub, zeus::TSingleLinkedList< T >::TSingleListIterator, zeus::TSerialConnection, zeus::TSettingsManager, zeus::TAbstractInputStream, zeus::TXObject, zeus::TAbstractOutputStream, zeus::TAbstractRemoteObject, zeus::TBluetoothSocket, zeus::TSocket, zeus::TThread, zeus::TXObjectFactory, zeus::TFileSystemWatcher, zeus::TSecurityManager, zeus::TNaming, zeus::TXLoaderObject, zeus::TXSynchronAction, zeus::TLibraryManager, zeus::TXMemberVariable, zeus::TCommPipe, zeus::TRemoteMethodCall, zeus::TAbstractMainThread, zeus::TModule, zeus::TSimpleCommand, zeus::TXProcProject, zeus::TCriticalSection, zeus::TThreadManager, zeus::TSystemManager, zeus::TXObjectCollection, zeus::TZeusAPI, zeus::TPeerFinder, zeus::TZObject, zeus::TStdLogger, zeus::TCommPipe_Stub, zeus::TXMLBatchProcessor, zeus::TPropertyFile, zeus::TTimerManager, zeus::TMutex, zeus::TOptionManager, zeus::TEvent, zeus::TZObjectFactory, zeus::TAbstractXProcess, zeus::TThreadMessageQueue, zeus::TSingletonManager, zeus::TNamedContext, zeus::TXProcTarget, zeus::TStringContainer, zeus::TSynchronizeObject, zeus::TVariableResolver, zeus::TXRootObject, zeus::TAbstractModuleSession, zeus::TXErrorObject, zeus::TLocalMapMessage, zeus::TBatchContext, zeus::TTimerEventGroupContainer, zeus::TNamedObject, zeus::TTimerEvent, zeus::TTimerEventHandleCreator, zeus::TNamedContext_Stub, zeus::TMessagePool_Stub, and zeus::TMessageServerConnection_Stub.

§ release()

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::TZVariant, zeus::TAbstractStub, zeus::TSingleLinkedList< T >::TSingleListIterator, zeus::TSerialConnection, zeus::TSettingsManager, zeus::TAbstractInputStream, zeus::TXObject, zeus::TAbstractOutputStream, zeus::TAbstractRemoteObject, zeus::TBluetoothSocket, zeus::TSocket, zeus::TThread, zeus::TXObjectFactory, zeus::TFileSystemWatcher, zeus::TMapMessage, zeus::TSecurityManager, zeus::TNaming, zeus::TXLoaderObject, zeus::TXSynchronAction, zeus::TXMLMessage, zeus::TAbstractMessage, zeus::TTextMessage, zeus::TLibraryManager, zeus::TObjectMessage, zeus::TBinaryMessage, zeus::TXMemberVariable, zeus::TCommPipe, zeus::TRemoteMethodCall, zeus::TAbstractMainThread, zeus::TModule, zeus::TSimpleCommand, zeus::TXProcProject, zeus::TRemoteReference, zeus::TCriticalSection, zeus::TThreadManager, zeus::TSystemManager, zeus::TXObjectCollection, zeus::TZeusAPI, zeus::TPeerFinder, zeus::TFingerPrint, zeus::TZObject, zeus::TStdLogger, zeus::TCommPipe_Stub, zeus::TXMLBatchProcessor, zeus::TPropertyFile, zeus::TTimerManager, zeus::TMutex, zeus::TOptionManager, zeus::TEvent, zeus::TZObjectFactory, zeus::TAbstractXProcess, zeus::TThreadMessageQueue, zeus::TSingletonManager, zeus::TNamedContext, zeus::TXProcTarget, zeus::TStringContainer, zeus::TSynchronizeObject, zeus::TVariableResolver, zeus::TXRootObject, zeus::TAbstractModuleSession, zeus::TXErrorObject, zeus::TLocalMapMessage, zeus::TBatchContext, zeus::TTimerEventGroupContainer, zeus::TNamedObject, zeus::TTimerEvent, zeus::TTimerEventHandleCreator, zeus::TNamedContext_Stub, zeus::TMessagePool_Stub, and zeus::TMessageServerConnection_Stub.


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


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Tue Sep 13 2016 22:31:45