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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: seq_descr_ci.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2004/04/12 17:32:19  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.11
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef DESC_CI__HPP
  10. #define DESC_CI__HPP
  11. /*  $Id: seq_descr_ci.hpp,v 1000.0 2004/04/12 17:32:19 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE
  15. *               National Center for Biotechnology Information
  16. *
  17. *  This software/database is a "United States Government Work" under the
  18. *  terms of the United States Copyright Act.  It was written as part of
  19. *  the author's official duties as a United States Government employee and
  20. *  thus cannot be copyrighted.  This software/database is freely available
  21. *  to the public for use. The National Library of Medicine and the U.S.
  22. *  Government have not placed any restriction on its use or reproduction.
  23. *
  24. *  Although all reasonable efforts have been taken to ensure the accuracy
  25. *  and reliability of the software and data, the NLM and the U.S.
  26. *  Government do not and cannot warrant the performance or results that
  27. *  may be obtained by using this software or data. The NLM and the U.S.
  28. *  Government disclaim all warranties, express or implied, including
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.
  31. *
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author: Aleksey Grichenko, Michael Kimelman
  37. *
  38. * File Description:
  39. *   Object manager iterators
  40. *
  41. */
  42. #include <objects/seq/Seqdesc.hpp>
  43. #include <objects/seq/Seq_descr.hpp>
  44. #include <objmgr/seq_entry_handle.hpp>
  45. #include <corelib/ncbistd.hpp>
  46. BEGIN_NCBI_SCOPE
  47. BEGIN_SCOPE(objects)
  48. class CBioseq_Handle;
  49. class NCBI_XOBJMGR_EXPORT CSeq_descr_CI
  50. {
  51. public:
  52.     CSeq_descr_CI(void);
  53.     // Start searching from a bioseq, limit number of seq-entries
  54.     // to "search_depth" (0 = unlimited).
  55.     explicit CSeq_descr_CI(const CBioseq_Handle& handle,
  56.                   size_t search_depth = 0);
  57.     // Start searching from a seq-entry, limit number of seq-entries
  58.     // to "search_depth" (0 = unlimited).
  59.     explicit CSeq_descr_CI(const CSeq_entry_Handle& entry,
  60.                   size_t search_depth = 0);
  61.     CSeq_descr_CI(const CSeq_descr_CI& iter);
  62.     ~CSeq_descr_CI(void);
  63.     CSeq_descr_CI& operator= (const CSeq_descr_CI& iter);
  64.     CSeq_descr_CI& operator++ (void);
  65.     operator bool (void) const;
  66.     const CSeq_descr& operator*  (void) const;
  67.     const CSeq_descr* operator-> (void) const;
  68.     CSeq_entry_Handle GetSeq_entry_Handle(void) const;
  69. private:
  70.     // Move to the next entry containing a descriptor
  71.     void x_Next(void);
  72.     CSeq_entry_Handle     m_NextEntry;
  73.     CSeq_entry_Handle     m_CurrentEntry;
  74.     size_t                m_MaxCount;
  75. };
  76. END_SCOPE(objects)
  77. END_NCBI_SCOPE
  78. /*
  79. * ---------------------------------------------------------------------------
  80. * $Log: seq_descr_ci.hpp,v $
  81. * Revision 1000.0  2004/04/12 17:32:19  gouriano
  82. * PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.11
  83. *
  84. * Revision 1.11  2004/03/16 15:47:26  vasilche
  85. * Added CBioseq_set_Handle and set of EditHandles
  86. *
  87. * Revision 1.10  2004/02/09 19:18:49  grichenk
  88. * Renamed CDesc_CI to CSeq_descr_CI. Redesigned CSeq_descr_CI
  89. * and CSeqdesc_CI to avoid using data directly.
  90. *
  91. * Revision 1.9  2003/06/02 16:01:36  dicuccio
  92. * Rearranged include/objects/ subtree.  This includes the following shifts:
  93. *     - include/objects/alnmgr --> include/objtools/alnmgr
  94. *     - include/objects/cddalignview --> include/objtools/cddalignview
  95. *     - include/objects/flat --> include/objtools/flat
  96. *     - include/objects/objmgr/ --> include/objmgr/
  97. *     - include/objects/util/ --> include/objmgr/util/
  98. *     - include/objects/validator --> include/objtools/validator
  99. *
  100. * Revision 1.8  2002/12/26 20:42:55  dicuccio
  101. * Added Win32 export specifier.  Removed unimplemented (private) operator++(int)
  102. *
  103. * Revision 1.7  2002/12/05 19:28:29  grichenk
  104. * Prohibited postfix operator ++()
  105. *
  106. * Revision 1.6  2002/07/08 20:50:56  grichenk
  107. * Moved log to the end of file
  108. * Replaced static mutex (in CScope, CDataSource) with the mutex
  109. * pool. Redesigned CDataSource data locking.
  110. *
  111. * Revision 1.5  2002/05/06 03:30:35  vakatov
  112. * OM/OM1 renaming
  113. *
  114. * Revision 1.4  2002/02/21 19:27:00  grichenk
  115. * Rearranged includes. Added scope history. Added searching for the
  116. * best seq-id match in data sources and scopes. Updated tests.
  117. *
  118. * Revision 1.3  2002/01/23 21:59:29  grichenk
  119. * Redesigned seq-id handles and mapper
  120. *
  121. * Revision 1.2  2002/01/16 16:26:37  gouriano
  122. * restructured objmgr
  123. *
  124. * Revision 1.1  2002/01/11 19:04:01  gouriano
  125. * restructured objmgr
  126. *
  127. *
  128. * ===========================================================================
  129. */
  130. #endif  // DESC_CI__HPP