65 class CWriteClassMembersHook;
110 bool deleteOutStream);
145 const string& fileName,
206 m_FixMethod = how ==
eFNP_Default ? x_GetFixCharsMethodDefault() : how;
210 m_NonPrintSubst = subst;
219 void EnforceWritingDefaultValues(
bool enforce =
true);
222 bool IsWritingDefaultValuesEnforced()
const;
333 fUnassigned = 1 << 9, eUnassigned = fUnassigned
373 bool InGoodState(
void);
378 void SetCanceledCallback(
const ICanceled* callback);
422 eDelayBufferPolicyNeverParse
424 void SetDelayBufferParsingPolicy(EDelayBufferParsing policy);
425 EDelayBufferParsing GetDelayBufferParsingPolicy(
void)
const;
426 bool ShouldParseDelayBuffer(
void)
const;
435 void DefaultFlush(
void);
482 #ifndef NCBI_INT8_IS_LONG
492 #if SIZEOF_LONG_DOUBLE != 0
493 void WriteStd(
const long double&
data);
519 virtual void WriteFloat(
float data);
521 #if SIZEOF_LONG_DOUBLE != 0
522 virtual void WriteLDouble(
long double data);
558 #ifdef NCBI_STRICT_GI
561 virtual void WriteGi(
const TGi& obj);
568 virtual void EndOfWrite(
void);
569 void ResetLocalHooks(
void);
578 #define RethrowError(flag,mess,exc) \
579 ThrowError1(DIAG_COMPILE_INFO,flag,mess,&exc)
582 void Unended(
const string&
msg);
588 eFlagNone = fFlagNone,
589 fFlagAllowNonAsciiChars = 1 << 0,
590 eFlagAllowNonAsciiChars = fFlagAllowNonAsciiChars,
591 fFlagNoAutoFlush = 1 << 1
610 void Write(
const void* bytes,
size_t length);
650 void Write(
const char*
data,
size_t length);
654 operator asnio*(void);
655 asnio* operator->(
void);
656 const string& GetRootTypeName(
void)
const;
720 virtual void BeginNamedType(
TTypeInfo namedTypeInfo);
721 virtual void EndNamedType(
void);
725 virtual void EndContainer(
void);
726 virtual void BeginContainerElement(
TTypeInfo elementType);
727 virtual void EndContainerElement(
void);
731 virtual void EndClass(
void);
734 virtual void EndClassMember(
void);
738 virtual void EndChoice(
void);
741 virtual void EndChoiceVariant(
void);
744 virtual void BeginBytes(
const ByteBlock& block);
746 const char* bytes,
size_t length) = 0;
747 virtual void EndBytes(
const ByteBlock& block);
750 virtual void BeginChars(
const CharBlock& block);
752 const char*
chars,
size_t length) = 0;
753 virtual void EndChars(
const CharBlock& block);
764 m_SpecialCaseWrite = how;
766 MLIOVIR void WriteClassMemberSpecialCase(
781 virtual void WriteOtherEnd(
TTypeInfo typeInfo);
791 return m_NonPrintSubst;
794 virtual void WriteSeparator(
void);
CNcbiOstream & WriteContainer(CNcbiOstream &os, const TCont &cont)
Write a container to a stream.
Serializable object that stores any combination of parsable data.
Incapsulate compile time information such as __FILE__, __LINE__, NCBI_MODULE, current function.
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
Write hook for a choice variant (CHOICE)
Write hook for data member of a containing object (eg, SEQUENCE)
Write hook for a standalone object.
Interface for testing cancellation request in a long lasting operation.
Include a standard set of the NCBI C++ Toolkit most basic headers.
CNcbiOstream & operator<<(CNcbiOstream &out, const CEquivRange &range)
std::ofstream out("events_result.xml")
main entry point for tests
static const char * str(char *buf, int n)
@ eNoOwnership
No ownership is assumed.
EFixNonPrint
How to process non-printing character in the ASN VisibleString.
ESerialVerifyData
Data verification parameters.
const void * TConstObjectPtr
CNcbiOstream & WriteObject(CNcbiOstream &str, TConstObjectPtr ptr, TTypeInfo info)
void Write(CObjectOStream &out, TConstObjectPtr object, const CTypeRef &type)
unsigned int TSerial_Format_Flags
MSerial_Format –.
ESerialDataFormat
Data file format.
@ eStringTypeVisible
VisibleString (in ASN.1 sense)
void WriteStd(const int &data)
void WriteStd(const unsigned char &data)
void WriteStd(const Uint8 &data)
void WriteStd(const long &data)
TFlags SetFlags(TFlags flags)
virtual void BeginClass(const CClassTypeInfo *classInfo)=0
void WriteStd(const unsigned int &data)
CObjectOStream & m_Stream
void Write(const char *chars, size_t length)
CStreamPathHook< CVariantInfo *, CWriteChoiceVariantHook * > m_PathWriteVariantHooks
void SetAutoSeparator(bool value)
Set separator auto-output paramater.
void EnforceWritingDefaultValues(bool enforce=true)
void FixNonPrintSubst(char subst)
void WriteStd(const unsigned long &data)
void WriteObject(TConstObjectPtr object, TTypeInfo typeInfo)
virtual void WriteUint8(Uint8 data)=0
CStreamObjectPathHook< CWriteObjectHook * > m_PathWriteObjectHooks
bool fail(void) const
Check if any of fail flags is set.
void WriteStd(const bool &data)
virtual void CopyString(CObjectIStream &in, EStringType type=eStringTypeVisible)=0
bool IsWritingDefaultValuesEnforced() const
virtual void WriteInt8(Int8 data)=0
void WriteStd(char *const data)
ESerialVerifyData m_VerifyData
void CopyObject(TTypeInfo objectType, CObjectStreamCopier &copier)
void SetUseEol(bool set)
Set up end-of-line symbol usage in text streams.
TFlags ClearFlags(TFlags flags)
bool GetAutoSeparator(void)
Get separator auto-output paramater.
virtual void WriteString(const string &str, EStringType type=eStringTypeVisible)=0
static CObjectOStream * Open(const string &fileName, ESerialDataFormat format, TSerial_Format_Flags formatFlags=0)
Create serial object writer and attach it to a file stream.
virtual void WriteBitString(const CBitString &obj)=0
AutoPtr< CWriteObjectList > m_Objects
void WriteStd(const string &data)
void WriteStd(const CBitString &data)
virtual void WriteNullPointer(void)=0
friend CObjectOStream & Separator(CObjectOStream &os)
CLocalHookSet< CWriteObjectHook > m_ObjectHookKey
void SetVerifyData(ESerialVerifyData verify)
Set up output data verification for this particular stream.
size_t GetLength(void) const
CStreamPathHook< CMemberInfo *, CWriteClassMemberHook * > m_PathWriteMemberHooks
virtual string GetStackTrace(void) const =0
void WriteStd(const char &data)
void WriteStd(const TGi &data)
virtual void WriteChar(char data)=0
void WriteClassSequential(const CClassTypeInfo *classType, TConstObjectPtr classPtr)
void SetWriteNamedIntegersByValue(bool set)
Set up writing named integers (in ANS.1 sense) by value only.
TFlags GetFlags(void) const
EDelayBufferParsing m_ParseDelayBuffers
virtual void CopyAnyContentObject(CObjectIStream &in)=0
TFailFlags ClearFailFlags(TFailFlags flags)
Reset fail flags.
CObjectOStream & GetStream(void) const
void Write(const void *bytes, size_t length)
virtual void CopyBitString(CObjectIStream &in)=0
virtual void x_SetPathHooks(bool set)=0
virtual void BeginContainer(const CContainerTypeInfo *containerType)=0
virtual void WriteStringStore(const string &data)=0
virtual void WriteInt4(Int4 data)=0
void WriteStd(const signed char &data)
bool GetUseIndentation(void) const
Get indentation usage in text streams.
CObjectOStream & m_Stream
virtual void WriteUint4(Uint4 data)=0
void WriteStd(const Int8 &data)
CLocalHookSet< CWriteChoiceVariantHook > m_ChoiceVariantHookKey
virtual void WriteCString(const char *str)=0
ByteBlock(CObjectOStream &out, size_t length)
virtual void WriteObjectReference(TObjectIndex index)=0
void WriteStd(const unsigned short &data)
void SetUseIndentation(bool set)
Set up indentation usage in text streams.
ESerialDataFormat GetDataFormat(void) const
Get data format.
ESerialDataFormat m_DataFormat
virtual void BeginChoiceVariant(const CChoiceTypeInfo *choiceType, const CMemberId &id)=0
ESpecialCaseWrite m_SpecialCaseWrite
size_t GetLength(void) const
CharBlock(CObjectOStream &out, size_t length)
virtual void WriteChars(const CharBlock &block, const char *chars, size_t length)=0
char x_FixCharsSubst(void) const
void WriteStd(const float &data)
virtual void CopyEnum(const CEnumeratedTypeValues &values, CObjectIStream &in)=0
bool GetWriteNamedIntegersByValue(void) const
Get writing named integers by value parameter.
virtual void WriteBytes(const ByteBlock &block, const char *bytes, size_t length)=0
CLocalHookSet< CWriteClassMemberHook > m_ClassMemberHookKey
TFailFlags GetFailFlags(void) const
Get fail flags.
CObjectOStream & GetStream(void) const
virtual void CopyStringStore(CObjectIStream &in)=0
bool GetUseEol(void) const
Get end-of-line symbol usage in text streams.
void WriteClassRandom(const CClassTypeInfo *classType, TConstObjectPtr classPtr)
virtual void WriteDouble(double data)=0
void SetSeparator(const string sep)
Set separator.
string GetSeparator(void) const
Get separator.
EFixNonPrint FixNonPrint(EFixNonPrint how)
virtual void WriteNull(void)=0
bool m_WriteNamedIntegersByValue
virtual void WriteAnyContentObject(const CAnyContentObject &obj)=0
CObjectOStream & m_Stream
EDelayBufferParsing
DelayBuffer parsing policy.
void WriteStd(const char *const data)
void WriteStd(const double &data)
virtual void BeginClassMember(const CMemberId &id)=0
virtual void WriteOtherBegin(TTypeInfo typeInfo)=0
virtual void WriteBool(bool data)=0
ESerialVerifyData GetVerifyData(void) const
Get output data verification parameter.
void WriteStd(const short &data)
bool m_EnforceWritingDefaults
void SetSpecialCaseWrite(ESpecialCaseWrite how)
virtual void WriteEnum(const CEnumeratedTypeValues &values, TEnumValueType value)=0
virtual void UnendedFrame(void)
virtual string GetPosition(void) const =0
@ fIllegalCall
Illegal in a given context function call.
@ fInvalidData
Output data is incorrect.
@ fNotOpen
No output file.
@ fNotImplemented
Method is not implemented.
@ fOverflow
Internal buffer overflow.
@ fWriteError
An unknown error when writing into output file.
@ fFail
Internal error, the real reason is unclear.
@ eDelayBufferPolicyAlwaysParse
Parse always.
@ eDelayBufferPolicyNotSet
Parse only if local hook are present.
int32_t Int4
4-byte (32-bit) signed integer
uint32_t Uint4
4-byte (32-bit) unsigned integer
int64_t Int8
8-byte (64-bit) signed integer
uint64_t Uint8
8-byte (64-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::streampos CNcbiStreampos
Portable alias for streampos.
enum ENcbiOwnership EOwnership
Ownership relations between objects.
#define NCBI_XSERIAL_EXPORT
Definition of all error codes used in serial libraries (xser.lib, xcser.lib).
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
const CharType(& source)[N]
static void WriteContainerElement(CObjectOStream &out, const CSeq_entry &entry)
static const BitmapCharRec *const chars[]
Floating-point support routines.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
Useful/utility classes and methods.
std::istream & in(std::istream &in_, double &x_)
void CopyContainer(const C1 &src, C2 &dst)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)