data_loader.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:6k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: data_loader.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:23:07  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: data_loader.cpp,v 1000.1 2004/06/01 19:23:07 gouriano Exp $
  10. * ===========================================================================
  11. *
  12. *                            PUBLIC DOMAIN NOTICE
  13. *               National Center for Biotechnology Information
  14. *
  15. *  This software/database is a "United States Government Work" under the
  16. *  terms of the United States Copyright Act.  It was written as part of
  17. *  the author's official duties as a United States Government employee and
  18. *  thus cannot be copyrighted.  This software/database is freely available
  19. *  to the public for use. The National Library of Medicine and the U.S.
  20. *  Government have not placed any restriction on its use or reproduction.
  21. *
  22. *  Although all reasonable efforts have been taken to ensure the accuracy
  23. *  and reliability of the software and data, the NLM and the U.S.
  24. *  Government do not and cannot warrant the performance or results that
  25. *  may be obtained by using this software or data. The NLM and the U.S.
  26. *  Government disclaim all warranties, express or implied, including
  27. *  warranties of performance, merchantability or fitness for any particular
  28. *  purpose.
  29. *
  30. *  Please cite the author in any work or product based on this material.
  31. *
  32. * ===========================================================================
  33. *
  34. * Author: Aleksey Grichenko, Eugene Vasilchenko
  35. *
  36. * File Description:
  37. *   Data loader base class for object manager
  38. *
  39. */
  40. #include <ncbi_pch.hpp>
  41. #include <objmgr/data_loader.hpp>
  42. #include <objmgr/seq_id_mapper.hpp>
  43. #include <objmgr/annot_selector.hpp>
  44. #include <objmgr/impl/tse_info.hpp>
  45. #include <objects/seq/Seq_annot.hpp>
  46. BEGIN_NCBI_SCOPE
  47. BEGIN_SCOPE(objects)
  48. CDataLoader::CDataLoader(void)
  49. {
  50.     m_Name = NStr::PtrToString(this);
  51.     return;
  52. }
  53. CDataLoader::CDataLoader(const string& loader_name)
  54.     : m_Name(loader_name)
  55. {
  56.     if (loader_name.empty())
  57.     {
  58.         m_Name = NStr::PtrToString(this);
  59.     }
  60. }
  61. CDataLoader::~CDataLoader(void)
  62. {
  63.     return;
  64. }
  65. void CDataLoader::SetTargetDataSource(CDataSource& data_source)
  66. {
  67.     m_DataSource = &data_source;
  68. }
  69. CDataSource* CDataLoader::GetDataSource(void)
  70. {
  71.     return m_DataSource;
  72. }
  73. void CDataLoader::SetName(const string& loader_name)
  74. {
  75.     m_Name = loader_name;
  76. }
  77. string CDataLoader::GetName(void) const
  78. {
  79.     return m_Name;
  80. }
  81. void CDataLoader::DropTSE(const CTSE_Info& /*tse_info*/)
  82. {
  83. }
  84. void CDataLoader::GC(void)
  85. {
  86. }
  87. void CDataLoader::GetChunk(CTSE_Chunk_Info& /*chunk_info*/)
  88. {
  89. }
  90. CConstRef<CTSE_Info> CDataLoader::ResolveConflict(const CSeq_id_Handle&,
  91.                                                   const TTSE_LockSet&)
  92. {
  93.     return CConstRef<CTSE_Info>();
  94. }
  95. void CDataLoader::DebugDump(CDebugDumpContext, unsigned int) const
  96. {
  97.     return;
  98. }
  99. END_SCOPE(objects)
  100. END_NCBI_SCOPE
  101. /*
  102. * ---------------------------------------------------------------------------
  103. * $Log: data_loader.cpp,v $
  104. * Revision 1000.1  2004/06/01 19:23:07  gouriano
  105. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
  106. *
  107. * Revision 1.13  2004/05/21 21:42:12  gorelenk
  108. * Added PCH ncbi_pch.hpp
  109. *
  110. * Revision 1.12  2003/10/07 13:43:23  vasilche
  111. * Added proper handling of named Seq-annots.
  112. * Added feature search from named Seq-annots.
  113. * Added configurable adaptive annotation search (default: gene, cds, mrna).
  114. * Fixed selection of blobs for loading from GenBank.
  115. * Added debug checks to CSeq_id_Mapper for easier finding lost CSeq_id_Handles.
  116. * Fixed leaked split chunks annotation stubs.
  117. * Moved some classes definitions in separate *.cpp files.
  118. *
  119. * Revision 1.11  2003/09/30 16:22:02  vasilche
  120. * Updated internal object manager classes to be able to load ID2 data.
  121. * SNP blobs are loaded as ID2 split blobs - readers convert them automatically.
  122. * Scope caches results of requests for data to data loaders.
  123. * Optimized CSeq_id_Handle for gis.
  124. * Optimized bioseq lookup in scope.
  125. * Reduced object allocations in annotation iterators.
  126. * CScope is allowed to be destroyed before other objects using this scope are
  127. * deleted (feature iterators, bioseq handles etc).
  128. * Optimized lookup for matching Seq-ids in CSeq_id_Mapper.
  129. * Added 'adaptive' option to objmgr_demo application.
  130. *
  131. * Revision 1.10  2003/06/02 16:06:37  dicuccio
  132. * Rearranged src/objects/ subtree.  This includes the following shifts:
  133. *     - src/objects/asn2asn --> arc/app/asn2asn
  134. *     - src/objects/testmedline --> src/objects/ncbimime/test
  135. *     - src/objects/objmgr --> src/objmgr
  136. *     - src/objects/util --> src/objmgr/util
  137. *     - src/objects/alnmgr --> src/objtools/alnmgr
  138. *     - src/objects/flat --> src/objtools/flat
  139. *     - src/objects/validator --> src/objtools/validator
  140. *     - src/objects/cddalignview --> src/objtools/cddalignview
  141. * In addition, libseq now includes six of the objects/seq... libs, and libmmdb
  142. * replaces the three libmmdb? libs.
  143. *
  144. * Revision 1.9  2003/05/20 15:44:37  vasilche
  145. * Fixed interaction of CDataSource and CDataLoader in multithreaded app.
  146. * Fixed some warnings on WorkShop.
  147. * Added workaround for memory leak on WorkShop.
  148. *
  149. * Revision 1.8  2003/05/06 18:54:09  grichenk
  150. * Moved TSE filtering from CDataSource to CScope, changed
  151. * some filtering rules (e.g. priority is now more important
  152. * than scope history). Added more caches to CScope.
  153. *
  154. * Revision 1.7  2003/04/29 19:51:13  vasilche
  155. * Fixed interaction of Data Loader garbage collector and TSE locking mechanism.
  156. * Made some typedefs more consistent.
  157. *
  158. * Revision 1.6  2003/04/24 16:12:38  vasilche
  159. * Object manager internal structures are splitted more straightforward.
  160. * Removed excessive header dependencies.
  161. *
  162. * Revision 1.5  2002/12/26 20:55:17  dicuccio
  163. * Moved seq_id_mapper.hpp, tse_info.hpp, and bioseq_info.hpp -> include/ tree
  164. *
  165. * Revision 1.4  2002/07/08 20:51:01  grichenk
  166. * Moved log to the end of file
  167. * Replaced static mutex (in CScope, CDataSource) with the mutex
  168. * pool. Redesigned CDataSource data locking.
  169. *
  170. * Revision 1.3  2002/05/06 03:28:46  vakatov
  171. * OM/OM1 renaming
  172. *
  173. * Revision 1.2  2002/03/18 17:26:35  grichenk
  174. * +CDataLoader::x_GetSeq_id(), x_GetSeq_id_Key(), x_GetSeq_id_Handle()
  175. *
  176. * Revision 1.1  2002/01/11 19:06:17  gouriano
  177. * restructured objmgr
  178. *
  179. *
  180. * ===========================================================================
  181. */