63 in.Read(
object,
type.Get());
78 if (!
in.EndOfData()) {
91 const string& s = *s_ModuleNames.
Get().insert(moduleName).first;
107 const char* owner_name,
const char* member_name)
109 string name = owner_name;
110 if ( member_name && *member_name ) {
114 info->SetInternalName(name);
118 const char* owner_name,
const char* member_name)
120 string name = owner_name;
121 if ( member_name && *member_name ) {
125 info->SetInternalName(name);
133 return info->AddMember(name, member,
r);
263 return info->AddVariant(name, member,
r);
392 const void* nonCObject,
395 TWhichFunction whichFunc,
396 TSelectFunction selectFunc,
397 TResetFunction resetFunc)
400 ti, whichFunc, selectFunc, resetFunc);
408 TWhichFunction whichFunc,
409 TSelectFunction selectFunc,
410 TResetFunction resetFunc)
413 ti, whichFunc, selectFunc, resetFunc);
418 const void* nonCObject,
421 TGetTypeIdFunction idFunc)
431 TGetTypeIdFunction idFunc)
438 info->SetPreWriteFunction(func);
443 info->SetPostWriteFunction(func);
448 info->SetPreReadFunction(func);
453 info->SetPostReadFunction(func);
458 info->SetPreWriteFunction(func);
463 info->SetPostWriteFunction(func);
468 info->SetPreReadFunction(func);
473 info->SetPostReadFunction(func);
480 const char* name0 = name;
481 while (
const char* dot = strchr(name,
'.') ) {
484 switch (
info->GetTypeFamily() ) {
487 ->GetMemberInfo(item_name)->GetTypeInfo();
491 ->GetVariantInfo(item_name)->GetTypeInfo();
494 if ( item_name !=
"E" ) {
498 ": element name must be 'E'");
515 if (
info->GetTypeFamily() != req_family ) {
525 const char* member_names,
531 ->SetGlobalHook(member_names, hook);
535 const char* variant_names,
541 ->SetGlobalHook(variant_names, hook);
Read hook for a choice variant (CHOICE)
Read hook for data member of a containing object (eg, SEQUENCE)
T & Get(void)
Create the variable if not created yet, return the reference.
Root class for all serialization exceptions.
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
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
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
void SetGlobalReadMemberHook(CTypeInfo *start_info, const char *member_names, CReadClassMemberHook *hook_ptr)
void(* TPreReadFunction)(const CTypeInfo *info, void *object)
void SetGlobalReadVariantHook(CTypeInfo *start_info, const char *variant_names, CReadChoiceVariantHook *hook_ptr)
void SetPostRead(CClassTypeInfo *info, TPostReadFunction func)
static CChoiceTypeInfo * CreateChoiceInfo(const char *name, size_t size, const void *nonCObject, TCreateFunction createFunc, const type_info &ti, TWhichFunction whichFunc, TSelectFunction selectFunc, TResetFunction resetFunc)
TObjectPtr GetChoiceObjectPtr(const CObjectInfoCV &variant)
void SetPreWrite(CClassTypeInfo *info, TPreWriteFunction func)
TTypeInfo CPointerTypeInfoGetTypeInfo(TTypeInfo type)
void(* TPreWriteFunction)(const CTypeInfo *info, const void *object)
TTypeInfo(* TTypeInfoGetter)(void)
const void * TConstObjectPtr
void RegisterEnumTypeValuesObject(CEnumeratedTypeValues *)
void SetPreRead(CClassTypeInfo *info, TPreReadFunction func)
void Read(CObjectIStream &in, TObjectPtr object, const CTypeRef &type)
void(* TPostWriteFunction)(const CTypeInfo *info, const void *object)
TTypeInfo(* TTypeInfoGetter1)(TTypeInfo)
void SetModuleName(CTypeInfo *info, const char *moduleName)
void Write(CObjectOStream &out, TConstObjectPtr object, const CTypeRef &type)
static CClassTypeInfo * CreateClassInfo(const char *name, size_t size, const void *nonCObject, TCreateFunction createFunc, const type_info &id, TGetTypeIdFunction func)
void SetPostWrite(CClassTypeInfo *info, TPostWriteFunction func)
TObjectPtr GetClassObjectPtr(const CObjectInfoMI &member)
void RegisterTypeInfoObject(CTypeInfo *)
CMemberInfo * AddMember(CClassTypeInfoBase *info, const char *name, const void *member, const CTypeRef &r)
void SetInternalName(CTypeInfo *info, const char *owner_name, const char *member_name)
CTypeInfo::TTypeCreate TCreateFunction
CVariantInfo * AddVariant(CChoiceTypeInfo *info, const char *name, const void *member, const CTypeRef &r)
void(* TPostReadFunction)(const CTypeInfo *info, void *object)
const CObjectInfo & GetChoiceObject(void) const
Get containing choice.
TObjectPtr GetObjectPtr(void) const
Get pointer to object.
const CObjectInfo & GetClassObject(void) const
Get containing class data.
bool Serial_FilterSkip(CObjectIStream &in, const CObjectTypeInfo &ctype)
#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.
static TTypeInfo GetTypeInfo(TTypeInfo base)
static void RegisterModule(const string &module)
const struct ncbi::grid::netcache::search::fields::SIZE size
Static variables safety - create on demand, destroy on application termination.
Multi-threading – mutexes; rw-locks; semaphore.
std::istream & in(std::istream &in_, double &x_)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
double f(double x_, const double &y_)
static int new_info(pcre *re, pcre_extra *study, int option, void *ptr)
DEFINE_STATIC_FAST_MUTEX(s_ModuleNameMutex)
static void s_ResolveItems(CTypeInfo *&info, const char *&name, ETypeFamily req_family)
static const string & GetModuleName(const char *moduleName)