|
ACF $AcfVersion:0$
|
Specific container implementation for factorisable items. More...
#include <TFactorisableContainer.h>
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< ItemClass, ContainerType > | |
| typedef ContainerType | 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... | |
| typedef QMultiMap< QByteArray, QVariant > | ChangeInfoMap |
Public Types inherited from ibase::CObservableListBase | |
| enum | ChangeFlags { CF_ELEMENT_ADDED = 0x382b230 , CF_ELEMENT_REMOVED , CF_ELEMENT_UPDATED , CF_RESET } |
Public Member Functions | |
| TFactorisableContainer () | |
| virtual | ~TFactorisableContainer () |
| InterfaceClass * | InsertElement (int index, const QByteArray &elementFactoryKey) |
| Insert an element into the container at given index. | |
| InterfaceClass * | AddElement (const QByteArray &elementFactoryKey) |
| Add an element to the container. | |
| InterfaceClass * | GetElement (int elementIndex) const |
Gets an element with given index elementIndex from the container. | |
| int | GetElementIndex (const InterfaceClass &elementRef) const |
| Gets the index of given element from the container. | |
| QByteArray | GetElementKey (int elementIndex) const |
Gets the element key associated with the element with given elementIndex from the container. | |
| void | RegisterItemFactory (istd::TIFactory< InterfaceClass > *itemFactoryPtr) |
| Register factory instance for creation of container items. | |
| virtual bool | Serialize (iser::IArchive &archive) override |
| Load or store state of this object as a archive stream. | |
Public Member Functions inherited from ibase::TContainer< ItemClass, ContainerType > | |
| virtual void | Reserve (int count) |
| virtual void | Resize (int count) |
| virtual void | RemoveAt (int index) |
| virtual void | Reset () |
| const ItemClass & | GetAt (int index) const |
| ItemClass & | GetAt (int index) |
| ItemClass & | PushBack (const ItemClass &item) |
| ItemClass & | PushFront (const ItemClass &item) |
| ItemClass & | InsertAt (const ItemClass &item, int index) |
| void | PopBack () |
| void | PopFront () |
| void | push_back (const ItemClass &item) |
| void | push_front (const ItemClass &item) |
| ItemClass & | operator[] (qsizetype index) |
| const ItemClass & | operator[] (qsizetype index) const |
| Container::iterator | insert (qsizetype index, const ItemClass &item) |
| Container::iterator | insert (qsizetype index, ItemClass &&item) |
| void | remove (qsizetype i) |
| void | resize (qsizetype size) |
| qsizetype | size () const |
| TContainer & | operator= (const TContainer &container) |
| virtual int | GetItemsCount () const override |
| Returns number of elements in the container. | |
| virtual bool | IsEmpty () const override |
Returns a true if container is empty, otherwise a false. | |
| virtual bool | IsIndexValid (int index) const override |
| virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override |
| Container::iterator | begin () |
| Container::iterator | end () |
| Container::const_iterator | begin () const |
| Container::const_iterator | end () const |
| Container::const_iterator | cbegin () const |
| Container::const_iterator | cend () const |
| bool | operator== (const TContainer &other) const |
| bool | operator!= (const TContainer &other) const |
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::IChangeable > | CloneMe (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 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. | |
Protected Member Functions | |
| virtual InterfaceClass * | CreateElement (const QByteArray &itemKey) |
| virtual void | OnElementCreated (InterfaceClass *elementPtr) |
| virtual bool | SerializeItem (ItemClass &item, iser::IArchive &archive, iser::CArchiveTag *parentTagPtr=nullptr) override |
| Serialize a single item in the container. | |
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. | |
Protected Attributes | |
| istd::TIFactory< InterfaceClass > * | m_itemFactoryPtr |
Protected Attributes inherited from ibase::TContainer< ItemClass, ContainerType > | |
| Items | m_items |
Additional Inherited Members | |
Static Public Member Functions inherited from istd::IChangeable | |
| static const ChangeSet & | GetNoChanges () |
| Get empty set of changes. | |
| static const ChangeSet & | GetAnyChange () |
| Get anonymous change set. | |
| static const ChangeSet & | GetAllChanges () |
| Get anonymous change set. | |
| static const ChangeSet & | GetDelegatedChanges () |
| Get delegated change set. | |
Static Public Attributes inherited from ibase::CObservableListBase | |
| static const QByteArray | CN_INDEX_ID = QByteArrayLiteral("INDEX") |
Protected Types inherited from ibase::TContainer< ItemClass, ContainerType > | |
| typedef ContainerType | Items |
Static Protected Member Functions inherited from ibase::CObservableListBase | |
| static istd::IChangeable::ChangeSet | ElementAddChanges (qsizetype index) |
| static istd::IChangeable::ChangeSet | ElementRemoveChanges (qsizetype index) |
| static istd::IChangeable::ChangeSet | ElementUpdatedChanges (qsizetype index) |
Static Protected Attributes inherited from ibase::TContainer< ItemClass, ContainerType > | |
| static const ChangeSet | s_resetChange |
Specific container implementation for factorisable items.
This container implementation supports following features:
Definition at line 26 of file TFactorisableContainer.h.
| typedef ibase::TSerializableContainer<ItemClass> ibase::TFactorisableContainer< InterfaceClass >::BaseClass |
Definition at line 32 of file TFactorisableContainer.h.
| typedef QPair<istd::TSmartPtr<InterfaceClass>, QByteArray> ibase::TFactorisableContainer< InterfaceClass >::ItemClass |
Definition at line 31 of file TFactorisableContainer.h.
| ibase::TFactorisableContainer< InterfaceClass >::TFactorisableContainer | ( | ) |
Definition at line 85 of file TFactorisableContainer.h.
|
virtual |
Definition at line 92 of file TFactorisableContainer.h.
| InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::AddElement | ( | const QByteArray & | elementFactoryKey | ) |
Add an element to the container.
Definition at line 99 of file TFactorisableContainer.h.
References istd::TTransPtr< Type >::GetPtr(), and istd::TTransPtr< Type >::IsValid().
|
protectedvirtual |
Definition at line 231 of file TFactorisableContainer.h.
| 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 123 of file TFactorisableContainer.h.
| int ibase::TFactorisableContainer< InterfaceClass >::GetElementIndex | ( | const InterfaceClass & | elementRef | ) | const |
Gets the index of given element from the container.
Definition at line 134 of file TFactorisableContainer.h.
| 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 148 of file TFactorisableContainer.h.
| InterfaceClass * ibase::TFactorisableContainer< InterfaceClass >::InsertElement | ( | int | index, |
| const QByteArray & | elementFactoryKey | ||
| ) |
Insert an element into the container at given index.
Definition at line 111 of file TFactorisableContainer.h.
References istd::TTransPtr< Type >::GetPtr(), and istd::TTransPtr< Type >::IsValid().
|
protectedvirtual |
Definition at line 251 of file TFactorisableContainer.h.
| void ibase::TFactorisableContainer< InterfaceClass >::RegisterItemFactory | ( | istd::TIFactory< InterfaceClass > * | itemFactoryPtr | ) |
Register factory instance for creation of container items.
Definition at line 159 of file TFactorisableContainer.h.
|
overridevirtual |
Load or store state of this object as a archive stream.
Type of operation is depending on archive type.
Reimplemented from ibase::TSerializableContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >.
Definition at line 168 of file TFactorisableContainer.h.
References iser::IArchive::BeginMultiTag(), iser::IArchive::BeginTag(), iser::IArchive::EndTag(), istd::IChangeable::GetAllChanges(), iser::IArchive::IsStoring(), iser::IArchive::Process(), iser::CArchiveTag::TT_GROUP, iser::CArchiveTag::TT_LEAF, and iser::CArchiveTag::TT_MULTIPLE.
|
overrideprotectedvirtual |
Serialize a single item in the container.
Implements ibase::TSerializableContainer< QPair< istd::TSmartPtr< InterfaceClass >, QByteArray > >.
Definition at line 259 of file TFactorisableContainer.h.
References iser::ISerializable::Serialize().
|
protected |
Definition at line 80 of file TFactorisableContainer.h.