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

📄 serialobject.cpp

📁 ncbi源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        index += classtype->GetItems().FirstIndex();        if ( classtype &&             index >= classtype->GetItems().FirstIndex() &&             index <= classtype->GetItems().LastIndex() ) {            s << classtype->GetItems().GetItemInfo(index)->GetId().GetName();        } else {            s << '[' << index << ']';        }        NCBI_THROW(CUnassignedMember,eGet,CNcbiOstrstreamToString(s));    }}bool CSerialObject::HasNamespaceName(void) const{    return GetThisTypeInfo()->HasNamespaceName();}const string& CSerialObject::GetNamespaceName(void) const{    return GetThisTypeInfo()->GetNamespaceName();}void CSerialObject::SetNamespaceName(const string& ns_name){    GetThisTypeInfo()->SetNamespaceName(ns_name);}bool CSerialObject::HasNamespacePrefix(void) const{    return GetThisTypeInfo()->HasNamespacePrefix();}const string& CSerialObject::GetNamespacePrefix(void) const{    return GetThisTypeInfo()->GetNamespacePrefix();}void CSerialObject::SetNamespacePrefix(const string& ns_prefix){    GetThisTypeInfo()->SetNamespacePrefix(ns_prefix);}CSerialAttribInfoItem::CSerialAttribInfoItem(    const string& name, const string& ns_name, const string& value)    : m_Name(name), m_NsName(ns_name), m_Value(value){}CSerialAttribInfoItem::CSerialAttribInfoItem(const CSerialAttribInfoItem& other)    : m_Name(other.m_Name), m_NsName(other.m_NsName), m_Value(other.m_Value){}CSerialAttribInfoItem::~CSerialAttribInfoItem(void){}const string& CSerialAttribInfoItem::GetName(void) const{    return m_Name;}const string& CSerialAttribInfoItem::GetNamespaceName(void) const{    return m_NsName;}const string& CSerialAttribInfoItem::GetValue(void) const{    return m_Value;}CAnyContentObject::CAnyContentObject(void){}CAnyContentObject::CAnyContentObject(const CAnyContentObject& other){    x_Copy(other);}CAnyContentObject::~CAnyContentObject(void){}const CTypeInfo* CAnyContentObject::GetTypeInfo(void){    return CStdTypeInfo<ncbi::CAnyContentObject>::GetTypeInfo();}void CAnyContentObject::Reset(void){    m_Name.erase();    m_Value.erase();    m_NsName.erase();    m_NsPrefix.erase();    m_Attlist.clear();}void CAnyContentObject::x_Copy(const CAnyContentObject& other){    m_Name = other.m_Name;    m_Value= other.m_Value;    m_NsName= other.m_NsName;    m_NsPrefix= other.m_NsPrefix;    m_Attlist.clear();    vector<CSerialAttribInfoItem>::const_iterator it;    for (it = other.m_Attlist.begin(); it != other.m_Attlist.end(); ++it) {        m_Attlist.push_back( *it);    }}CAnyContentObject& CAnyContentObject::operator= (const CAnyContentObject& other){    x_Copy(other);    return *this;}bool CAnyContentObject::operator== (const CAnyContentObject& other) const{    return m_Name == other.GetName() &&           m_Value == other.GetValue() &&           m_NsName == other.m_NsName;}void CAnyContentObject::SetName(const string& name){    m_Name = name;}const string& CAnyContentObject::GetName(void) const{    return m_Name;}void CAnyContentObject::SetValue(const string& value){    x_Decode(value);}const string& CAnyContentObject::GetValue(void) const{    return m_Value;}void CAnyContentObject::SetNamespaceName(const string& ns_name){    m_NsName = ns_name;}const string& CAnyContentObject::GetNamespaceName(void) const{    return m_NsName;}void CAnyContentObject::SetNamespacePrefix(const string& ns_prefix){    m_NsPrefix = ns_prefix;}const string& CAnyContentObject::GetNamespacePrefix(void) const{    return m_NsPrefix;}void CAnyContentObject::x_Decode(const string& value){    m_Value = value;}void CAnyContentObject::AddAttribute(    const string& name, const string& ns_name, const string& value){// TODO: check if an attrib with this name+ns_name already exists    m_Attlist.push_back( CSerialAttribInfoItem( name,ns_name,value));}const vector<CSerialAttribInfoItem>&CAnyContentObject::GetAttributes(void) const{    return m_Attlist;}///////////////////////////////////////////////////////////////////////////////  I/O stream manipulators and helpers for serializable objects#define  eFmt_AsnText     (1l <<  0)#define  eFmt_AsnBinary   (1l <<  1)#define  eFmt_Xml         (1l <<  2)#define  eFmt_All         (eFmt_AsnText | eFmt_AsnBinary | eFmt_Xml)#define  eVerify_No       (1l <<  8)#define  eVerify_Yes      (1l <<  9)#define  eVerify_DefValue (1l << 10)#define  eVerify_All      (eVerify_No | eVerify_Yes | eVerify_DefValue)staticlong& s_SerFlags(CNcbiIos& io){    static int s_SerIndex;    {{  // Make sure to get a unique IOS index        static bool s_HaveIndex = false;        if ( !s_HaveIndex ) {            s_SerIndex = CNcbiIos::xalloc();            s_HaveIndex = true;        }    }}    return io.iword(s_SerIndex);}staticESerialDataFormat s_SerFormat(CNcbiIos& io){    switch (s_SerFlags(io) & eFmt_All) {    case eFmt_AsnText:     return eSerial_AsnText;    case eFmt_AsnBinary:   return eSerial_AsnBinary;    case eFmt_Xml:         return eSerial_Xml;    default:               return eSerial_None;    }}staticESerialVerifyData s_SerVerify(CNcbiIos& io){    switch (s_SerFlags(io) & eVerify_All) {    case eVerify_No:       return eSerialVerifyData_No;    case eVerify_Yes:      return eSerialVerifyData_Yes;    case eVerify_DefValue: return eSerialVerifyData_DefValue;    default:               return eSerialVerifyData_Default;    }}// FormattingCNcbiIos& MSerial_AsnText(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eFmt_All) | eFmt_AsnText;    return io;}CNcbiIos& MSerial_AsnBinary(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eFmt_All) | eFmt_AsnBinary;    return io;}CNcbiIos& MSerial_Xml(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eFmt_All) | eFmt_Xml;    return io;}// Class member assignment verificationCNcbiIos& MSerial_VerifyDefault(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eVerify_All);    return io;}CNcbiIos& MSerial_VerifyNo(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eVerify_All) | eVerify_No;    return io;}CNcbiIos& MSerial_VerifyYes(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eVerify_All) | eVerify_Yes;    return io;}CNcbiIos& MSerial_VerifyDefValue(CNcbiIos& io){    s_SerFlags(io) = (s_SerFlags(io) & ~eVerify_All) | eVerify_DefValue;    return io;}// Input/outputCNcbiOstream& operator<< (CNcbiOstream& os, const CSerialObject& obj){    auto_ptr<CObjectOStream> ostr( CObjectOStream::Open(s_SerFormat(os), os) );    ostr->SetVerifyData(s_SerVerify(os));    ostr->Write(&obj,obj.GetThisTypeInfo());    return os;}CNcbiIstream& operator>> (CNcbiIstream& is, CSerialObject& obj){    auto_ptr<CObjectIStream> istr( CObjectIStream::Open(s_SerFormat(is), is) );    istr->SetVerifyData(s_SerVerify(is));    istr->Read(&obj,obj.GetThisTypeInfo());    return is;}END_NCBI_SCOPE

⌨️ 快捷键说明

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