Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ibase::TFactorisableContainer< InterfaceClass > Class Template Reference

Specific container implementation for factorisable items. More...

#include <TFactorisableContainer.h>

Inheritance diagram for ibase::TFactorisableContainer< InterfaceClass >:
ibase::TSerializableContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > > ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container > iser::ISerializable istd::IContainerInfo istd::IChangeable istd::IChangeable istd::IPolymorphic istd::IPolymorphic

Public Types

typedef QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > 
ItemClass
 
typedef
ibase::TSerializableContainer
< ItemClass
BaseClass
 
- Public Types inherited from ibase::TSerializableContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >
typedef TContainer< QPair
< istd::TSmartPtr
< InterfaceClass >, QByteArray >
, typename TContainer< QPair
< istd::TSmartPtr
< InterfaceClass >, QByteArray >
>::Container
BaseClass
 
- Public Types inherited from ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container >
enum  ChangeFlags
 
typedef typename TContainer
< QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray >
>::Container 
Container
 
- 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...
 

Public Member Functions

 TFactorisableContainer ()
 
virtual ~TFactorisableContainer ()
 
InterfaceClass * InsertElement (int index, const QByteArray &elementFactoryKey)
 Insert an element into the container at given index. More...
 
InterfaceClass * AddElement (const QByteArray &elementFactoryKey)
 Add an element to the container. More...
 
InterfaceClass * GetElement (int elementIndex) const
 Gets an element with given index elementIndex from the container. More...
 
int GetElementIndex (const InterfaceClass &elementRef) const
 Gets the index of given element from the container. More...
 
QByteArray GetElementKey (int elementIndex) const
 Gets the element key associated with the element with given elementIndex from the container. More...
 
void RegisterItemFactory (istd::TIFactory< InterfaceClass > *itemFactoryPtr)
 
bool Serialize (iser::IArchive &archive)
 Load or store state of this object as a archive stream. More...
 
- Public Member Functions inherited from ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container >
virtual void Reserve (int count)
 
virtual void Resize (int count)
 
const QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > & 
GetAt (int index) const
 
QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > & 
GetAt (int index)
 
QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > & 
PushBack (const QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > &item)
 
QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > & 
PushFront (const QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > &item)
 
QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray > & 
InsertAt (const QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > &item, int index)
 
void PopBack ()
 
void PopFront ()
 
void RemoveAt (int index)
 
virtual void Reset ()
 
TContaineroperator= (const TContainer &container)
 
virtual int GetItemsCount () const
 Returns number of elements in the container. More...
 
virtual bool IsEmpty () const
 Returns a true if container is empty, otherwise a false. More...
 
virtual bool IsIndexValid (int index) const
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations. More...
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one. More...
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object. More...
 
virtual IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object. More...
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state. More...
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction. More...
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction. More...
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes. More...
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes. More...
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from iser::ISerializable
virtual quint32 GetMinimalVersion (int versionId) const
 Get minimal needed version to correct storing of this data. More...
 

Protected Member Functions

virtual InterfaceClass * CreateElement (const QByteArray &itemKey)
 
virtual void OnElementCreated (InterfaceClass *elementPtr)
 
virtual bool SerializeItem (ItemClass &item, iser::IArchive &archive)
 Serialize a single item in the container. More...
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event. More...
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event. More...
 

Protected Attributes

istd::TIFactory< InterfaceClass > * m_itemFactoryPtr
 
- Protected Attributes inherited from ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container >
Items m_items
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes. More...
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set. More...
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set. More...
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set. More...
 
- Protected Types inherited from ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container >
typedef typename TContainer
< QPair< istd::TSmartPtr
< InterfaceClass >, QByteArray >
>::Container 
Items
 
- Static Protected Attributes inherited from ibase::TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray >, typename TContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >::Container >
static const ChangeSet s_elementAddChange
 
static const ChangeSet s_elementRemoveChange
 
static const ChangeSet s_resetChange
 

Detailed Description

