ACF $AcfVersion:0$
Public Types | Public Member Functions | Protected Member Functions | List of all members
ibase::CObjectQueueComp Class Reference

Implementation of ibase::IObjectQueue including some smart optimizations. More...

#include <CObjectQueueComp.h>

Inheritance diagram for ibase::CObjectQueueComp:
icomp::CComponentBase ibase::IObjectQueue iser::ISerializable icomp::IComponent istd::IChangeable istd::IChangeable istd::IPolymorphic istd::IPolymorphic istd::IPolymorphic

Public Types

typedef icomp::CComponentBase BaseClass
 
- Public Types inherited from ibase::IObjectQueue
typedef QVector< istd::IChangeable * > ObjectList
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

virtual int GetObjectsCount (const QByteArray *typeIdPtr=NULL) const override
 Get number of objects in this queue.
 
virtual void ClearQueue () override
 Remove all objects from queue.
 
virtual istd::IChangeableCreateFrontObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Create object at the front of this queue.
 
virtual istd::IChangeableCreateBackObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Create object at the end of this queue.
 
virtual void RemoveFrontObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Remove object at the front of this queue.
 
virtual void RemoveBackObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Remove object at the end of this queue.
 
virtual istd::IChangeableGetFrontObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) const override
 Get object at the front of queue.
 
virtual istd::IChangeableGetBackObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) const override
 Get object at the end of queue.
 
virtual void SelectObjects (ObjectList &result, bool doAppend=false, int offsetPos=0, const QByteArray *typeIdPtr=NULL) const override
 Find set of objects.
 
virtual istd::IChangeablePopFrontObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Get object at the front of queue and remove it from queue.
 
virtual istd::IChangeablePopBackObject (int offsetPos=0, const QByteArray *typeIdPtr=NULL) override
 Get object at the end of queue and remove it from queue.
 
virtual bool Serialize (iser::IArchive &archive) override
 Load or store state of this object as a archive stream.
 
- Public Member Functions inherited from icomp::CComponentBase
 CComponentBase ()
 Create component and assign it to specific context.
 
virtual const icomp::IComponentGetParentComponent (bool ownerOnly=false) const override
 Get parent of this component.
 
virtual void * GetInterface (const istd::CClassInfo &interfaceType, const QByteArray &subId="") override
 Get access to specified component interface.
 
virtual IComponentContextSharedPtr GetComponentContext () const override
 Get access to component context describing all application-specified component information loaded from components registry.
 
virtual void SetComponentContext (const IComponentContextSharedPtr &contextPtr, const icomp::IComponent *parentPtr, bool isParentOwner) override
 Set component context of this component.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from iser::ISerializable
virtual quint32 GetMinimalVersion (int versionId) const
 Get minimal needed version to correct storing of this data.
 

Protected Member Functions

istd::IChangeableCreateObject ()
 
void TryReductReserve ()
 
virtual void OnComponentDestroyed () override
 
- Protected Member Functions inherited from icomp::CComponentBase
bool IsComponentActive () const
 Check if component is active.
 
virtual void OnComponentCreated ()
 
virtual const icomp::IRealComponentStaticInfoGetComponentStaticInfo () const =0
 Get access to static info of this component.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Static Protected Member Functions inherited from icomp::CComponentBase
static const icomp::IRealComponentStaticInfoInitStaticInfo (IComponent *componentPtr)
 
static QByteArray GetComponentId (const icomp::IComponentContext *componentContextPtr, const QByteArray &contextId=QByteArray())
 

Detailed Description

Implementation of ibase::IObjectQueue including some smart optimizations.

Definition at line 21 of file CObjectQueueComp.h.

Member Typedef Documentation

◆ BaseClass

Definition at line 27 of file CObjectQueueComp.h.

Member Function Documentation

◆ ClearQueue()

virtual void ibase::CObjectQueueComp::ClearQueue ( )
overridevirtual

Remove all objects from queue.

Implements ibase::IObjectQueue.

◆ CreateBackObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::CreateBackObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Create object at the end of this queue.

This object belongs to queue, and will be by the queue removed from memory.

Parameters
offsetPosposition from the end, where the object should be placed.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ CreateFrontObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::CreateFrontObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Create object at the front of this queue.

This object belongs to queue, and will be by the queue removed from memory.

Parameters
offsetPosposition from the front, where the object should be placed.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ CreateObject()

istd::IChangeable * ibase::CObjectQueueComp::CreateObject ( )
protected

◆ GetBackObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::GetBackObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
) const
overridevirtual

Get object at the end of queue.

Parameters
offsetPosposition from the end.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ GetFrontObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::GetFrontObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
) const
overridevirtual

Get object at the front of queue.

Parameters
offsetPosposition from the front.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ GetObjectsCount()

virtual int ibase::CObjectQueueComp::GetObjectsCount ( const QByteArray *  typeIdPtr = NULL) const
overridevirtual

Get number of objects in this queue.

Parameters
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ OnComponentDestroyed()

virtual void ibase::CObjectQueueComp::OnComponentDestroyed ( )
overrideprotectedvirtual

Reimplemented from icomp::CComponentBase.

◆ PopBackObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::PopBackObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Get object at the end of queue and remove it from queue.

It means, this object will be overtaken by caller.

Parameters
offsetPosposition from the end.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ PopFrontObject()

virtual istd::IChangeable * ibase::CObjectQueueComp::PopFrontObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Get object at the front of queue and remove it from queue.

It means, this object will be overtaken by caller.

Parameters
offsetPosposition from the front.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ RemoveBackObject()

virtual void ibase::CObjectQueueComp::RemoveBackObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Remove object at the end of this queue.

The object must not be physically removed from memory at this moment.

Parameters
offsetPosposition from the end.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ RemoveFrontObject()

virtual void ibase::CObjectQueueComp::RemoveFrontObject ( int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
)
overridevirtual

Remove object at the front of this queue.

The object must not be physically removed from memory at this moment.

Parameters
offsetPosposition from the front.
typeIdPtroptional object ID, if many of object types are supported.

Implements ibase::IObjectQueue.

◆ SelectObjects()

virtual void ibase::CObjectQueueComp::SelectObjects ( ObjectList result,
bool  doAppend = false,
int  offsetPos = 0,
const QByteArray *  typeIdPtr = NULL 
) const
overridevirtual

Find set of objects.

Implements ibase::IObjectQueue.

◆ Serialize()

virtual bool ibase::CObjectQueueComp::Serialize ( iser::IArchive archive)
overridevirtual

Load or store state of this object as a archive stream.

Type of operation is depending on archive type.

See also
iser::IArchive

Implements iser::ISerializable.

◆ TryReductReserve()

void ibase::CObjectQueueComp::TryReductReserve ( )
protected

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