55 #define NCBI_USE_ERRCODE_X Serial_DTType
88 : m_ParentType(0), m_Module(0), m_SourceLine(0),
89 m_DataMember(0), m_TypeStr(0), m_Set(0), m_Choice(0), m_Checked(
false),
93 m_GlobalType(eElement), m_EmptyExternalName(
false)
102 #if defined(NCBI_COMPILER_WORKSHOP)
104 # if (NCBI_COMPILER_VERSION == 530)
135 if (ttype !=
GetModule()->GetTagDefault()) {
149 const char* p =
"something went wrong";
162 const char* p =
"something went wrong";
241 if (realType && realType !=
this) {
313 const string& typeName)
360 s = parent->
GetVar(varName, collect);
368 return parent->
GetVar(s, -1);
376 if (
value.empty() ) {
377 return default_value;
389 return default_value;
395 if (!var.empty() && !
value.empty()) {
398 if (it->second ==
value) {
408 if (!var.empty() && !
value.empty()) {
411 if (it->second ==
value) {
425 if (it->second ==
tmp) {
518 if ( parentPrefix.empty() )
527 return GetVar(
"_class") ==
"-";
536 if ( !cls.empty() ) {
584 const string cls =
GetVar(
"_class");
598 for (
size_t i=0;;++
i) {
619 string prefix(
GetModule()->GetSubnamespace());
620 if (!prefix.empty()) {
624 if ( !
file.empty() ) {
628 string dir =
GetVar(
"_dir");
641 string::size_type p =
tmp.find_last_not_of(
'x');
646 if (p != string::npos) {
669 const string ns =
GetVar(
"_namespace");
671 string sub_ns(
GetModule()->GetSubnamespace());
672 if (sub_ns.empty()) {
692 return GetVar(
"_parent_class");
697 const string parentName =
GetVar(
"_parent_type");
698 if ( !parentName.empty() )
727 string moduleName = name.substr(0, dot);
728 string typeName = name.substr(dot + 1);
783 "cannot create type info of "+
IdName());
802 bool nonempty =
false, noprefix =
false;
809 code->AddMember(dType,
GetTag(), nonempty, noprefix);
814 string fullalias =
GetVar(
"_fullalias");
820 code->SetDataType(
this);
837 if ( !parentClassName.empty() ) {
838 SIZE_TYPE pos = parentClassName.rfind(
"::");
840 code.SetParentClass(parentClassName.substr(pos + 2),
845 code.SetParentClass(parentClassName,
880 Warning(
"Default is not supported by this type", 3);
970 return "ncbi::EDataSpec::eUnknown";
979 if (!name.empty() && name[name.size()-1] !=
':') {
993 bool hasAttlist = !members.empty() && members.front()->Attlist();
994 if (( hasAttlist && members.size() == 2) ||
995 (!hasAttlist && members.size() == 1)) {
info DataSpec(ncbi::EDataSpec::eXSD)
virtual TTypeInfo GetTypeInfo(void) override
CAnyTypeSource(CDataType *type)
const TMembers & GetMembers(void) const
list< AutoPtr< CDataMember > > TMembers
const string & GetName(void) const
const CDataValue * GetDefault(void) const
CDataType * GetType(void)
virtual string GetFileNamePrefix(void) const override
CDataType * Resolve(const string &name) const
const string GetVar(const string §ion, const string &value, bool collect) const
virtual const CNamespace & GetNamespace(void) const override
static map< string, string > sm_ClassToMember
string FileName(void) const
static string GetSourceDataSpecString(void)
void SetInSet(const CUniSequenceDataType *sequence)
void x_SetMemberAndClassName(const string &memberName)
virtual const char * GetDEFKeyword(void) const
AutoPtr< CTypeInfo > m_AnyTypeInfo
static bool x_IsSavedName(const string &name)
CDataType * ResolveLocal(const string &name) const
void Warning(const string &mess, int err_subcode=0) const
void SetParentClassTo(CClassTypeStrings &code) const
static void x_AddSavedName(const string &name)
const CDataMember * GetDataMember(void) const
CNcbiOstream & PrintASNTag(CNcbiOstream &out) const
virtual string GetDefaultString(const CDataValue &value) const
const CDataType * InheritFromType(void) const
int GetSourceLine(void) const
bool IsEnumType(void) const
bool HaveModuleName(void) const
CComments & Comments(void)
CAsnBinaryDefs::ETagClass GetTagClass(void) const
void PrintASNTypeComments(CNcbiOstream &out, int indent, int flags=0) const
virtual AutoPtr< CTypeStrings > GetFullCType(void) const
void PrintDTD(CNcbiOstream &out) const
void SetParent(const CDataType *parent, const string &memberName, string xmlName=kEmptyStr)
string LocationString(void) const
virtual bool CheckType(void) const
virtual const CTypeInfo * GetRealTypeInfo(void)
string GetFullName(void) const
virtual AutoPtr< CTypeStrings > GenerateCode(void) const
const string & GlobalName(void) const
string ClassName(void) const
const string & GetNamespaceName(void) const
void ForbidVar(const string &var, const string &value)
string DefClassMemberName(void) const
CDataType * ResolveGlobal(const string &name) const
void AllowVar(const string &var, const string &value)
list< const CReferenceDataType * > TReferences
virtual const char * GetASNKeyword(void) const
static string GetTagClassString(CAsnBinaryDefs::ETagClass tclass)
const CDataType * GetParentType(void) const
CAsnBinaryDefs::ETagType GetTagType(void) const
virtual void PrintDTDExtra(CNcbiOstream &out) const
const CDataType * m_ParentType
bool IsReference(void) const
virtual void PrintSpecDump(CNcbiOstream &out, int indent) const
static bool sm_EnforcedStdXml
static set< string > sm_SavedNames
const CChoiceDataType * m_Choice
virtual CTypeRef GetTypeInfo(void)
static bool sm_EnableDTDEntities
static bool GetEnforcedStdXml(void)
const string & GetSourceFileName(void) const
static string GetTagTypeString(CAsnBinaryDefs::ETagType ttype)
void SetSourceLine(int line)
virtual void PrintDTDElement(CNcbiOstream &out, bool contents_only=false) const =0
bool IsPrimitive(void) const
CTypeInfo * UpdateModuleName(CTypeInfo *typeInfo) const
const CDataTypeModule * m_Module
bool GetBoolVar(const string &value, bool default_value=false) const
virtual void FixTypeTree(void) const
void PrintDTDTypeComments(CNcbiOstream &out, int indent) const
const CUniSequenceDataType * m_Set
static set< string, PNocase > sm_AllFileNames
virtual string GetSchemaTypeString(void) const
virtual const CTypeInfo * GetAnyTypeInfo(void)
AutoPtr< TReferences > m_References
void SetInChoice(const CChoiceDataType *choice)
static EDataSpec sm_SourceDataSpec
const CNamespace & Namespace(void) const
bool IsContainer(void) const
void AddReference(const CReferenceDataType *reference)
virtual CTypeInfo * CreateTypeInfo(void)
virtual const CDataType * Resolve(void) const
string GetKeyPrefix(void) const
unique_ptr< CNamespace > m_CachedNamespace
bool IsStdType(void) const
virtual void PrintSpecDumpExtra(CNcbiOstream &out, int indent) const
string InheritFromClass(void) const
multimap< string, string > m_ForbidVar
const string GetVar(const string &value, int collect=0) const
CAsnBinaryDefs::TLongTag GetTag(void) const
virtual bool NeedAutoPointer(const CTypeInfo *typeInfo) const
const CDataTypeModule * GetModule(void) const
CDataMember * m_DataMember
static bool IsASNDataSpec(void)
bool IsInUniSeq(void) const
string XmlTagName(void) const
AutoPtr< CTypeInfo > m_RealTypeInfo
virtual AutoPtr< CTypeStrings > GetRefCType(void) const
const string GetAndVerifyVar(const string &value) const
bool IsTypeAlias(void) const
bool IsUniSeq(void) const
virtual string GetSpecKeyword(void) const
static EDataSpec GetSourceDataSpec(void)
const string & GetMemberName(void) const
string IdName(void) const
void SetModule(const CDataTypeModule *module) const
virtual CDataType * InternalResolve(const string &moduleName, const string &typeName) const
const CModuleContainer & GetModuleContainer(void) const
virtual const string & GetSourceFileName(void) const
static const CNamespace KEmptyNamespace
static CNcbiApplication * Instance(void)
Singleton method.
bool IsRefToParent(void) const
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
bool IsNonEmpty(void) const
const_iterator end() const
const_iterator find(const key_type &key) const
const_iterator find(const key_type &key) const
const_iterator end() const
iterator insert(const value_type &val)
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
std::ofstream out("events_result.xml")
main entry point for tests
string MakeFileName(const string &fname, size_t addLength)
string Path(const string &dir, const string &file)
void reset(element_type *p=0, EOwnership ownership=eTakeOwnership)
Reset will delete the old pointer (if owned), set content to the new value, and assume the ownership ...
element_type * get(void) const
Get pointer.
element_type * release(void)
Release will release ownership of pointer to caller.
#define NCBI_ERRCODE_X
Returns currently set default error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static bool StringToBool(const CTempString str)
Convert string to bool.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
virtual const string & GetModuleName(void) const
Get module name.
void DataSpec(EDataSpec spec)
void SetModuleName(const string &name)
Set module name.
void SetFullAlias(bool set=true)
size_t GetSize(void) const
Get size of data object in memory (like sizeof in C)
#define ErrCode()
Get the error code for the last failed system function.
Definition of all error codes used in serial libraries (xser.lib, xcser.lib).
double value_type
The numeric datatype used by the parser.
const GenericPointer< typename T::ValueType > T2 value
Common macro to detect used sanitizers and suppress memory leaks if run under LeakSanitizer.
#define NCBI_LSAN_DISABLE_GUARD
#define GetArgs
Avoid preprocessor name clash with the NCBI C Toolkit.
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
@ eForbidden
User is not authorized for the retrieval.
static SLJIT_INLINE sljit_ins st(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
string Identifier(const string &typeName, bool capitalize)
CNcbiOstream & PrintASNNewLine(CNcbiOstream &out, int indent)
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)