template<class InterfaceClass>
class ibase::TFactorisableContainer< InterfaceClass >

Specific container implementation for factorisable items.

This container implementation supports following features:

Definition at line 26 of file TFactorisableContainer.h.

Member Typedef Documentation

template<class InterfaceClass >
typedef ibase::TSerializableContainer<ItemClass> ibase::TFactorisableContainer< InterfaceClass >::BaseClass

Definition at line 32 of file TFactorisableContainer.h.

template<class InterfaceClass >
typedef QPair<istd::TSmartPtr<InterfaceClass>, QByteArray> ibase::TFactorisableContainer< InterfaceClass >::ItemClass

Definition at line 31 of file TFactorisableContainer.h.

Constructor & Destructor Documentation

template<class InterfaceClass >
ibase::TFactorisableContainer< InterfaceClass >::TFactorisableContainer ( )

Definition at line 82 of file TFactorisableContainer.h.

References NULL.

template<class InterfaceClass >
ibase::TFactorisableContainer< InterfaceClass >::~TFactorisableContainer ( )
virtual

Definition at line 89 of file TFactorisableContainer.h.

Member Function Documentation

template<class InterfaceClass >
InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::AddElement ( const QByteArray &  elementFactoryKey)

Add an element to the container.

Definition at line 96 of file TFactorisableContainer.h.

References istd::TTransPtr< Type >::GetPtr(), and istd::TTransPtr< Type >::IsValid().

template<class InterfaceClass >
InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::CreateElement ( const QByteArray &  itemKey)
protectedvirtual

Definition at line 228 of file TFactorisableContainer.h.

References NULL.

template<class InterfaceClass >
InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::GetElement ( int  elementIndex) const

Gets an element with given index elementIndex from the container.

You will need this function, because the GetAt() returns an ItemClass instance, which is not usable.

Definition at line 120 of file TFactorisableContainer.h.

References NULL.

template<class InterfaceClass >
int ibase::TFactorisableContainer< InterfaceClass >::GetElementIndex ( const InterfaceClass &  elementRef) const

Gets the index of given element from the container.

Definition at line 131 of file TFactorisableContainer.h.

template<class InterfaceClass >
QByteArray ibase::TFactorisableContainer< InterfaceClass >::GetElementKey ( int  elementIndex) const

Gets the element key associated with the element with given elementIndex from the container.

Definition at line 145 of file TFactorisableContainer.h.

template<class InterfaceClass >
InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::InsertElement ( int  index,
const QByteArray &  elementFactoryKey 
)

Insert an element into the container at given index.

Definition at line 108 of file TFactorisableContainer.h.

References istd::TTransPtr< Type >::GetPtr(), and istd::TTransPtr< Type >::IsValid().

template<class InterfaceClass >
void ibase::TFactorisableContainer< InterfaceClass >::OnElementCreated ( InterfaceClass *  elementPtr)
protectedvirtual

Definition at line 252 of file TFactorisableContainer.h.

template<class InterfaceClass >
void ibase::TFactorisableContainer< InterfaceClass >::RegisterItemFactory ( istd::TIFactory< InterfaceClass > *  itemFactoryPtr)

Definition at line 156 of file TFactorisableContainer.h.

template<class InterfaceClass >
bool ibase::TFactorisableContainer< InterfaceClass >::Serialize ( iser::IArchive archive)
virtual
template<class InterfaceClass >
bool ibase::TFactorisableContainer< InterfaceClass >::SerializeItem ( ItemClass item,
iser::IArchive archive 
)
protectedvirtual

Serialize a single item in the container.

Implements ibase::TSerializableContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >.

Definition at line 260 of file TFactorisableContainer.h.

References NULL, and iser::ISerializable::Serialize().

Member Data Documentation

template<class InterfaceClass >
istd::TIFactory<InterfaceClass>* ibase::TFactorisableContainer< InterfaceClass >::m_itemFactoryPtr
protected

Definition at line 77 of file TFactorisableContainer.h.


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

© 2007-2017 Witold Gantzke and Kirill Lepskiy