⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statictype.cpp

📁 ncbi源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void CRealDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:decimal";    contents.erase();}bool CRealDataType::CheckValue(const CDataValue& value) const{    const CBlockDataValue* block = dynamic_cast<const CBlockDataValue*>(&value);    if ( !block ) {        return dynamic_cast<const CDoubleDataValue*>(&value) != 0;    }    if ( block->GetValues().size() != 3 ) {        value.Warning("wrong number of elements in REAL value");        return false;    }    for ( CBlockDataValue::TValues::const_iterator i = block->GetValues().begin();          i != block->GetValues().end(); ++i ) {        CheckValueType(**i, CIntDataValue, "INTEGER");    }    return true;}TObjectPtr CRealDataType::CreateDefault(const CDataValue& value) const{    return new double(dynamic_cast<const CDoubleDataValue&>(value).GetValue());}string CRealDataType::GetDefaultString(const CDataValue& value) const{    const CDoubleDataValue* dbl = dynamic_cast<const CDoubleDataValue*>(&value);    if (dbl) {        return NStr::DoubleToString(dbl->GetValue());    }    value.Warning("REAL value expected");    return kEmptyStr;}TTypeInfo CRealDataType::GetRealTypeInfo(void){    if ( HaveModuleName() )        return UpdateModuleName(CStdTypeInfo<double>::CreateTypeInfo());    return CStdTypeInfo<double>::GetTypeInfo();}const char* CRealDataType::GetDefaultCType(void) const{    return "double";}CStringDataType::CStringDataType(EType type)    : m_Type(type){    ForbidVar("_type", "short");    ForbidVar("_type", "int");    ForbidVar("_type", "long");    ForbidVar("_type", "unsigned");    ForbidVar("_type", "unsigned short");    ForbidVar("_type", "unsigned int");    ForbidVar("_type", "unsigned long");}const char* CStringDataType::GetASNKeyword(void) const{    if (m_Type == eStringTypeUTF8) {        return "UTF8String";    }    return "VisibleString";}const char* CStringDataType::GetXMLContents(void) const{    return "( #PCDATA )";}void CStringDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:string";    contents.erase();}bool CStringDataType::CheckValue(const CDataValue& value) const{    CheckValueType(value, CStringDataValue, "string");    return true;}TObjectPtr CStringDataType::CreateDefault(const CDataValue& value) const{    if (m_Type == eStringTypeUTF8) {        return new (CStringUTF8*)(new CStringUTF8(dynamic_cast<const CStringDataValue&>(value).GetValue()));    }    return new (string*)(new string(dynamic_cast<const CStringDataValue&>(value).GetValue()));}string CStringDataType::GetDefaultString(const CDataValue& value) const{    string s;    s += '\"';    const string& v = dynamic_cast<const CStringDataValue&>(value).GetValue();    for ( string::const_iterator i = v.begin(); i != v.end(); ++i ) {        switch ( *i ) {        case '\r':            s += "\\r";            break;        case '\n':            s += "\\n";            break;        case '\"':            s += "\\\"";            break;        case '\\':            s += "\\\\";            break;        default:            s += *i;        }    }    return s + '\"';}TTypeInfo CStringDataType::GetRealTypeInfo(void){    if ( HaveModuleName() )        return UpdateModuleName(CStdTypeInfo<string>::CreateTypeInfo());    return CStdTypeInfo<string>::GetTypeInfo();}bool CStringDataType::NeedAutoPointer(TTypeInfo /*typeInfo*/) const{    return true;}AutoPtr<CTypeStrings> CStringDataType::GetFullCType(void) const{    string type = GetAndVerifyVar("_type");    if ( type.empty() )        type = GetDefaultCType();    return AutoPtr<CTypeStrings>(new CStringTypeStrings(type));}const char* CStringDataType::GetDefaultCType(void) const{    if (m_Type == eStringTypeUTF8) {        return "ncbi::CStringUTF8";    }    return "NCBI_NS_STD::string";}CStringStoreDataType::CStringStoreDataType(void){}const char* CStringStoreDataType::GetASNKeyword(void) const{    return "StringStore";}TTypeInfo CStringStoreDataType::GetRealTypeInfo(void){    return CStdTypeInfo<string>::GetTypeInfoStringStore();}bool CStringStoreDataType::NeedAutoPointer(TTypeInfo /*typeInfo*/) const{    return true;}AutoPtr<CTypeStrings> CStringStoreDataType::GetFullCType(void) const{    string type = GetAndVerifyVar("_type");    if ( type.empty() )        type = GetDefaultCType();    return AutoPtr<CTypeStrings>(new CStringStoreTypeStrings(type));}const char* CBitStringDataType::GetASNKeyword(void) const{    return "BIT STRING";}bool CBitStringDataType::CheckValue(const CDataValue& value) const{    CheckValueType(value, CBitStringDataValue, "BIT STRING");    return true;}const char* CBitStringDataType::GetXMLContents(void) const{    return "( %BITS; )";}void CBitStringDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:hexBinary";    contents.erase();}const char* COctetStringDataType::GetASNKeyword(void) const{    return "OCTET STRING";}const char* COctetStringDataType::GetDefaultCType(void) const{    return "NCBI_NS_STD::vector<char>";}const char* COctetStringDataType::GetXMLContents(void) const{    return "( %OCTETS; )";}void COctetStringDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:hexBinary";    contents.erase();}bool COctetStringDataType::CheckValue(const CDataValue& value) const{    CheckValueType(value, COctetStringDataType, "OCTET STRING");    return true;}TTypeInfo COctetStringDataType::GetRealTypeInfo(void){    if ( HaveModuleName() )        return UpdateModuleName(CStdTypeInfo<vector<char> >::CreateTypeInfo());    return CStdTypeInfo< vector<char> >::GetTypeInfo();}bool COctetStringDataType::NeedAutoPointer(TTypeInfo /*typeInfo*/) const{    return true;}AutoPtr<CTypeStrings> COctetStringDataType::GetFullCType(void) const{    string charType = GetVar("_char");    if ( charType.empty() )        charType = "char";    return AutoPtr<CTypeStrings>(new CVectorTypeStrings(charType));}CIntDataType::CIntDataType(void){    ForbidVar("_type", "string");}const char* CIntDataType::GetASNKeyword(void) const{    return "INTEGER";}const char* CIntDataType::GetXMLContents(void) const{    return "( %INTEGER; )";}void CIntDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:integer";    contents.erase();}bool CIntDataType::CheckValue(const CDataValue& value) const{    CheckValueType(value, CIntDataValue, "INTEGER");    return true;}TObjectPtr CIntDataType::CreateDefault(const CDataValue& value) const{    return new Int4(dynamic_cast<const CIntDataValue&>(value).GetValue());}string CIntDataType::GetDefaultString(const CDataValue& value) const{    return NStr::IntToString(dynamic_cast<const CIntDataValue&>(value).GetValue());}CTypeRef CIntDataType::GetTypeInfo(void){    if ( HaveModuleName() )        return UpdateModuleName(CStdTypeInfo<Int4>::CreateTypeInfo());    return &CStdTypeInfo<Int4>::GetTypeInfo;}const char* CIntDataType::GetDefaultCType(void) const{    return "int";}const char* CBigIntDataType::GetASNKeyword(void) const{    return "BigInt";}const char* CBigIntDataType::GetXMLContents(void) const{    return "( %INTEGER; )";}void CBigIntDataType::GetXMLSchemaContents(string& type, string& contents) const{    type = "xs:integer";    contents.erase();}bool CBigIntDataType::CheckValue(const CDataValue& value) const{    CheckValueType(value, CIntDataValue, "BigInt");    return true;}TObjectPtr CBigIntDataType::CreateDefault(const CDataValue& value) const{    return new Int8(dynamic_cast<const CIntDataValue&>(value).GetValue());}string CBigIntDataType::GetDefaultString(const CDataValue& value) const{    return NStr::IntToString(dynamic_cast<const CIntDataValue&>(value).GetValue());}CTypeRef CBigIntDataType::GetTypeInfo(void){    if ( HaveModuleName() )        return UpdateModuleName(CStdTypeInfo<Int8>::CreateTypeInfo());    return &CStdTypeInfo<Int8>::GetTypeInfo;}const char* CBigIntDataType::GetDefaultCType(void) const{    return "Int8";}bool CAnyContentDataType::CheckValue(const CDataValue& value) const{    return true;}void CAnyContentDataType::PrintASN(CNcbiOstream& out, int indent) const{    out << GetASNKeyword();}void CAnyContentDataType::PrintDTDElement(CNcbiOstream& out) const{    out <<        "<!ELEMENT "<<XmlTagName()<<" "<<GetXMLContents()<<">";}void CAnyContentDataType::PrintXMLSchemaElement(CNcbiOstream& out) const{    out <<         "<xs:element name=\"" << XmlTagName() << "\">\n"        "  <xs:complexType>\n"        "    <xs:sequence>\n"        "      <xs:any processContext=\"lax\"/>\n"        "    </xs:sequence>\n"        "  </xs:complexType>\n"        "</xs:element>\n";}TObjectPtr CAnyContentDataType::CreateDefault(const CDataValue& value) const{    return new (string*)(new string(dynamic_cast<const CStringDataValue&>(value).GetValue()));}AutoPtr<CTypeStrings> CAnyContentDataType::GetFullCType(void) const{// TO BE CHANGED !!!    string type = GetAndVerifyVar("_type");    if ( type.empty() )        type = GetDefaultCType();    return AutoPtr<CTypeStrings>(new CAnyContentTypeStrings(type));}const char* CAnyContentDataType::GetDefaultCType(void) const{    return "ncbi::CAnyContentObject";}const char* CAnyContentDataType::GetASNKeyword(void) const{// not exactly, but...// (ASN.1 does not seem to suppport this type of data)    return "VisibleString";}const char* CAnyContentDataType::GetXMLContents(void) const{    return "ANY";}void CAnyContentDataType::GetXMLSchemaContents(string& type, string& contents) const{    type.erase();    contents.erase();}END_NCBI_SCOPE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -