📄 serialimpl.hpp
字号:
BEGIN_NAMED_ENUM_INFO(#EnumName, EnumName, IsInteger)#define SET_ENUM_MODULE(ModuleName) \ NCBI_NS_NCBI::SetModuleName(enumInfo, ModuleName)#define ADD_ENUM_VALUE(EnumValueName, EnumValueValue) \ enumInfo->AddValue(EnumValueName, enumValue = EnumValueValue)#define END_ENUM_IN_INFO END_ENUM_INFO_METHOD#define END_ENUM_INFO END_ENUM_INFO_METHOD// alias definition macros#define SERIAL_ALIAS(RefType) \ NCBI_NAME2(SERIAL_REF_, RefType)#define ALIASED_TYPE_INFO(RefType, RefCode) \ NCBI_NAME2(RefType, RefCode)#define BEGIN_ALIAS_INFO_METHOD(AliasName,ClassName,BaseClassName,SerialRef,Code) \const NCBI_NS_NCBI::CTypeInfo* BaseClassName::GetTypeInfo(void) \{ \ static NCBI_NS_NCBI::CAliasTypeInfo* volatile s_info = 0; \ NCBI_NS_NCBI::CAliasTypeInfo* info = s_info; \ if ( !info ) { \ NCBI_NS_NCBI::CMutexGuard GUARD(NCBI_NS_NCBI::GetTypeInfoMutex()); \ info = s_info; \ if ( !info ) { \ typedef ClassName CClass; \ typedef BaseClassName CClass_Base; \ DECLARE_BASE_OBJECT(ClassName); \ typedef NCBI_NS_NCBI::TTypeInfo (*TGetter)(void); \ TGetter getter = SerialRef Code; \ info = new NCBI_NS_NCBI::CAliasTypeInfo(AliasName, getter()); \ NCBI_NS_NCBI::RegisterTypeInfoObject(info);#define BEGIN_ALIAS_INFO(AliasName,ClassName,RefType,RefCode) \ BEGIN_ALIAS_INFO_METHOD(AliasName, ClassName, \ NCBI_NAME2(ClassName,_Base), \ SERIAL_ALIAS(RefType), RefCode)#define SET_STD_ALIAS_DATA_PTR \ info->SetDataOffset(GetDataPtr(BASE_OBJECT()))#define SET_CLASS_ALIAS_DATA_PTR \ info->SetDataOffset(NCBI_NS_NCBI::TPointerOffsetType(BASE_OBJECT()))#define END_ALIAS_INFO \ s_info = info; \ } \ } \ return info; \}#define SET_ALIAS_MODULE(ModuleName) \ NCBI_NS_NCBI::SetModuleName(info, ModuleName)NCBI_XSERIAL_EXPORTvoid SetModuleName(CTypeInfo* info, const char* name);NCBI_XSERIAL_EXPORTvoid SetModuleName(CEnumeratedTypeValues* info, const char* name);// internal methods// add memberNCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfo t);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, const CTypeRef& r);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);// add variantNCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfo t);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, const CTypeRef& r);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfoGetter f);NCBI_XSERIAL_EXPORTCVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r);// end of internal methodsEND_NCBI_SCOPE/* @} */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -