scope_impl.cpp

来自「ncbi源码」· C++ 代码 · 共 1,802 行 · 第 1/4 页

CPP
1,802
字号
        if (it->GetDataLoader() &&  kind == CScope::eManualTSEs) {            // Skip data sources with loaders            continue;        }        CFastMutexGuard guard(it->GetMutex());        const TTSE_LockSet& tse_cache = it->GetTSESet();        ITERATE(TTSE_LockSet, tse_it, tse_cache) {            tses.push_back(CSeq_entry_Handle(*m_HeapScope, **tse_it));        }    }}CDataSource* CScope_Impl::GetFirstLoaderSource(void){    TReadLockGuard rguard(m_Scope_Conf_RWLock);    for (CPriority_I it(m_setDataSrc); it; ++it) {        if ( it->GetDataLoader() ) {            return &it->GetDataSource();        }    }    return 0;}void CScope_Impl::DebugDump(CDebugDumpContext ddc, unsigned int depth) const{    ddc.SetFrame("CScope_Impl");    CObject::DebugDump( ddc, depth);    ddc.Log("m_pObjMgr", m_pObjMgr,0);    if (depth == 0) {    } else {        DebugDumpValue(ddc,"m_setDataSrc.type", "set<CDataSource*>");    }}END_SCOPE(objects)END_NCBI_SCOPE/** ---------------------------------------------------------------------------* $Log: scope_impl.cpp,v $* Revision 1000.3  2004/06/01 19:23:39  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.15** Revision 1.15  2004/05/21 21:42:12  gorelenk* Added PCH ncbi_pch.hpp** Revision 1.14  2004/04/16 13:31:47  grichenk* Added data pre-fetching functions.** Revision 1.13  2004/04/14 19:12:12  vasilche* Added storing TSE in history when returning CSeq_entry or CSeq_annot handles.* Added test for main id before matching handles in GetBioseqHandleFromTSE().** Revision 1.12  2004/04/13 15:59:35  grichenk* Added CScope::GetBioseqHandle() with id resolving flag.** Revision 1.11  2004/04/12 19:35:59  grichenk* Added locks in GetAllTSEs()** Revision 1.10  2004/04/12 18:40:24  grichenk* Added GetAllTSEs()** Revision 1.9  2004/03/31 19:54:08  vasilche* Fixed removal of bioseqs and bioseq-sets.** Revision 1.8  2004/03/31 19:23:13  vasilche* Fixed scope in CBioseq_Handle::GetEditHandle().** Revision 1.7  2004/03/31 17:08:07  vasilche* Implemented ConvertSeqToSet and ConvertSetToSeq.** Revision 1.6  2004/03/29 20:51:19  vasilche* Fixed ambiguity on MSVC.** Revision 1.5  2004/03/29 20:13:06  vasilche* Implemented whole set of methods to modify Seq-entry object tree.* Added CBioseq_Handle::GetExactComplexityLevel().** Revision 1.4  2004/03/25 19:27:44  vasilche* Implemented MoveTo and CopyTo methods of handles.** Revision 1.3  2004/03/24 18:30:30  vasilche* Fixed edit API.* Every *_Info object has its own shallow copy of original object.** Revision 1.2  2004/03/16 18:09:10  vasilche* Use GetPointer() to avoid ambiguity** Revision 1.1  2004/03/16 15:47:28  vasilche* Added CBioseq_set_Handle and set of EditHandles** Revision 1.101  2004/02/19 17:23:01  vasilche* Changed order of deletion of heap scope and scope impl objects.* Reduce number of calls to x_ResetHistory().** Revision 1.100  2004/02/10 21:15:16  grichenk* Added reverse ID matching.** Revision 1.99  2004/02/09 14:42:46  vasilche* Temporary fix in GetSynonyms() to get accession without version.** Revision 1.98  2004/02/02 14:46:43  vasilche* Several performance fixed - do not iterate whole tse set in CDataSource.** Revision 1.97  2004/01/29 20:33:28  vasilche* Do not resolve any Seq-ids in CScope::GetSynonyms() -* assume all not resolved Seq-id as synonym.* Seq-id conflict messages made clearer.** Revision 1.96  2004/01/28 20:50:49  vasilche* Fixed NULL pointer exception in GetSynonyms() when matching Seq-id w/o version.** Revision 1.95  2004/01/07 20:42:01  grichenk* Fixed matching of accession to accession.version** Revision 1.94  2003/12/18 16:38:07  grichenk* Added CScope::RemoveEntry()** Revision 1.93  2003/12/12 16:59:51  grichenk* Fixed conflicts resolving (ask data source).** Revision 1.92  2003/12/03 20:55:12  grichenk* Check value returned by x_GetBioseq_Info()** Revision 1.91  2003/11/21 20:33:03  grichenk* Added GetBioseqHandleFromTSE(CSeq_id, CSeq_entry)** Revision 1.90  2003/11/19 22:18:03  grichenk* All exceptions are now CException-derived. Catch "exception" rather* than "runtime_error".** Revision 1.89  2003/11/12 15:49:39  vasilche* Added loading annotations on non gi Seq-id.** Revision 1.88  2003/10/23 13:47:27  vasilche* Check CSeq_id_Handle for null in CScope::GetBioseqHandle().** Revision 1.87  2003/10/22 14:08:15  vasilche* Detach all CBbioseq_Handle objects from scope in CScope::ResetHistory().** Revision 1.86  2003/10/22 13:54:36  vasilche* All CScope::GetBioseqHandle() methods return 'null' CBioseq_Handle object* instead of throwing an exception.** Revision 1.85  2003/10/20 18:23:54  vasilche* Make CScope::GetSynonyms() to skip conflicting ids.** Revision 1.84  2003/10/09 13:58:21  vasilche* Fixed conflict when the same datasource appears twice with equal priorities.** Revision 1.83  2003/10/07 13:43:23  vasilche* Added proper handling of named Seq-annots.* Added feature search from named Seq-annots.* Added configurable adaptive annotation search (default: gene, cds, mrna).* Fixed selection of blobs for loading from GenBank.* Added debug checks to CSeq_id_Mapper for easier finding lost CSeq_id_Handles.* Fixed leaked split chunks annotation stubs.* Moved some classes definitions in separate *.cpp files.** Revision 1.82  2003/09/30 16:22:03  vasilche* Updated internal object manager classes to be able to load ID2 data.* SNP blobs are loaded as ID2 split blobs - readers convert them automatically.* Scope caches results of requests for data to data loaders.* Optimized CSeq_id_Handle for gis.* Optimized bioseq lookup in scope.* Reduced object allocations in annotation iterators.* CScope is allowed to be destroyed before other objects using this scope are* deleted (feature iterators, bioseq handles etc).* Optimized lookup for matching Seq-ids in CSeq_id_Mapper.* Added 'adaptive' option to objmgr_demo application.** Revision 1.81  2003/09/05 20:50:26  grichenk* +AddBioseq(CBioseq&)** Revision 1.80  2003/09/05 17:29:40  grichenk* Structurized Object Manager exceptions** Revision 1.79  2003/09/03 20:00:02  grichenk* Added sequence filtering by level (mains/parts/all)** Revision 1.78  2003/08/04 17:03:01  grichenk* Added constructors to iterate all annotations from a* seq-entry or seq-annot.** Revision 1.77  2003/07/25 15:25:25  grichenk* Added CSeq_annot_CI class** Revision 1.76  2003/07/17 20:07:56  vasilche* Reduced memory usage by feature indexes.* SNP data is loaded separately through PUBSEQ_OS.* String compression for SNP data.** Revision 1.75  2003/07/14 21:13:59  grichenk* Added seq-loc dump in GetBioseqHandle(CSeqLoc)** Revision 1.74  2003/06/30 18:42:10  vasilche* CPriority_I made to use less memory allocations/deallocations.** Revision 1.73  2003/06/24 14:25:18  vasilche* Removed obsolete CTSE_Guard class.* Used separate mutexes for bioseq and annot maps.** Revision 1.72  2003/06/19 18:23:46  vasilche* Added several CXxx_ScopeInfo classes for CScope related information.* CBioseq_Handle now uses reference to CBioseq_ScopeInfo.* Some fine tuning of locking in CScope.** Revision 1.69  2003/05/27 19:44:06  grichenk* Added CSeqVector_CI class** Revision 1.68  2003/05/20 15:44:37  vasilche* Fixed interaction of CDataSource and CDataLoader in multithreaded app.* Fixed some warnings on WorkShop.* Added workaround for memory leak on WorkShop.** Revision 1.67  2003/05/14 18:39:28  grichenk* Simplified TSE caching and filtering in CScope, removed* some obsolete members and functions.** Revision 1.66  2003/05/13 18:33:01  vasilche* Fixed CScope::GetTSESetWithAnnots() conflict resolution.** Revision 1.65  2003/05/12 19:18:29  vasilche* Fixed locking of object manager classes in multi-threaded application.** Revision 1.64  2003/05/09 20:28:03  grichenk* Changed warnings to info** Revision 1.63  2003/05/06 18:54:09  grichenk* Moved TSE filtering from CDataSource to CScope, changed* some filtering rules (e.g. priority is now more important* than scope history). Added more caches to CScope.** Revision 1.62  2003/04/29 19:51:13  vasilche* Fixed interaction of Data Loader garbage collector and TSE locking mechanism.* Made some typedefs more consistent.** Revision 1.61  2003/04/24 16:12:38  vasilche* Object manager internal structures are splitted more straightforward.* Removed excessive header dependencies.** Revision 1.60  2003/04/15 14:21:52  vasilche* Removed unnecessary assignment.** Revision 1.59  2003/04/14 21:32:18  grichenk* Avoid passing CScope as an argument to CDataSource methods** Revision 1.58  2003/04/09 16:04:32  grichenk* SDataSourceRec replaced with CPriorityNode* Added CScope::AddScope(scope, priority) to allow scope nesting** Revision 1.57  2003/04/03 14:18:09  vasilche* Added public GetSynonyms() method.** Revision 1.56  2003/03/26 21:00:19  grichenk* Added seq-id -> tse with annotation cache to CScope** Revision 1.55  2003/03/24 21:26:45  grichenk* Added support for CTSE_CI** Revision 1.54  2003/03/21 19:22:51  grichenk* Redesigned TSE locking, replaced CTSE_Lock with CRef<CTSE_Info>.** Revision 1.53  2003/03/19 21:55:50  grichenk* Avoid re-mapping TSEs in x_AddToHistory() if already indexed** Revision 1.52  2003/03/18 14:52:59  grichenk* Removed obsolete methods, replaced seq-id with seq-id handle* where possible. Added argument to limit annotations update to* a single seq-entry.** Revision 1.51  2003/03/12 20:09:34  grichenk* Redistributed members between CBioseq_Handle, CBioseq_Info and CTSE_Info** Revision 1.50  2003/03/11 15:51:06  kuznets* iterate -> ITERATE** Revision 1.49  2003/03/11 14:15:52  grichenk* +Data-source priority** Revision 1.48  2003/03/10 16:55:17  vasilche* Cleaned SAnnotSelector structure.* Added shortcut when features are limited to one TSE.** Revision 1.47  2003/03/05 20:55:29  vasilche* Added cache cleaning in CScope::ResetHistory().** Revision 1.46  2003/03/03 20:32:47  vasilche* Removed obsolete method GetSynonyms().** Revision 1.45  2003/02/28 21:54:18  grichenk* +CSynonymsSet::empty(), removed _ASSERT() in CScope::GetSynonyms()** Revision 1.44  2003/02/28 20:02:37  grichenk* Added synonyms cache and x_GetSynonyms()** Revision 1.43  2003/02/27 14:35:31  vasilche* Splitted PopulateTSESet() by logically independent parts.** Revision 1.42  2003/02/24 18:57:22  vasilche* Make feature gathering in one linear pass using CSeqMap iterator.* Do not use feture index by sub locations.* Sort features at the end of gathering in one vector.* Extracted some internal structures and classes in separate header.* Delay creation of mapped features.** Revision 1.41  2003/02/05 17:59:17  dicuccio* Moved formerly private headers into include/objects/objmgr/impl** Revision 1.40  2003/01/29 22:03:46  grichenk* Use single static CSeq_id_Mapper instead of per-OM model.** Revision 1.39  2003/01/22 20:11:54  vasilche* Merged functionality of CSeqMapResolved_CI to CSeqMap_CI.* CSeqMap_CI now supports resolution and iteration over sequence range.* Added several caches to CScope.* Optimized CSeqVector().* Added serveral variants of CBioseqHandle::GetSeqVector().* Tried to optimize annotations iterator (not much success).* Rewritten CHandleRange and CHandleRangeMap classes to avoid sorting of list.** Revision 1.38  2002/12/26 20:55:18  dicuccio* Moved seq_id_mapper.hpp, tse_info.hpp, and bioseq_info.hpp -> include/ tree** Revision 1.37  2002/12/26 16:39:24  vasilche* Object manager class CSeqMap rewritten.** Revision 1.36  2002/11/08 22:15:51  grichenk* Added methods for removing/replacing annotations** Revision 1.35  2002/11/08 19:43:35  grichenk* CConstRef<> constructor made explicit** Revision 1.34  2002/11/04 21:29:12  grichenk* Fixed usage of const CRef<> and CRef<> constructor** Revision 1.33  2002/11/01 05:34:32  kans* added GetBioseqHandle taking CBioseq parameter** Revision 1.32  2002/10/31 22:25:42  kans* added GetBioseqHandle taking CSeq_loc parameter** Revision 1.31  2002/10/18 19:12:40  grichenk* Removed mutex pools, converted most static mutexes to non-static.* Protected CSeqMap::x_Resolve() with mutex. Modified code to prevent* dead-locks.** Revision 1.30  2002/10/16 20:44:29  ucko* *** empty log message ***** Revision 1.29  2002/10/02 17:58:23  grichenk* Added sequence type filter to CBioseq_CI** Revision 1.28  2002/09/30 20:01:19  grichenk* Added methods to support CBioseq_CI** Revision 1.27  2002/08/09 14:59:00  ucko* Restrict template <> to MIPSpro for now, as it also leads to link* errors with Compaq's compiler.  (Sigh.)** Revision 1.26  2002/08/08 19:51:24  ucko* Omit EMPTY_TEMPLATE for GCC and KCC, as it evidently leads to link errors(!)** Revision 1.25  2002/08/08 14:28:00  ucko* Add EMPTY_TEMPLATE to explicit instantiations.** Revision 1.24  2002/08/07 18:21:57  ucko* Explicitly instantiate CMutexPool_Base<CScope>::sm_Pool** Revision 1.23  2002/07/08 20:51:02  grichenk* Moved log to the end of file* Replaced static mutex (in CScope, CDataSource) with the mutex* pool. Redesigned CDataSource data locking.** Revision 1.22  2002/06/04 17:18:33  kimelman* memory cleanup :  new/delete/Cref rearrangements** Revision 1.21  2002/05/28 18:00:43  gouriano* DebugDump added** Revision 1.20  2002/05/14 20:06:26  grichenk* Improved CTSE_Info locking by CDataSource and CDataLoader** Revision 1.19  2002/05/06 03:28:47  vakatov* OM/OM1 renaming** Revision 1.18  2002/04/22 20:04:39  grichenk* Fixed TSE dropping, removed commented code** Revision 1.17  2002/04/17 21:09:40  grichenk* Fixed annotations loading** Revision 1.16  2002/03/28 14:02:31  grichenk* Added scope history checks to CDataSource::x_FindBestTSE()** Revision 1.15  2002/03/27 18:45:44  gouriano* three functions made public** Revision 1.14  2002/03/20 21:20:39  grichenk* +CScope::ResetHistory()** Revision 1.13  2002/02/28 20:53:32  grichenk* Implemented attaching segmented sequence data. Fixed minor bugs.** Revision 1.12  2002/02/25 21:05:29  grichenk* Removed seq-data references caching. Increased MT-safety. Fixed typos.** Revision 1.11  2002/02/21 19:27:06  grichenk* Rearranged includes. Added scope history. Added searching for the* best seq-id match in data sources and scopes. Updated tests.** Revision 1.10  2002/02/07 21:27:35  grichenk* Redesigned CDataSource indexing: seq-id handle -> TSE -> seq/annot** Revision 1.9  2002/02/06 21:46:11  gouriano* *** empty log message ***** Revision 1.8  2002/02/05 21:46:28  gouriano* added FindSeqid function, minor tuneup in CSeq_id_mapper** Revision 1.7  2002/01/29 17:45:34  grichenk* Removed debug output** Revision 1.6  2002/01/28 19:44:49  gouriano* changed the interface of BioseqHandle: two functions moved from Scope** Revision 1.5  2002/01/23 21:59:31  grichenk* Redesigned seq-id handles and mapper** Revision 1.4  2002/01/18 17:06:29  gouriano* renamed CScope::GetSequence to CScope::GetSeqVector** Revision 1.3  2002/01/18 15:54:14  gouriano* changed DropTopLevelSeqEntry()** Revision 1.2  2002/01/16 16:25:57  gouriano* restructured objmgr** Revision 1.1  2002/01/11 19:06:22  gouriano* restructured objmgr*** ===========================================================================*/

⌨️ 快捷键说明

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