NCBI C++ ToolKit
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
CTypeInfo Class Referenceabstract

Search Toolkit Book for CTypeInfo

CTypeInfo class contains all information about C++ types (both basic and classes): members and layout in memory. More...

#include <serial/typeinfo.hpp>

+ Inheritance diagram for CTypeInfo:
+ Collaboration diagram for CTypeInfo:

Public Types

enum  EMayContainType { eMayContainType_no , eMayContainType_recursion , eMayContainType_yes }
typedef TObjectPtr(* TTypeCreate) (TTypeInfo objectType, CObjectMemoryPool *memoryPool)

Public Member Functions

virtual ~CTypeInfo (void)
ETypeFamily GetTypeFamily (void) const
const stringGetName (void) const
 Get name of this type. More...
bool HasNamespaceName (void) const
 Check if data type has namespace name. More...
const stringGetNamespaceName (void) const
 Get namespace name. More...
const CTypeInfoSetNamespaceName (const string &ns_name) const
 Set namespace name. More...
const CTypeInfoSetNsQualified (bool qualified) const
 Set namespace 'qualified' property. More...
ENsQualifiedMode IsNsQualified (void) const
 Get namespace 'qualified' property. More...
bool HasNamespacePrefix (void) const
 Check if data type has namespace prefix. More...
const stringGetNamespacePrefix (void) const
 Get namespace prefix. More...
void SetNamespacePrefix (const string &ns_prefix) const
 Set namespace prefix. More...
virtual const stringGetModuleName (void) const
 Get module name. More...
void SetModuleName (const string &name)
 Set module name. More...
void SetModuleName (const char *name)
 Set module name. More...
size_t GetSize (void) const
 Get size of data object in memory (like sizeof in C) More...
TObjectPtr Create (CObjectMemoryPool *memoryPool=0) const
 Create object of this type on heap (can be deleted by operator delete) More...
virtual void Delete (TObjectPtr object) const
 Delete object. More...
virtual void DeleteExternalObjects (TObjectPtr object) const
virtual bool IsDefault (TConstObjectPtr object) const =0
 Check, whether the object contains default value. More...
virtual bool Equals (TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode how=eRecursive) const =0
 Check if both objects contain the same values. More...
virtual void SetDefault (TObjectPtr dst) const =0
 Set object to default value. More...
