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 + -
显示快捷键?