feat_config_list.cpp

来自「ncbi源码」· C++ 代码 · 共 378 行 · 第 1/2 页

CPP
378
字号
        if (m_Subtype == CSeqFeatData::eSubtype_any) {            return rhs.m_Subtype != CSeqFeatData::eSubtype_any;        }        if ( rhs.m_Subtype == CSeqFeatData::eSubtype_any) {            return false;        }        return m_Subtype < rhs.m_Subtype;    }     return m_Type < rhs.m_Type;}/*****    CFeatConfigList definitions.*****/CFeatConfigList::CFeatConfigList(){    x_Init();}bool CFeatConfigList::TypeValid(int type, int subtype) const{    const_iterator ci_it = m_FeatTypes.find(CFeatConfigItem(type, subtype, "", ""));    if (ci_it == m_FeatTypes.end()) {        return false;    }    return true;}bool CFeatConfigList::GetItem(int type, int subtype, CFeatConfigItem& config_item) const{    const_iterator ci_it = m_FeatTypes.find(CFeatConfigItem(type, subtype, "", ""));    if (ci_it == m_FeatTypes.end()) {        return false;    }    config_item = *ci_it;    return true;}bool CFeatConfigList::GetItemByDescription(const string& desc, CFeatConfigItem& config_item) const{    const_iterator ci_it = begin();    for (; ci_it != end(); ++ci_it) {        if (ci_it->GetDescription() == desc) {            config_item = *ci_it;            return true;        }    }    return false;}bool CFeatConfigList::GetTypeSubType(const string& desc, int& type, int& subtype) const{    CFeatConfigItem config_item;    if ( GetItemByDescription(desc, config_item) ) {        type = config_item.GetType();        subtype = config_item.GetSubtype();        return true;    }    return false;}bool CFeatConfigList::GetItemByKey(const string& key, CFeatConfigItem& config_item) const{    const_iterator ci_it = begin();    for (; ci_it != end(); ++ci_it) {        if (ci_it->GetStoragekey() == key) {            config_item = *ci_it;            return true;        }    }    return false;}string CFeatConfigList::GetDescription(int type, int subtype) const{    CFeatConfigItem config_item;    if (!GetItem(type, subtype, config_item)) {        return kEmptyStr;    }    return config_item.GetDescription();}string CFeatConfigList::GetStoragekey(int type, int subtype) const{    CFeatConfigItem config_item;    if (!GetItem(type, subtype, config_item)) {        return kEmptyStr;    }    return config_item.GetStoragekey();}size_t CFeatConfigList::size() const{    return m_FeatTypes.size();}CFeatConfigList::const_iterator CFeatConfigList::begin() const{    return m_FeatTypes.begin();}CFeatConfigList::const_iterator CFeatConfigList::end() const{    return m_FeatTypes.end();}void CFeatConfigList::x_Init(){    size_t  config_item_size = sizeof(config_item_init)/sizeof(CFeatConfigItem);    for (size_t i = 0; i < config_item_size; ++i ) {        bool config_items_init_no_dups =            m_FeatTypes.insert(config_item_init[i]).second;        _ASSERT(config_items_init_no_dups);    }}/// return a list of all the feature descriptions for a menu or other control.void CFeatConfigList::GetDescriptions(vector<string> &descs, bool hierarchical) const{    descs.clear();        ITERATE (TFeatTypeContainer, iter, m_FeatTypes) {        string  this_desc = iter->GetDescription();                if (hierarchical) {            string parent_desc;            if (iter->GetSubtype() != CSeqFeatData::eSubtype_any) {                parent_desc = GetDescription(iter->GetType(), CSeqFeatData::eSubtype_any);            } else if (iter->GetType() != CSeqFeatData::e_not_set) {                parent_desc = this_desc;            }            if ( ! parent_desc.empty()) {                this_desc = parent_desc + "/" + this_desc;            }        }                descs.push_back(this_desc);    }}END_NCBI_SCOPE/* * =========================================================================== * $Log: feat_config_list.cpp,v $ * Revision 1000.1  2004/06/01 20:43:13  gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6 * * Revision 1.6  2004/05/21 22:27:39  gorelenk * Added PCH ncbi_pch.hpp * * Revision 1.5  2004/05/20 12:27:41  dicuccio * Removed unnecessary doxygen module directives - they're in the headers * * Revision 1.4  2004/01/15 14:48:09  rsmith * add GetTypeSubType method from CFeatConfig (deprecated). * * Revision 1.3  2004/01/14 20:30:43  rsmith * Add method GetDescriptions to easily get all feature descriptions. * Change the uility function ChangeMasterFeatDescription to search and replace * all "master" strings. * * Revision 1.2  2003/12/30 15:45:10  dicuccio * Fixed compilation errors on Linux * * Revision 1.1  2003/12/29 14:34:38  rsmith * split out from feat_config.cpp * * * =========================================================================== */

⌨️ 快捷键说明

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