m_VariantType(eInlineVariant), m_DelayOffset(eNoOffset),
133m_GetConstFunction(&
TFunc::GetConstInlineVariant),
134m_GetFunction(&
TFunc::GetInlineVariant),
135m_ReadHookData(&
TFunc::ReadInlineVariant, &
TFunc::ReadHookedVariant),
136m_WriteHookData(&
TFunc::WriteInlineVariant, &
TFunc::WriteHookedVariant),
137m_SkipHookData(&
TFunc::SkipNonObjectVariant, &
TFunc::SkipHookedVariant),
138m_CopyHookData(&
TFunc::CopyNonObjectVariant, &
TFunc::CopyHookedVariant)
146m_VariantType(eInlineVariant), m_DelayOffset(eNoOffset),
147m_GetConstFunction(&
TFunc::GetConstInlineVariant),
148m_GetFunction(&
TFunc::GetInlineVariant),
149m_ReadHookData(&
TFunc::ReadInlineVariant, &
TFunc::ReadHookedVariant),
150m_WriteHookData(&
TFunc::WriteInlineVariant, &
TFunc::WriteHookedVariant),
151m_SkipHookData(&
TFunc::SkipNonObjectVariant, &
TFunc::SkipHookedVariant),
152m_CopyHookData(&
TFunc::CopyNonObjectVariant, &
TFunc::CopyHookedVariant)
160m_VariantType(eInlineVariant), m_DelayOffset(eNoOffset),
161m_GetConstFunction(&
TFunc::GetConstInlineVariant),
162m_GetFunction(&
TFunc::GetInlineVariant),
163m_ReadHookData(&
TFunc::ReadInlineVariant, &
TFunc::ReadHookedVariant),
164m_WriteHookData(&
TFunc::WriteInlineVariant, &
TFunc::WriteHookedVariant),
165m_SkipHookData(&
TFunc::SkipNonObjectVariant, &
TFunc::SkipHookedVariant),
166m_CopyHookData(&
TFunc::CopyNonObjectVariant, &
TFunc::CopyHookedVariant)
174m_VariantType(eInlineVariant), m_DelayOffset(eNoOffset),
175m_GetConstFunction(&
TFunc::GetConstInlineVariant),
176m_GetFunction(&
TFunc::GetInlineVariant),
177m_ReadHookData(&
TFunc::ReadInlineVariant, &
TFunc::ReadHookedVariant),
178m_WriteHookData(&
TFunc::WriteInlineVariant, &
TFunc::WriteHookedVariant),
179m_SkipHookData(&
TFunc::SkipNonObjectVariant, &
TFunc::SkipHookedVariant),
180m_CopyHookData(&
TFunc::CopyNonObjectVariant, &
TFunc::CopyHookedVariant)
188 "SetPointer() is not first call");
199 "SetObjectPointer() is not first call");
210 "SetSubClass() is not first call");
214 "sub class cannot be delayed");
227 "sub class cannot be delayed");
249getConstFunc = &TFunc::GetConstDelayedVariant;
250getFunc = &TFunc::GetDelayedVariant;
251readFunc = &TFunc::ReadDelayedVariant;
252writeFunc = &TFunc::WriteDelayedVariant;
255getConstFunc = &TFunc::GetConstInlineVariant;
256getFunc = &TFunc::GetInlineVariant;
257readFunc = &TFunc::ReadInlineVariant;
258writeFunc = &TFunc::WriteInlineVariant;
261getConstFunc = &TFunc::GetConstPointerVariant;
262getFunc = &TFunc::GetPointerVariant;
263readFunc = &TFunc::ReadObjectPointerVariant;
264writeFunc = &TFunc::WriteObjectPointerVariant;
267getConstFunc = &TFunc::GetConstPointerVariant;
268getFunc = &TFunc::GetPointerVariant;
269readFunc = &TFunc::ReadPointerVariant;
270writeFunc = &TFunc::WritePointerVariant;
273getConstFunc = &TFunc::GetConstSubclassVariant;
274getFunc = &TFunc::GetSubclassVariant;
275readFunc = &TFunc::ReadSubclassVariant;
276writeFunc = &TFunc::WriteSubclassVariant;
281copyFunc = &TFunc::CopyObjectPointerVariant;
282skipFunc = &TFunc::SkipObjectPointerVariant;
285copyFunc = &TFunc::CopyNonObjectVariant;
286skipFunc = &TFunc::SkipNonObjectVariant;
311 _TRACE(
"Should check for real pointer type (CRef...)");
470choiceType->
SetIndex(choicePtr, index,
in.GetMemoryPool());
486choiceType->
SetIndex(choicePtr, index,
in.GetMemoryPool());
501choiceType->
SetIndex(choicePtr, index,
in.GetMemoryPool());
505 in.ReadExternalObject(variantPtr, variantInfo->
GetTypeInfo());
516choiceType->
SetIndex(choicePtr, index,
in.GetMemoryPool());
522 in.ReadExternalObject(variantPtr, variantInfo->
GetTypeInfo());
533 if( index != choiceType->
GetIndex(choicePtr) ) {
538 in.StartDelayBuffer();
540 in.SkipExternalObject(variantType);
542 in.SkipObject(variantType);
543 in.EndDelayBuffer(
buffer, variantInfo, choicePtr);
552choiceType->
SetIndex(choicePtr, index,
in.GetMemoryPool());
559 in.ReadExternalObject(variantPtr, variantType);
563 in.ReadObject(variantPtr, variantType);
606 out.WriteExternalObject(variantPtr, variantInfo->
GetTypeInfo());
623 out.WriteExternalObject(variantPtr, variantInfo->
GetTypeInfo());
635 if(
buffer.HaveFormat(
out.GetDataFormat()) ) {
647 out.WriteExternalObject(variantPtr, variantInfo->
GetTypeInfo());
Copy hook for a choice variant (CHOICE)
Read hook for a choice variant (CHOICE)
Root class for all serialization exceptions.
Skip hook for a choice variant (CHOICE)
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
static TConstObjectPtr GetConstPointerVariant(const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void ReadObjectPointerVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void WriteSubclassVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static TObjectPtr GetSubclassVariant(const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void WritePointerVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void CopyHookedVariant(CObjectStreamCopier &copier, const CVariantInfo *variantInfo)
static void CopyObjectPointerVariant(CObjectStreamCopier &copier, const CVariantInfo *variantInfo)
static TConstObjectPtr GetConstSubclassVariant(const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void ReadHookedVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static TObjectPtr GetDelayedVariant(const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void SkipHookedVariant(CObjectIStream &in, const CVariantInfo *variantInfo)
static void WriteHookedVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void SkipObjectPointerVariant(CObjectIStream &in, const CVariantInfo *variantInfo)
static void ReadDelayedVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void ReadInlineVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static TConstObjectPtr GetConstDelayedVariant(const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void WriteInlineVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void ReadSubclassVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static TObjectPtr GetPointerVariant(const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void CopyNonObjectVariant(CObjectStreamCopier &copier, const CVariantInfo *variantInfo)
static void SkipNonObjectVariant(CObjectIStream &in, const CVariantInfo *variantInfo)
static void ReadPointerVariant(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static void WriteObjectPointerVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static void WriteDelayedVariant(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
static TObjectPtr GetInlineVariant(const CVariantInfo *variantInfo, TObjectPtr choicePtr)
static TConstObjectPtr GetConstInlineVariant(const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
Write hook for a choice variant (CHOICE)
Include a standard set of the NCBI C++ Toolkit most basic headers.
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.
bool IsSubClass(void) const
void SetCopyFunction(TVariantCopyFunction func)
void DefaultSkipVariant(CObjectIStream &in) const
EVariantType m_VariantType
void SetWriteFunction(TVariantWriteFunction func)
CVariantInfo * SetSubClass(void)
TObjectPtr CreateChoice(void) const
void SetPathCopyHook(CObjectStreamCopier *copier, const string &path, CCopyChoiceVariantHook *hook)
CVariantInfo * SetPointer(void)
const CMemberId & GetId(void) const
CHookData< CWriteChoiceVariantHook, TVariantWriteFunction > m_WriteHookData
void SetLocalCopyHook(CObjectStreamCopier &copier, CCopyChoiceVariantHook *hook)
TConstObjectPtr(* TVariantGetConst)(const CVariantInfo *variantInfo, TConstObjectPtr choicePtr)
void DefaultWriteVariant(CObjectOStream &out, TConstObjectPtr choicePtr) const
void SetGlobalCopyHook(CCopyChoiceVariantHook *hook)
void SetPathSkipHook(CObjectIStream *in, const string &path, CSkipChoiceVariantHook *hook)
void SetLocalWriteHook(CObjectOStream &out, CWriteChoiceVariantHook *hook)
void SetPathReadHook(CObjectIStream *in, const string &path, CReadChoiceVariantHook *hook)
TObjectPtr GetItemPtr(TObjectPtr object) const
bool IsInline(void) const
void ResetLocalWriteHook(CObjectOStream &out)
TVariantGet m_GetFunction
bool IsObject(void) const
void SetReadFunction(TVariantReadFunction func)
void ResetGlobalWriteHook(void)
CHookData< CSkipChoiceVariantHook, TVariantSkipFunction > m_SkipHookData
void ResetGlobalCopyHook(void)
void ResetLocalSkipHook(CObjectIStream &in)
TMemberIndex GetIndex(void) const
const CChoiceTypeInfo * GetChoiceType(void) const
bool IsNonObjectPointer(void) const
bool IsPointer(void) const
void SetGlobalWriteHook(CWriteChoiceVariantHook *hook)
TVariantGetConst m_GetConstFunction
CVariantInfo * SetObjectPointer(void)
void DefaultCopyVariant(CObjectStreamCopier &copier) const
void SetGlobalReadHook(CReadChoiceVariantHook *hook)
CDelayBuffer & GetDelayBuffer(TObjectPtr object) const
TObjectPtr(* TVariantGet)(const CVariantInfo *variantInfo, TObjectPtr choicePtr)
TTypeInfo GetTypeInfo(void) const
bool IsNotObject(void) const
void SetPathWriteHook(CObjectOStream *out, const string &path, CWriteChoiceVariantHook *hook)
CHookData< CReadChoiceVariantHook, TVariantReadFunction > m_ReadHookData
virtual void UpdateDelayedBuffer(CObjectIStream &in, TObjectPtr classPtr) const override
void ResetLocalCopyHook(CObjectStreamCopier &copier)
bool CanBeDelayed(void) const
CHookData< CCopyChoiceVariantHook, TVariantCopyFunction > m_CopyHookData
void ResetLocalReadHook(CObjectIStream &in)
void DefaultReadVariant(CObjectIStream &in, TObjectPtr choicePtr) const
CVariantInfo(const CChoiceTypeInfo *choiceType, const CMemberId &id, TPointerOffsetType offset, const CTypeRef &type)
CVariantInfo * SetDelayBuffer(CDelayBuffer *buffer)
void ResetGlobalReadHook(void)
virtual void UpdateFunctions(void) override
void SetLocalReadHook(CObjectIStream &in, CReadChoiceVariantHook *hook)
bool IsObjectPointer(void) const
void SetSkipFunction(TVariantSkipFunction func)
void SetLocalSkipHook(CObjectIStream &in, CSkipChoiceVariantHook *hook)
void Validate(TConstObjectPtr classPtr, const CObjectStack &stk) const
TPointerOffsetType m_DelayOffset
@ eNonObjectPointerVariant
static TObjectType & Get(TObjectPtr object)
size_t TMemberIndex
Type used for indexing class members and choice variants.
const void * TConstObjectPtr
ssize_t TPointerOffsetType
#define XSERIAL_TYPEINFO_WRITELOCK
static const TObjectType * SafeCast(TTypeInfo type)
@ eSerialVerifyData_Yes
do verify
void(* TVariantSkipFunction)(CObjectIStream &in, const CVariantInfo *variantInfo)
void(* TVariantReadFunction)(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr classPtr)
void SetDefaultFunction(TFunction func)
void SetPathHook(CObjectStack *stk, const string &path, THook *hook)
void ResetGlobalHook(void)
void(* TVariantCopyFunction)(CObjectStreamCopier &copier, const CVariantInfo *variantInfo)
void SetLocalHook(TLocalHooks &key, THook *hook)
THook * GetPathHook(CObjectStack &stk) const
void SetGlobalHook(THook *hook)
THook * GetHook(const TLocalHooks &key) const
void ResetLocalHook(TLocalHooks &key)
void(* TVariantWriteFunction)(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr classPtr)
void CopyExternalObject(TTypeInfo type)
void Update(void)
Parse stored data.
virtual void SkipChoiceVariant(CObjectIStream &stream, const CObjectTypeInfoCV &variant)=0
CLocalHookSet< CCopyChoiceVariantHook > m_ChoiceVariantHookKey
virtual void WriteChoiceVariant(CObjectOStream &out, const CConstObjectInfoCV &variant)=0
#define BEGIN_OBJECT_FRAME_OF2(Stream, Type, Arg)
CLocalHookSet< CWriteChoiceVariantHook > m_ChoiceVariantHookKey
CObjectIStream & In(void) const
virtual void ReadChoiceVariant(CObjectIStream &in, const CObjectInfoCV &variant)=0
This method will be called at approriate time when the object of requested type is to be read.
virtual void CopyChoiceVariant(CObjectStreamCopier &copier, const CObjectTypeInfoCV &variant)=0
CLocalHookSet< CSkipChoiceVariantHook > m_ChoiceVariantSkipHookKey
CLocalHookSet< CReadChoiceVariantHook > m_ChoiceVariantHookKey
#define END_OBJECT_FRAME_OF(Stream)
void CopyObject(TTypeInfo type)
Copy object, omitting file header both in input and output streams.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
TMemberIndex GetIndex(TConstObjectPtr object) const
void ReadData(CObjectIStream &in, TObjectPtr object) const
void SetDelayIndex(TObjectPtr object, TMemberIndex index) const
TConstObjectPtr GetObjectPointer(TConstObjectPtr object) const
void ResetIndex(TObjectPtr object) const
TObjectPtr Create(CObjectMemoryPool *memoryPool=0) const
Create object of this type on heap (can be deleted by operator delete)
void SetIndex(TObjectPtr object, TMemberIndex index, CObjectMemoryPool *pool=0) const
const CPointerTypeInfo * GetPointerTypeInfo(void) const
#define NCBI_XSERIAL_EXPORT
Multi-threading â mutexes; rw-locks; semaphore.
std::istream & in(std::istream &in_, double &x_)
bool EnabledDelayBuffers(void)
CVariantInfoFunctions TFunc
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4