61 #ifndef NCBI_INT8_IS_LONG
126 return Get(obj1) ==
Get(obj2);
137 in.ReadStd(
Get(objectPtr));
142 out.WriteStd(
Get(objectPtr));
161 #define EPSILON_(n) 1e-##n
162 #define EPSILON(n) EPSILON_(n)
165 # define DBL_EPSILON EPSILON(DBL_DIG)
170 template<
typename TFloat,
typename TInt>
174 static_assert(
sizeof(TFloat) ==
sizeof(TInt),
"sizeof(TFloat) != sizeof(TInt)");
176 static_assert( numeric_limits<TFloat>::is_iec559,
"Non-standard floating type");
177 const TInt allowed =
sizeof(TInt) >= 8 ? 64 : 4;
179 size_t total_bits = 8*
sizeof(TFloat);
180 TInt sign_mask = TInt(1) << (total_bits - 1);
181 TInt digit_mask = ~sign_mask;
191 if ((x1.bits & sign_mask) != (x2.bits & sign_mask)) {
194 TInt y1 = x1.bits & digit_mask;
195 TInt y2 = x2.bits & digit_mask;
196 TInt d = (y1 > y2) ? (y1 - y2) : (y2 - y1);
205 const double& x =
Get(obj1);
206 const double& y =
Get(obj2);
210 return (x == y ||
fabs(x - y) <
fabs(x + y) *
DBL_EPSILON || x_Practically_Equal<double, Uint8>(x,y));
214 # define FLT_EPSILON EPSILON(FLT_DIG)
222 const float& x =
Get(obj1);
223 const float& y =
Get(obj2);
227 return (x == y ||
fabs(x - y) <
fabs(x + y) *
FLT_EPSILON || x_Practically_Equal<float, Uint4>(x,y));
230 #if SIZEOF_LONG_DOUBLE != 0
237 const long double& x =
Get(obj1);
238 const long double& y =
Get(obj2);
243 return (x == y ||
fabs(x - y) <
fabs(x + y) *
DBL_EPSILON || x_Practically_Equal<double, Uint8>(x,y));
250 string message(
"cannot ");
252 message +=
" object of type: ";
253 message += objectType->
GetName();
281 in.ThrowError(
in.fIllegalCall,
282 "CVoidTypeFunctions::Read cannot read");
288 out.ThrowError(
out.fIllegalCall,
289 "CVoidTypeFunctions::Write cannot write");
295 "CVoidTypeFunctions::Copy cannot copy");
300 in.ThrowError(
in.fIllegalCall,
301 "CVoidTypeFunctions::Skip cannot skip");
307 ThrowException(
"CVoidTypeFunctions::Create cannot create", objectType);
320 m_ValueType(valueType), m_Signed(isSigned)
325 &TFunctions::IsDefault, &TFunctions::SetDefault,
333 m_ValueType(valueType), m_Signed(isSigned)
337 &TFunctions::IsDefault, &TFunctions::SetDefault,
345 m_ValueType(valueType), m_Signed(isSigned)
349 &TFunctions::IsDefault, &TFunctions::SetDefault,
354 TIsDefaultFunction isDefault,
355 TSetDefaultFunction setDefault,
356 TEqualsFunction equals,
357 TAssignFunction assign)
481 #if SIZEOF_LONG_DOUBLE != 0
482 long double CPrimitiveTypeInfo::GetValueLDouble(
TConstObjectPtr objectPtr)
const
487 void CPrimitiveTypeInfo::SetValueLDouble(
TObjectPtr objectPtr,
488 long double value)
const
493 #if defined(DBL_MIN) && defined(DBL_MAX)
494 if ( value < DBL_MIN || value > DBL_MAX )
508 const string& )
const
514 vector<char>& )
const
520 const vector<char>& )
587 "Cannot create NULL object");
639 info->SetMemFunctions(&TFunctions::Create, &TFunctions::IsDefault,
641 &TFunctions::Assign);
643 &TFunctions::Copy, &TFunctions::Skip);
671 const string&
value)
const
673 if (
value.size() != 1 )
893 TSetInt4Function setInt4,
894 TGetUint4Function getUint4,
895 TSetUint4Function setUint4)
904 TSetInt8Function setInt8,
905 TGetUint8Function getUint8,
906 TSetUint8Function setUint8)
958 #define DECLARE_STD_INT_TYPE(Type) \
959 TTypeInfo CStdTypeInfo<Type>::GetTypeInfo(void) \
961 static TTypeInfo info = CreateTypeInfo(); \
964 CTypeInfo* CStdTypeInfo<Type>::CreateTypeInfo(void) \
966 return CPrimitiveTypeInfoIntFunctions<Type>::CreateTypeInfo(); \
975 #ifndef NCBI_INT8_IS_LONG
986 if (
size ==
sizeof(
int) ) {
992 else if (
size ==
sizeof(
short) ) {
998 else if (
size ==
sizeof(
signed char) ) {
1011 string message(
"Illegal enum size: ");
1067 #if defined(FLT_MIN) && defined(FLT_MAX)
1068 if ( value < FLT_MIN || value > FLT_MAX )
1086 #if SIZEOF_LONG_DOUBLE != 0
1087 CPrimitiveTypeInfoLongDouble::CPrimitiveTypeInfoLongDouble(
void)
1095 double CPrimitiveTypeInfoLongDouble::GetValueDouble(
TConstObjectPtr objectPtr)
const
1101 void CPrimitiveTypeInfoLongDouble::SetValueDouble(
TObjectPtr objectPtr,
1107 long double CPrimitiveTypeInfoLongDouble::GetValueLDouble(
TConstObjectPtr objectPtr)
const
1112 void CPrimitiveTypeInfoLongDouble::SetValueLDouble(
TObjectPtr objectPtr,
1113 long double value)
const
1126 return new CPrimitiveTypeInfoLongDouble();
1130 template<
typename T>
1224 string&
value)
const
1230 const string&
value)
const
1276 template<
typename T>
1324 in.ReadStringStore(
Get(objectPtr));
1329 out.WriteStringStore(
Get(objectPtr));
1337 in.SkipStringStore();
1353 &TFunctions::Copy, &TFunctions::Skip);
1362 template<
typename T>
1395 template<
typename T>
1401 &TFunctions::IsDefault, &TFunctions::SetDefault,
1404 &TFunctions::Copy, &TFunctions::Skip);
1407 template<
typename T>
1411 if ( !obj || obj[0] ==
'\0' || obj[1] !=
'\0' )
1416 template<
typename T>
1426 template<
typename T>
1428 string&
value)
const
1433 template<
typename T>
1435 const string&
value)
const
1492 template<
typename Char>
1509 {
return reinterpret_cast<char*
>(p); }
1511 {
return reinterpret_cast<const char*
>(p); }
1513 {
return reinterpret_cast<const TChar*
>(p); }
1522 return Get(
object).empty();
1527 return Get(object1) ==
Get(object2);
1556 block.
Read(
ToChar(&o.front()), length,
true);
1565 #ifdef RESERVE_VECTOR_SIZE
1566 size_t new_size = o.size() +
count;
1567 if ( new_size > o.capacity() ) {
1568 o.reserve(RESERVE_VECTOR_SIZE(new_size));
1580 size_t length = o.size();
1588 template<
typename Char>
1595 &TFunctions::IsDefault, &TFunctions::SetDefault,
1598 &TFunctions::Copy, &TFunctions::Skip);
1601 template<
typename Char>
1603 string&
value)
const
1612 template<
typename Char>
1614 const string&
value)
const
1618 if (!
value.empty()) {
1624 template<
typename Char>
1626 vector<char>&
value)
const
1636 template<
typename Char>
1638 const vector<char>&
value)
const
1642 if (!
value.empty()) {
1650 static TTypeInfo typeInfo = CreateTypeInfo();
1656 static TTypeInfo typeInfo = CreateTypeInfo();
1662 static TTypeInfo typeInfo = CreateTypeInfo();
1700 in.ReadAnyContentObject(
Get(objectPtr));
1705 out.WriteAnyContentObject(
Get(objectPtr));
1713 in.SkipAnyContentObject();
1789 &TFunctions::Assign);
static void Skip(CObjectIStream &in, TTypeInfo)
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static bool IsDefault(TConstObjectPtr objectPtr)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static void SetDefault(TObjectPtr objectPtr)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr objectPtr)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
Serializable object that stores any combination of parsable data.
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static bool IsDefault(TConstObjectPtr objectPtr)
static void SetDefault(TObjectPtr objectPtr)
CPrimitiveTypeFunctions< T > CParent
static void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode)
static bool Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode)
static bool IsDefault(TConstObjectPtr objectPtr)
static void SetDefault(TObjectPtr dst)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static void Skip(CObjectIStream &in, TTypeInfo)
static bool Equals(TConstObjectPtr object1, TConstObjectPtr object2, ESerialRecursionMode)
static void SetDefault(TObjectPtr dst)
static TObjectType & Get(TObjectPtr object)
static const TObjectType & Get(TConstObjectPtr object)
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
static char * ToChar(TChar *p)
vector< Char > TObjectType
static const TChar * ToTChar(const char *p)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr objectPtr)
static bool IsDefault(TConstObjectPtr object)
static const char * ToChar(const TChar *p)
static void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr)
static void Assign(TObjectPtr, TConstObjectPtr, ESerialRecursionMode)
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr)
static void SetDefault(TObjectPtr)
static bool IsDefault(TConstObjectPtr)
static bool Equals(TConstObjectPtr, TConstObjectPtr, ESerialRecursionMode)
static void Skip(CObjectIStream &in, TTypeInfo)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static bool IsNegative(Uint4)
static bool IsNegative(Int4 value)
static bool IsNegative(long value)
static bool IsNegative(Int8 value)
static bool IsNegative(unsigned long)
static bool IsNegative(Uint8)
static void SetMemFunctions(CPrimitiveTypeInfo *info)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static TObjectType & Get(TObjectPtr object)
static const TObjectType & Get(TConstObjectPtr object)
static bool Equals(TConstObjectPtr obj1, TConstObjectPtr obj2, ESerialRecursionMode)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static bool IsDefault(TConstObjectPtr objectPtr)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr objectPtr)
static void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode)
static void SetIOFunctions(CPrimitiveTypeInfo *info)
static void SetDefault(TObjectPtr objectPtr)
static void Skip(CObjectIStream &in, TTypeInfo)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static CPrimitiveTypeInfoInt * CreateTypeInfo(void)
CPrimitiveTypeInfoIntFunctions< T > CParent
static void SetInt4Functions(CPrimitiveTypeInfoInt *info)
static CPrimitiveTypeInfoInt * CreateTypeInfo(void)
static void SetValueUint8(TObjectPtr objectPtr, Uint8 value)
static bool IsSigned(void)
static Uint8 GetValueUint8(TConstObjectPtr objectPtr)
static Int8 GetValueInt8(TConstObjectPtr objectPtr)
static Int4 GetValueInt4(TConstObjectPtr objectPtr)
static void SetValueInt4(TObjectPtr objectPtr, Int4 value)
static void SetValueUint4(TObjectPtr objectPtr, Uint4 value)
static bool Equals(TConstObjectPtr obj1, TConstObjectPtr obj2, ESerialRecursionMode)
CPrimitiveTypeFunctions< T > CParent
static void SetInt8Functions(CPrimitiveTypeInfoInt *info)
static void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode)
static bool IsDefault(TConstObjectPtr objectPtr)
static void SetValueInt8(TObjectPtr objectPtr, Int8 value)
static void SetDefault(TObjectPtr objectPtr)
static Uint4 GetValueUint4(TConstObjectPtr objectPtr)
static bool IsUnsigned(void)
Root class for all serialization exceptions.
static bool IsDefault(TConstObjectPtr objectPtr)
CPrimitiveTypeFunctions< T > CParent
static void Skip(CObjectIStream &in, TTypeInfo)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
static void SetDefault(TObjectPtr objectPtr)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr objectPtr)
static TObjectPtr Create(TTypeInfo, CObjectMemoryPool *)
static void Write(CObjectOStream &out, TTypeInfo, TConstObjectPtr objectPtr)
static void Skip(CObjectIStream &in, TTypeInfo)
static void Read(CObjectIStream &in, TTypeInfo, TObjectPtr objectPtr)
static void Copy(CObjectStreamCopier &copier, TTypeInfo)
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
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.
ESerialRecursionMode
How to assign and compare child sub-objects of serial objects.
static TObjectType & Get(TObjectPtr object)
const void * TConstObjectPtr
void Read(CObjectIStream &in, TObjectPtr object, const CTypeRef &type)
EPrimitiveValueType
Primitive value type.
void Write(CObjectOStream &out, TConstObjectPtr object, const CTypeRef &type)
static const TObjectType * SafeCast(TTypeInfo type)
@ ePrimitiveValueSpecial
null, void
@ ePrimitiveValueOctetString
vector<(signed|unsigned)? char>
@ ePrimitiveValueString
string|char*|const char*
@ ePrimitiveValueInteger
(signed|unsigned) (char|short|int|long)
@ ePrimitiveValueChar
char
@ ePrimitiveValueBool
bool
@ ePrimitiveValueReal
float|double
@ ePrimitiveValueBitString
@ eStringTypeUTF8
UTF8-encoded string.
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)
void WriteStd(const bool &data)
void CopyStringStore(void)
virtual void ReadNull(void)=0
void SetSpecialCaseUsed(ESpecialCaseRead used)
void Write(const void *bytes, size_t length)
bool KnownLength(void) const
size_t GetExpectedLength(void) const
void CopyString(EStringType type=eStringTypeVisible)
CObjectIStream & In(void) const
void CopyAnyContentObject(void)
CObjectOStream & Out(void) const
virtual void WriteNull(void)=0
ESpecialCaseRead GetSpecialCaseUsed(void) const
size_t Read(void *dst, size_t length, bool forceLength=false)
void SetSpecialCaseWrite(ESpecialCaseWrite how)
@ fIllegalCall
Illegal in a given context function call.
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.
static string SizetToString(size_t value, TNumToStringFlags flags=0, int base=10)
Convert size_t to string.
TGetUint8Function m_GetUint8
TGetInt4Function m_GetInt4
virtual Uint8 GetValueUint8(TConstObjectPtr objectPtr) const override
void SetWriteFunction(TTypeWriteFunction func)
const string & GetName(void) const
Get name of this type.
TGetInt8Function m_GetInt8
virtual void SetValueString(TObjectPtr objectPtr, const string &value) const override
TSetUint4Function m_SetUint4
virtual bool IsDefault(TConstObjectPtr object) const override
Check, whether the object contains default value.
virtual Uint4 GetValueUint4(TConstObjectPtr objectPtr) const
CPrimitiveTypeInfoBool(void)
virtual bool Equals(TConstObjectPtr, TConstObjectPtr, ESerialRecursionMode how=eRecursive) const override
Check if both objects contain the same values.
virtual void GetValueAnyContent(TConstObjectPtr objectPtr, CAnyContentObject &value) const override
virtual void SetValueBool(TObjectPtr object, bool value) const override
virtual void GetValueAnyContent(TConstObjectPtr objectPtr, CAnyContentObject &value) const
static bool Equals(TConstObjectPtr obj1, TConstObjectPtr obj2, ESerialRecursionMode how=eRecursive)
CPrimitiveTypeInfoBitString(void)
CCharVectorTypeInfo(void)
virtual void SetDefault(TObjectPtr dst) const override
Set object to default value.
virtual void GetValueString(TConstObjectPtr object, string &value) const override
static TObjectPtr Create(TTypeInfo objectType, CObjectMemoryPool *memPool)
virtual Uint4 GetValueUint4(TConstObjectPtr objectPtr) const override
virtual void SetValueInt8(TObjectPtr objectPtr, Int8 value) const
TIsDefaultFunction m_IsDefault
virtual void SetValueInt4(TObjectPtr objectPtr, Int4 value) const
virtual CTypeInfo * SetTag(CAsnBinaryDefs::TLongTag tag, CAsnBinaryDefs::ETagClass tagclass=CAsnBinaryDefs::eUniversal, CAsnBinaryDefs::ETagType tagtype=CAsnBinaryDefs::eAutomatic)
virtual void SetValueChar(TObjectPtr objectPtr, char value) const override
virtual void GetValueString(TConstObjectPtr objectPtr, string &value) const
void SetMemFunctions(TTypeCreate, TIsDefaultFunction, TSetDefaultFunction, TEqualsFunction, TAssignFunction)
virtual void SetValueBool(TObjectPtr objectPtr, bool value) const
virtual bool IsType(TTypeInfo type) const override
virtual Int4 GetValueInt4(TConstObjectPtr objectPtr) const
CPrimitiveTypeInfo(size_t size, EPrimitiveValueType valueType, bool isSigned=true)
CPrimitiveTypeInfoChar(void)
void ThrowIncompatibleValue(void)
virtual void SetValueOctetString(TObjectPtr objectPtr, const vector< char > &value) const
virtual void SetValueUint4(TObjectPtr objectPtr, Uint4 value) const override
CPrimitiveTypeInfoDouble(void)
TTypeReadFunction GetReadFunction(void) const
TSetUint8Function m_SetUint8
TSetInt8Function m_SetInt8
virtual void SetValueInt8(TObjectPtr objectPtr, Int8 value) const override
virtual void SetValueOctetString(TObjectPtr objectPtr, const vector< char > &value) const override
virtual void GetValueOctetString(TConstObjectPtr objectPtr, vector< char > &value) const override
virtual void GetValueOctetString(TConstObjectPtr objectPtr, vector< char > &value) const
CPrimitiveTypeInfoInt(size_t size, bool isSigned)
CPrimitiveTypeInfoFloat(void)
void SetIOFunctions(TTypeReadFunction, TTypeWriteFunction, TTypeCopyFunction, TTypeSkipFunction)
virtual void GetValueString(TConstObjectPtr objectPtr, string &value) const override
virtual void SetValueString(TObjectPtr objectPtr, const string &value) const override
void ThrowIntegerOverflow(void)
CPrimitiveTypeInfoAnyContent(void)
virtual bool GetValueBool(TConstObjectPtr object) const override
virtual void GetValueString(TConstObjectPtr objectPtr, string &value) const override
CPrimitiveTypeInfoCharPtr(void)
virtual void GetValueBitString(TConstObjectPtr objectPtr, CBitString &value) const
virtual void SetValueChar(TObjectPtr objectPtr, char value) const
void SetSkipFunction(TTypeSkipFunction func)
vector< Char > TObjectType
virtual char GetValueChar(TConstObjectPtr objectPtr) const
virtual void SetValueBitString(TObjectPtr objectPtr, const CBitString &value) const override
void SetInt8Functions(TGetInt8Function, TSetInt8Function, TGetUint8Function, TSetUint8Function)
CPrimitiveTypeInfoString(EType type=eStringTypeVisible)
virtual void SetValueUint8(TObjectPtr objectPtr, Uint8 value) const
virtual void SetValueAnyContent(TObjectPtr objectPtr, const CAnyContentObject &value) const override
virtual char GetValueChar(TConstObjectPtr object) const override
bool IsStringStore(void) const
virtual void SetValueChar(TObjectPtr object, char value) const override
virtual void SetValueString(TObjectPtr objectPtr, const string &value) const override
virtual void SetValueUint4(TObjectPtr objectPtr, Uint4 value) const
static bool IsDefault(TConstObjectPtr objectPtr)
virtual void SetValueBitString(TObjectPtr objectPtr, const CBitString &value) const
virtual void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const override
Set object to copy of another one.
virtual void GetValueString(TConstObjectPtr objectPtr, string &value) const override
static void SetDefault(TObjectPtr objectPtr)
virtual Int8 GetValueInt8(TConstObjectPtr objectPtr) const override
virtual char GetValueChar(TConstObjectPtr objectPtr) const override
void ThrowIllegalCall(void)
virtual void SetValueDouble(TObjectPtr objectPtr, double value) const
static void Read(CObjectIStream &in, TTypeInfo objectType, TObjectPtr objectPtr)
void SetCreateFunction(TTypeCreate func)
virtual void SetValueInt4(TObjectPtr objectPtr, Int4 value) const override
virtual void SetValueAnyContent(TObjectPtr objectPtr, const CAnyContentObject &value) const
virtual double GetValueDouble(TConstObjectPtr objectPtr) const override
virtual double GetValueDouble(TConstObjectPtr objectPtr) const
virtual void GetValueBitString(TConstObjectPtr objectPtr, CBitString &value) const override
virtual char GetValueChar(TConstObjectPtr objectPtr) const override
virtual bool GetValueBool(TConstObjectPtr objectPtr) const
static void Skip(CObjectIStream &in, TTypeInfo objectType)
static void Write(CObjectOStream &out, TTypeInfo objectType, TConstObjectPtr objectPtr)
virtual double GetValueDouble(TConstObjectPtr objectPtr) const override
virtual void SetValueDouble(TObjectPtr objectPtr, double value) const override
static void ThrowException(const char *operation, TTypeInfo objectType)
void SetInt4Functions(TGetInt4Function, TSetInt4Function, TGetUint4Function, TSetUint4Function)
virtual void SetValueString(TObjectPtr objectPtr, const string &value) const
virtual Int4 GetValueInt4(TConstObjectPtr objectPtr) const override
void SetCopyFunction(TTypeCopyFunction func)
virtual void SetValueUint8(TObjectPtr objectPtr, Uint8 value) const override
TSetDefaultFunction m_SetDefault
virtual void SetValueChar(TObjectPtr objectPtr, char value) const override
CAsnBinaryDefs::ETagConstructed m_TagConstructed
virtual Int8 GetValueInt8(TConstObjectPtr objectPtr) const
static void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive)
virtual void SetValueString(TObjectPtr object, const string &value) const override
virtual void SetValueDouble(TObjectPtr objectPtr, double value) const override
static void Copy(CObjectStreamCopier &copier, TTypeInfo objectType)
TGetUint4Function m_GetUint4
virtual Uint8 GetValueUint8(TConstObjectPtr objectPtr) const
void SetReadFunction(TTypeReadFunction func)
TSetInt4Function m_SetInt4
X * NotNull(X *object)
Check for not null value (after C malloc, strdup etc.).
const TYPE & Get(const CNamedParameterList *param)
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
int strcmp(const char *str1, const char *str2)
static bool Equals(const CVariation::TPlacements &p1, const CVariation::TPlacements &p2)
std::istream & in(std::istream &in_, double &x_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
#define NcbiSysChar_strdup
#define DECLARE_STD_INT_TYPE(Type)
bool x_Practically_Equal(const TFloat v1, const TFloat v2)