51 #define _TRACE(arg) ((void)0)
57 : m_In(
in), m_Out(
out)
108 _TRACE(
"CObjectIStream::CopyPointer("<<declaredType->
GetName()<<
")");
117 _TRACE(
"CObjectIStream::CopyPointer: null");
122 _TRACE(
"CObjectIStream::CopyPointer: @...");
124 _TRACE(
"CObjectIStream::CopyPointer: @" << index);
131 _TRACE(
"CObjectIStream::CopyPointer: new");
139 _TRACE(
"CObjectIStream::CopyPointer: new...");
141 _TRACE(
"CObjectIStream::CopyPointer: new " << className);
164 while ( typeInfo != declaredType ) {
172 typeInfo = parentClass;
217 size_t length = o.size();
220 ob.
Write(&o.front(), length);
Copy hook for a choice variant (CHOICE)
Copy hook for data member of a containing object (eg, SEQUENCE)
Copy hook for a standalone object.
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.
std::ofstream out("events_result.xml")
main entry point for tests
void SetPathCopyHook(CObjectStreamCopier *copier, const string &path, CCopyClassMemberHook *hook)
void SetPathCopyHook(CObjectStreamCopier *copier, const string &path, CCopyChoiceVariantHook *hook)
#define XSERIAL_TYPEINFO_WRITELOCK
static const TObjectType * SafeCast(TTypeInfo type)
static CTypeInfo * FindType(const CObjectStack &stk)
virtual EPointerType ReadPointerType(void)=0
CStreamPathHook< CMemberInfo *, CCopyClassMemberHook * > m_PathCopyMemberHooks
#define BEGIN_OBJECT_2FRAMES2(Type, Arg)
void SkipFileHeader(TTypeInfo typeInfo)
Read file header and compare the type name with the expected one.
virtual void WriteFileHeader(TTypeInfo type)
void SetPathCopyVariantHook(const string &path, CCopyChoiceVariantHook *hook)
void SetHook(const string &path, THook hook)
#define ThrowError(flag, mess)
void RegisterObject(TTypeInfo typeInfo)
CObjectStreamCopier(CObjectIStream &in, CObjectOStream &out)
Constructor.
TTypeInfo GetTypeInfo(void) const
CLocalHookSet< CCopyChoiceVariantHook > m_ChoiceVariantHookKey
#define END_OBJECT_2FRAMES()
virtual void WriteNullPointer(void)=0
void CopyPointer(TTypeInfo declaredType)
virtual string ReadOtherPointer(void)=0
const CReadObjectInfo & GetRegisteredObject(TObjectIndex index)
virtual void ReadOtherPointerEnd(void)
const string & GetStackPath(void) const
void SetPathCopyObjectHook(const string &path, CCopyObjectHook *hook)
void SetPathHooks(CObjectStack &stk, bool set)
void Write(const void *bytes, size_t length)
void SetPathCopyMemberHook(const string &path, CCopyClassMemberHook *hook)
virtual void WriteOtherEnd(TTypeInfo typeInfo)
bool KnownLength(void) const
size_t GetExpectedLength(void) const
TTypeInfo GetTypeInfo(void) const
CLocalHookSet< CCopyObjectHook > m_ObjectHookKey
CObjectIStream & In(void) const
virtual void WriteObjectReference(TObjectIndex index)=0
bool CopyNullPointer(void)
CStreamPathHook< CVariantInfo *, CCopyChoiceVariantHook * > m_PathCopyVariantHooks
CLocalHookSet< CCopyClassMemberHook > m_ClassMemberHookKey
virtual void EndOfWrite(void)
CObjectOStream & Out(void) const
THook GetHook(CObjectStack &stk) const
void SetHook(const string &path, THook hook)
~CObjectStreamCopier(void)
Destructor.
void ResetLocalHooks(void)
void RegisterObject(TTypeInfo typeInfo)
virtual TObjectIndex ReadObjectPointer(void)=0
void WatchPathHooks(bool set=true)
static TInfo FindItem(const CObjectStack &stk)
THook GetHook(CObjectStack &stk) const
virtual void WriteOtherBegin(TTypeInfo typeInfo)=0
void Copy(const CObjectTypeInfo &type)
Copy data.
CStreamObjectPathHook< CCopyObjectHook * > m_PathCopyObjectHooks
virtual void EndOfRead(void)
void CopyObject(TTypeInfo type)
Copy object, omitting file header both in input and output streams.
size_t Read(void *dst, size_t length, bool forceLength=false)
@ fFormatError
Input file formatting does not conform with specification.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
const string & GetName(void) const
Get name of this type.
void SetPathCopyHook(CObjectStreamCopier *copier, const string &path, CCopyObjectHook *hook)
Set local context-specific copy hook.
ETypeFamily GetTypeFamily(void) const
static TTypeInfo GetClassInfoByName(const string &name)
Multi-threading – mutexes; rw-locks; semaphore.
std::istream & in(std::istream &in_, double &x_)