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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: annot_object_index.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 19:22:38  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.3
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: annot_object_index.cpp,v 1000.2 2004/06/01 19:22:38 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: Eugene Vasilchenko
  35. *
  36. * File Description:
  37. *   AnnotObject indexes structures
  38. *
  39. */
  40. #include <ncbi_pch.hpp>
  41. #include <objmgr/impl/annot_object_index.hpp>
  42. #include <objmgr/impl/annot_object.hpp>
  43. BEGIN_NCBI_SCOPE
  44. BEGIN_SCOPE(objects)
  45. SAnnotObjects_Info::SAnnotObjects_Info(void)
  46. {
  47. }
  48. SAnnotObjects_Info::SAnnotObjects_Info(const CAnnotName& name)
  49.     : m_Name(name)
  50. {
  51. }
  52. SAnnotObjects_Info::SAnnotObjects_Info(const SAnnotObjects_Info& info)
  53.     : m_Name(info.m_Name)
  54. {
  55.     _ASSERT(info.m_Keys.empty() && info.m_Infos.empty());
  56. }
  57. SAnnotObjects_Info::~SAnnotObjects_Info(void)
  58. {
  59. }
  60. void SAnnotObjects_Info::SetName(const CAnnotName& name)
  61. {
  62.     m_Name = name;
  63. }
  64. void SAnnotObjects_Info::Reserve(size_t size, double keys_factor)
  65. {
  66.     _ASSERT(m_Keys.empty() && m_Infos.empty());
  67.     m_Keys.reserve(size_t(keys_factor*size));
  68.     m_Infos.reserve(size);
  69. }
  70. void SAnnotObjects_Info::Clear(void)
  71. {
  72.     m_Keys.clear();
  73.     m_Infos.clear();
  74. }
  75. void SAnnotObjects_Info::AddKey(const SAnnotObject_Key& key)
  76. {
  77.     m_Keys.push_back(key);
  78. }
  79. CAnnotObject_Info* SAnnotObjects_Info::AddInfo(const CAnnotObject_Info& info)
  80. {
  81.     _ASSERT(m_Infos.capacity() > m_Infos.size());
  82.     m_Infos.push_back(info);
  83.     return &m_Infos.back();
  84. }
  85. END_SCOPE(objects)
  86. END_NCBI_SCOPE
  87. /*
  88. * ---------------------------------------------------------------------------
  89. * $Log: annot_object_index.cpp,v $
  90. * Revision 1000.2  2004/06/01 19:22:38  gouriano
  91. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.3
  92. *
  93. * Revision 1.3  2004/05/21 21:42:12  gorelenk
  94. * Added PCH ncbi_pch.hpp
  95. *
  96. * Revision 1.2  2003/11/26 17:55:56  vasilche
  97. * Implemented ID2 split in ID1 cache.
  98. * Fixed loading of splitted annotations.
  99. *
  100. * Revision 1.1  2003/10/07 13:43:23  vasilche
  101. * Added proper handling of named Seq-annots.
  102. * Added feature search from named Seq-annots.
  103. * Added configurable adaptive annotation search (default: gene, cds, mrna).
  104. * Fixed selection of blobs for loading from GenBank.
  105. * Added debug checks to CSeq_id_Mapper for easier finding lost CSeq_id_Handles.
  106. * Fixed leaked split chunks annotation stubs.
  107. * Moved some classes definitions in separate *.cpp files.
  108. *
  109. * ===========================================================================
  110. */