20template <typename ItemClass, class ContainerType = typename TContainer<ItemClass>::Container>
43template <
typename ItemClass,
class ContainerType>
52 int itemCount = int(BaseClass::m_items.size());
54 bool retVal = archive.
BeginMultiTag(itemsTag, itemTag, itemCount);
62#if QT_VERSION >= 0x040700
63 BaseClass::m_items.reserve(itemCount);
65 for (
int index = 0; index < itemCount; index++){
66 BaseClass::PushBack(ItemClass());
68 ItemClass& item = BaseClass::GetAt(index);
70 retVal = retVal && archive.
BeginTag(itemTag);
72 retVal = retVal && SerializeItem(item, archive);
74 retVal = retVal && archive.
EndTag(itemTag);
78 for (
int index = 0; index < itemCount; index++){
79 ItemClass& item = BaseClass::GetAt(index);
81 retVal = retVal && archive.
BeginTag(itemTag);
83 retVal = retVal && SerializeItem(item, archive);
85 retVal = retVal && archive.
EndTag(itemTag);
89 retVal = retVal && archive.
EndTag(itemsTag);
Common implementation of an abstract container.
Common implementation for an abstract serializable container.
virtual bool SerializeItem(ItemClass &item, iser::IArchive &archive, iser::CArchiveTag *parentTagPtr=NULL)=0
Serialize a single item in the container.
TContainer< ItemClass, ContainerType > BaseClass
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
Process tag used to group data in archive stream.
@ TT_GROUP
Normal tag used for grouping of tags or processed elements.
@ TT_MULTIPLE
Multiple tag containing variable number of child tags.
Represents an input/output persistence archive for object serialization.
virtual bool EndTag(const CArchiveTag &tag)=0
Ends a tagged section in the archive.
virtual bool BeginMultiTag(const CArchiveTag &tag, const CArchiveTag &subTag, int &count)=0
Begins a tagged section containing multiple elements of the same type.
virtual bool IsStoring() const =0
Checks if this archive is in storing (writing) or loading (reading) mode.
virtual bool BeginTag(const CArchiveTag &tag)=0
Begins a tagged section in the archive.
Common class for all classes which objects can be archived or restored from archive.
Help class which provides the automatic update mechanism of the model.
This namespace contains basic implementations of standard primitives on the component level.