43 #define NCBI_USE_ERRCODE_X Serial_TypeInfo
51 m_ElementType(elementType), m_RandomOrder(randomOrder)
60 m_ElementType(elementType), m_RandomOrder(randomOrder)
69 m_ElementType(elementType), m_RandomOrder(randomOrder)
78 m_ElementType(elementType), m_RandomOrder(randomOrder)
87 m_ElementType(elementType), m_RandomOrder(randomOrder)
96 m_ElementType(elementType), m_RandomOrder(randomOrder)
105 static void Throw(
const char* message)
111 Throw(
"cannot create iterator");
116 Throw(
"cannot create iterator");
124 Throw(
"illegal call");
132 Throw(
"illegal call");
138 Throw(
"illegal call");
158 TAddElementIn addElementIn)
165 TReserveElements reserveElements)
172 TReleaseIteratorConst release,
173 TCopyIteratorConst
copy,
174 TNextElementConst
next,
175 TGetElementPtrConst get)
185 TReleaseIterator release,
190 TEraseAllElements erase_all)
269 in.ReadContainer(containerType, objectPtr);
279 out.WriteContainer(containerType, objectPtr);
297 in.SkipContainer(containerType);
static bool InitIterator(CContainerTypeInfo::CIterator &)
static bool InitIteratorConst(CContainerTypeInfo::CConstIterator &)
static size_t GetElementCount(const CContainerTypeInfo *, TConstObjectPtr)
static TObjectPtr AddElement(const CContainerTypeInfo *, TObjectPtr, TConstObjectPtr, ESerialRecursionMode)
static void Throw(const char *message)
static TObjectPtr AddElementIn(const CContainerTypeInfo *, TObjectPtr, CObjectIStream &)
Root class for all serialization exceptions.
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
Include a standard set of the NCBI C++ Toolkit most basic headers.
static void DLIST_NAME() init(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
std::ofstream out("events_result.xml")
main entry point for tests
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
ESerialRecursionMode
How to assign and compare child sub-objects of serial objects.
const void * TConstObjectPtr
static const TObjectType * SafeCast(TTypeInfo type)
@ eShallowChildless
Set sub-object pointers to 0.
void CopyContainer(const CContainerTypeInfo *containerType)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void SetWriteFunction(TTypeWriteFunction func)
virtual void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const override
Set object to copy of another one.
TReleaseIteratorConst m_ReleaseIteratorConst
virtual bool Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode how=eRecursive) const override
Check if both objects contain the same values.
virtual EMayContainType GetMayContainType(TTypeInfo type) const override
CContainerTypeInfo(size_t size, TTypeInfo elementType, bool randomOrder)
virtual CTypeInfo * SetTag(CAsnBinaryDefs::TLongTag tag, CAsnBinaryDefs::ETagClass tagclass=CAsnBinaryDefs::eUniversal, CAsnBinaryDefs::ETagType tagtype=CAsnBinaryDefs::eAutomatic)
TNextElement m_NextElement
TCopyIterator m_CopyIterator
TGetElementPtr m_GetElementPtr
TObjectPtr AddElement(TObjectPtr containerPtr, TConstObjectPtr elementPtr, ESerialRecursionMode how=eRecursive) const
void InitContainerTypeInfoFunctions(void)
TCopyIteratorConst m_CopyIteratorConst
TAddElementIn m_AddElementIn
TInitIteratorConst m_InitIteratorConst
void SetConstIteratorFunctions(TInitIteratorConst, TReleaseIteratorConst, TCopyIteratorConst, TNextElementConst, TGetElementPtrConst)
TEraseAllElements m_EraseAllElements
virtual void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const =0
Set object to copy of another one.
TReleaseIterator m_ReleaseIterator
TGetElementCount m_GetElementCount
void SetSkipFunction(TTypeSkipFunction func)
TNextElementConst m_NextElementConst
void SetCountFunctions(TGetElementCount, TReserveElements=0)
TReserveElements m_ReserveElements
TConstObjectPtr GetElementPtr(const CConstIterator &it) const
TInitIterator m_InitIterator
bool InitIterator(CConstIterator &it, TConstObjectPtr containerPtr) const
void SetAddElementFunctions(TAddElement, TAddElementIn)
static void SkipContainer(CObjectIStream &in, TTypeInfo objectType)
virtual bool Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode how=eRecursive) const =0
Check if both objects contain the same values.
bool NextElement(CConstIterator &it) const
void EraseAllElements(CIterator &it) const
EMayContainType IsOrMayContainType(TTypeInfo type) const
TEraseElement m_EraseElement
void SetCopyFunction(TTypeCopyFunction func)
virtual void SetDefault(TObjectPtr dst) const =0
Set object to default value.
static void ReadContainer(CObjectIStream &in, TTypeInfo objectType, TObjectPtr objectPtr)
TTypeInfo GetElementType(void) const
TGetElementPtrConst m_GetElementPtrConst
static void WriteContainer(CObjectOStream &out, TTypeInfo objectType, TConstObjectPtr objectPtr)
void SetIteratorFunctions(TInitIterator, TReleaseIterator, TCopyIterator, TNextElement, TGetElementPtr, TEraseElement, TEraseAllElements)
static void CopyContainer(CObjectStreamCopier &copier, TTypeInfo objectType)
void SetReadFunction(TTypeReadFunction func)
Definition of all error codes used in serial libraries (xser.lib, xcser.lib).
const struct ncbi::grid::netcache::search::fields::SIZE size
Useful/utility classes and methods.
std::istream & in(std::istream &in_, double &x_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)