96 const string& GetName(
void)
const;
99 bool HasNamespaceName(
void)
const;
101 const string& GetNamespaceName(
void)
const;
103 const CTypeInfo* SetNamespaceName(
const string& ns_name)
const;
105 const CTypeInfo* SetNsQualified(
bool qualified)
const;
110 bool HasNamespacePrefix(
void)
const;
112 const string& GetNamespacePrefix(
void)
const;
114 void SetNamespacePrefix(
const string& ns_prefix)
const;
135 virtual void DeleteExternalObjects(
TObjectPtr object)
const;
160 const string& GetInternalName(
void)
const;
162 const string& GetInternalModuleName(
void)
const;
167 const string& GetAccessName(
void)
const;
169 const string& GetAccessModuleName(
void)
const;
177 virtual bool IsParentClassOf(
const CClassTypeInfo* classInfo)
const;
197 void ResetGlobalReadHook(
void);
209 void ResetGlobalWriteHook(
void);
229 void ResetGlobalCopyHook(
void);
260 return m_Tag != eNoExplicitTag;
266 return m_TagConstructed;
297 void SetCreateFunction(TTypeCreate func);
323 void x_CreateInfoItemIfNeeded(
void)
const;
info DataSpec(ncbi::EDataSpec::eXSD)
Copy hook for a standalone object.
Read hook for a standalone object.
Base class for user-defined serializable classes to allow for objects assignment and comparison.
Skip hook for a standalone object.
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
Write hook for a standalone object.
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
ENsQualifiedMode
Defines namespace qualification of XML tags.
ESerialRecursionMode
How to assign and compare child sub-objects of serial objects.
const void * TConstObjectPtr
void SetModuleName(CTypeInfo *info, const char *name)
void SetInternalName(CTypeInfo *info, const char *owner_name, const char *member_name=0)
void(* TTypeWriteFunction)(CObjectOStream &out, const CTypeInfo *objectType, TConstObjectPtr objectPtr)
void(* TTypeCopyFunction)(CObjectStreamCopier &copier, const CTypeInfo *objectType)
void(* TTypeReadFunction)(CObjectIStream &in, const CTypeInfo *objectType, TObjectPtr objectPtr)
void(* TTypeSkipFunction)(CObjectIStream &in, const CTypeInfo *objectType)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void CopyData(CObjectStreamCopier &copier) const
CAsnBinaryDefs::ETagClass GetTagClass(void) const
CAsnBinaryDefs::ETagConstructed GetTagConstructed(void) const
CHookData< CReadObjectHook, TTypeReadFunction > m_ReadHookData
void CodeVersion(size_t codever)
virtual bool IsDefault(TConstObjectPtr object) const =0
Check, whether the object contains default value.
CHookData< CCopyObjectHook, TTypeCopyFunction > m_CopyHookData
EDataSpec GetDataSpec(void) const
CAsnBinaryDefs::ETagType GetTagType(void) const
void WriteData(CObjectOStream &out, TConstObjectPtr object) const
ETypeFamily GetTypeFamily(void) const
void DefaultSkipData(CObjectIStream &in) const
CAsnBinaryDefs::ETagClass m_TagClass
CTypeInfo(const CTypeInfo &)
void DefaultReadData(CObjectIStream &in, TObjectPtr object) const
void DefaultWriteData(CObjectOStream &out, TConstObjectPtr object) const
TTypeCreate m_CreateFunction
bool IsCObject(void) const
Check is this TypeInfo object is kind of CClassTypeInfoBase.
CHookData< CWriteObjectHook, TTypeWriteFunction > m_WriteHookData
CAsnBinaryDefs::ETagType m_TagType
void ReadData(CObjectIStream &in, TObjectPtr object) const
size_t GetCodeVersion(void) const
virtual void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const =0
Set object to copy of another one.
atomic< ETriState > m_CSerialUserOp
bool IsInternal(void) const
Check if this TypeInfo describes internal unnamed type.
CAsnBinaryDefs::TLongTag GetTag(void) const
CHookData< CSkipObjectHook, TTypeSkipFunction > m_SkipHookData
bool IsTagConstructed(void) const
bool IsTagImplicit(void) const
CTypeInfo & operator=(const CTypeInfo &)
virtual bool Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode how=eRecursive) const =0
Check if both objects contain the same values.
EMayContainType IsOrMayContainType(TTypeInfo type) const
bool MayContainType(TTypeInfo type) const
void DefaultCopyData(CObjectStreamCopier &copier) const
CNamespaceInfoItem * m_InfoItem
size_t GetSize(void) const
Get size of data object in memory (like sizeof in C)
virtual void SetDefault(TObjectPtr dst) const =0
Set object to default value.
CTypeInfo * SetTagType(CAsnBinaryDefs::ETagType ttype)
CAsnBinaryDefs::TLongTag m_Tag
void SkipData(CObjectIStream &in) const
CAsnBinaryDefs::ETagConstructed m_TagConstructed
TObjectPtr Create(CObjectMemoryPool *memoryPool=0) const
Create object of this type on heap (can be deleted by operator delete)
@ eMayContainType_recursion
#define NCBI_XSERIAL_EXPORT
const struct ncbi::grid::netcache::search::fields::SIZE size
std::istream & in(std::istream &in_, double &x_)
void SetLocalCopyHook(const CObjectTypeInfo &obj_type_info, CObjectStreamCopier &copier, _Func _func)
void SetLocalSkipHook(const CObjectTypeInfo &obj_type_info, CObjectIStream &istr, _Func _func)
void SetLocalWriteHook(const CObjectTypeInfo &obj_type_info, CObjectOStream &ostr, _Func _func)
void SetLocalReadHook(const CObjectTypeInfo &obj_type_info, CObjectIStream &ostr, _Func _func)
static const string & GetModuleName(const char *moduleName)