1 #if defined(CONTINFO__HPP) && !defined(CONTINFO__INL)
49 : m_ContainerType(0), m_ContainerPtr(0), m_IteratorData(0)
65 return m_ContainerType;
72 return m_ContainerPtr;
79 if ( containerType ) {
89 : m_ContainerType(0), m_ContainerPtr(0), m_IteratorData(0)
105 return m_ContainerType;
112 return m_ContainerPtr;
119 if ( containerType ) {
132 it.m_ContainerType =
this;
133 it.m_ContainerPtr = obj;
140 _ASSERT(it.m_ContainerType ==
this);
146 const CConstIterator& src)
const
148 _ASSERT(src.m_ContainerType ==
this);
149 if ( dst.m_ContainerType !=
this ) {
154 dst.m_ContainerPtr = src.m_ContainerPtr;
162 _ASSERT(it.m_ContainerType ==
this);
170 _ASSERT(it.m_ContainerType ==
this);
179 it.m_ContainerType =
this;
180 it.m_ContainerPtr = obj;
187 _ASSERT(it.m_ContainerType ==
this);
193 const CIterator& src)
const
195 _ASSERT(src.m_ContainerType ==
this);
196 if ( dst.m_ContainerType !=
this ) {
201 dst.m_ContainerPtr = src.m_ContainerPtr;
209 _ASSERT(it.m_ContainerType ==
this);
216 _ASSERT(it.m_ContainerType ==
this);
223 _ASSERT(it.m_ContainerType ==
this);
230 _ASSERT(it.m_ContainerType ==
this);
239 return m_AddElement(
this, containerPtr, elementPtr, how);
272 : m_ElementType(containerType->GetElementType()), m_ElementIndex(
kInvalidMember)
274 if (containerType->
InitIterator(m_Iterator, containerPtr)) {
281 : m_ElementType(src.m_ElementType),
282 m_ElementIndex(src.m_ElementIndex)
378 : m_ElementType(containerType->GetElementType()), m_ElementIndex(
kInvalidMember)
380 if ( containerType->
InitIterator(m_Iterator, containerPtr)) {
387 : m_ElementType(src.m_ElementType),
388 m_ElementIndex(src.m_ElementIndex)
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
ESerialRecursionMode
How to assign and compare child sub-objects of serial objects.
size_t TMemberIndex
Type used for indexing class members and choice variants.
const TMemberIndex kInvalidMember
Special value returned from FindMember.
const void * TConstObjectPtr
TTypeInfo Get(void) const
TReleaseIteratorConst m_ReleaseIteratorConst
TObjectPtr GetContainerPtr(void) const
void ReleaseIterator(CConstIterator &it) const
TNextElement m_NextElement
bool EraseElement(CIterator &it) const
TCopyIterator m_CopyIterator
bool RandomElementsOrder(void) const
TGetElementPtr m_GetElementPtr
NCBI_NS_NCBI::TObjectPtr TObjectPtr
void Init(TObjectPtr containerPtr, const CContainerTypeInfo *containerType)
TObjectPtr AddElement(TObjectPtr containerPtr, TConstObjectPtr elementPtr, ESerialRecursionMode how=eRecursive) const
const CContainerTypeInfo * m_ContainerType
const CContainerTypeInfo * GetContainerType(void) const
TCopyIteratorConst m_CopyIteratorConst
TObjectPtr GetContainerPtr(void) const
NCBI_NS_NCBI::TConstObjectPtr TObjectPtr
size_t GetElementCount(TConstObjectPtr containerPtr) const
void ReserveElements(TObjectPtr containerPtr, size_t new_count) const
TAddElementIn m_AddElementIn
const CContainerTypeInfo * GetContainerType(void) const
TInitIteratorConst m_InitIteratorConst
TMemberIndex GetIndex(void) const
TEraseAllElements m_EraseAllElements
TMemberIndex m_ElementIndex
TReleaseIterator m_ReleaseIterator
TGetElementCount m_GetElementCount
TNextElementConst m_NextElementConst
TReserveElements m_ReserveElements
void CopyIterator(CConstIterator &dst, const CConstIterator &src) const
TConstObjectPtr GetElementPtr(const CConstIterator &it) const
TInitIterator m_InitIterator
const CContainerTypeInfo * m_ContainerType
pair< TConstObjectPtr, TTypeInfo > Get(void) const
bool InitIterator(CConstIterator &it, TConstObjectPtr containerPtr) const
pair< TObjectPtr, TTypeInfo > Get(void) const
CConstContainerElementIterator & operator=(const CConstContainerElementIterator &src)
bool NextElement(CConstIterator &it) const
void EraseAllElements(CIterator &it) const
CContainerElementIterator(void)
TEraseElement m_EraseElement
TTypeInfo GetElementType(void) const
size_t GetElementCount(void) const
CContainerElementIterator & operator=(const CContainerElementIterator &src)
void Init(TConstObjectPtr containerPtr, const CContainerTypeInfo *containerType)
TMemberIndex m_ElementIndex
TTypeInfo GetElementType(void) const
CConstContainerElementIterator(void)
TGetElementPtrConst m_GetElementPtrConst
TTypeInfo GetElementType(void) const
TMemberIndex GetIndex(void) const
std::istream & in(std::istream &in_, double &x_)