virtual void Assign (TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const =0
 Set object to copy of another one. More...
bool IsCObject (void) const
 Check is this TypeInfo object is kind of CClassTypeInfoBase. More...
virtual const CObjectGetCObjectPtr (TConstObjectPtr objectPtr) const
virtual TTypeInfo GetRealTypeInfo (TConstObjectPtr object) const
const CSerialUserOpAsCSerialUserOp (TConstObjectPtr obj) const
CSerialUserOpAsCSerialUserOp (TObjectPtr obj) const
bool IsInternal (void) const
 Check if this TypeInfo describes internal unnamed type. More...
const stringGetInternalName (void) const
 Return internal type access string e.g. Int-fuzz.range. More...
const stringGetInternalModuleName (void) const
 Return internal type's owner module name. More...
void SetInternalName (const string &name)
 Mark this type as internal. More...
const stringGetAccessName (void) const
 Return internal or regular name. More...
const stringGetAccessModuleName (void) const
 Return internal or regular module name. More...
void ReadData (CObjectIStream &in, TObjectPtr object) const
void WriteData (CObjectOStream &out, TConstObjectPtr object) const
void CopyData (CObjectStreamCopier &copier) const
void SkipData (CObjectIStream &in) const
virtual bool IsParentClassOf (const CClassTypeInfo *classInfo) const
virtual bool IsType (TTypeInfo type) const
bool MayContainType (TTypeInfo type) const
EMayContainType IsOrMayContainType (TTypeInfo type) const
virtual EMayContainType GetMayContainType (TTypeInfo type) const
void SetGlobalReadHook (CReadObjectHook *hook)
 Set global (for all input streams) read hook. More...
void SetLocalReadHook (CObjectIStream &in, CReadObjectHook *hook)
 Set local (for a specific input stream) read hook. More...
void ResetGlobalReadHook (void)
 Reset global read hooks. More...
void ResetLocalReadHook (CObjectIStream &in)
 Reset local read hook. More...
void SetPathReadHook (CObjectIStream *in, const string &path, CReadObjectHook *hook)
 Set local context-specific read hook. More...
void SetGlobalWriteHook (CWriteObjectHook *hook)
 Set global (for all input streams) write hook. More...
void SetLocalWriteHook (CObjectOStream &out, CWriteObjectHook *hook)
 Set local (for a specific input stream) write hook. More...
void ResetGlobalWriteHook (void)
 Reset global write hooks. More...
void ResetLocalWriteHook (CObjectOStream &out)
 Reset local write hook. More...
void SetPathWriteHook (CObjectOStream *out, const string &path, CWriteObjectHook *hook)
 Set local context-specific write hook. More...
void SetLocalSkipHook (CObjectIStream &in, CSkipObjectHook *hook)
 Set local (for a specific input stream) skip hook. More...
void ResetLocalSkipHook (CObjectIStream &in)
 Reset local skip hook. More...
void SetPathSkipHook (CObjectIStream *in, const string &path, CSkipObjectHook *hook)
 Set local context-specific skip hook. More...
void SetGlobalCopyHook (CCopyObjectHook *hook)
 Set global (for all input streams) copy hook. More...
void SetLocalCopyHook (CObjectStreamCopier &copier, CCopyObjectHook *hook)
 Set local (for a specific input stream) copy hook. More...
void ResetGlobalCopyHook (void)
 Reset global copy hooks. More...
void ResetLocalCopyHook (CObjectStreamCopier &copier)
 Reset local copy hook. More...
void SetPathCopyHook (CObjectStreamCopier *copier, const string &path, CCopyObjectHook *hook)
 Set local context-specific copy hook. More...
void DefaultReadData (CObjectIStream &in, TObjectPtr object) const
void DefaultWriteData (CObjectOStream &out, TConstObjectPtr object) const
void DefaultCopyData (CObjectStreamCopier &copier) const
void DefaultSkipData (CObjectIStream &in) const
CTypeInfoSetTagType (CAsnBinaryDefs::ETagType ttype)
CAsnBinaryDefs::ETagType GetTagType (void) const
bool IsTagImplicit (void) const
virtual CTypeInfoSetTag (CAsnBinaryDefs::TLongTag tag, CAsnBinaryDefs::ETagClass tagclass=CAsnBinaryDefs::eUniversal, CAsnBinaryDefs::ETagType tagtype=CAsnBinaryDefs::eAutomatic)
CAsnBinaryDefs::TLongTag GetTag (void) const
bool HasTag (void) const
CAsnBinaryDefs::ETagClass GetTagClass (void) const
CAsnBinaryDefs::ETagConstructed GetTagConstructed (void) const
bool IsTagConstructed (void) const
void CodeVersion (size_t codever)
size_t GetCodeVersion (void) const
void DataSpec (EDataSpec spec)
EDataSpec GetDataSpec (void) const
void CopyInfoItem (TTypeInfo other)

Protected Types

enum  { eNoExplicitTag = -1 }

Protected Member Functions

 CTypeInfo (ETypeFamily typeFamily, size_t size)
 CTypeInfo (ETypeFamily typeFamily, size_t size, const char *name)
 CTypeInfo (ETypeFamily typeFamily, size_t size, const string &name)
void SetCreateFunction (TTypeCreate func)
void SetReadFunction (TTypeReadFunction func)
TTypeReadFunction GetReadFunction (void) const
void SetWriteFunction (TTypeWriteFunction func)
void SetCopyFunction (TTypeCopyFunction func)
void SetSkipFunction (TTypeSkipFunction func)

Protected Attributes

bool m_IsCObject
bool m_IsInternal
CAsnBinaryDefs::TLongTag m_Tag
CAsnBinaryDefs::ETagClass m_TagClass
CAsnBinaryDefs::ETagType m_TagType
CAsnBinaryDefs::ETagConstructed m_TagConstructed
atomic< ETriStatem_CSerialUserOp

Private Member Functions

 CTypeInfo (const CTypeInfo &)
CTypeInfooperator= (const CTypeInfo &)
void x_CreateInfoItemIfNeeded (void) const

Private Attributes

ETypeFamily m_TypeFamily
size_t m_Size
string m_Name
string m_ModuleName
size_t m_CodeVer
EDataSpec m_DataSpec
TTypeCreate m_CreateFunction
CHookData< CReadObjectHook, TTypeReadFunctionm_ReadHookData
CHookData< CWriteObjectHook, TTypeWriteFunctionm_WriteHookData
CHookData< CSkipObjectHook, TTypeSkipFunctionm_SkipHookData
CHookData< CCopyObjectHook, TTypeCopyFunctionm_CopyHookData


class CTypeInfoFunctions

Detailed Description

CTypeInfo class contains all information about C++ types (both basic and classes): members and layout in memory.

Definition at line 75 of file typeinfo.hpp.

The documentation for this class was generated from the following files:
Modified on Wed Sep 27 02:37:06 2023 by rev. 669887