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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: seqmatch_info.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 20:24:04  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.14
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef OBJECTS_OBJMGR___SEQMATCH_INFO__HPP
  10. #define OBJECTS_OBJMGR___SEQMATCH_INFO__HPP
  11. /*  $Id: seqmatch_info.hpp,v 1000.0 2003/10/29 20:24:04 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
  37. *
  38. * File Description:
  39. *   CSeqMatch_Info -- used internally by CScope and CDataSource
  40. *
  41. */
  42. #include <corelib/ncbiobj.hpp>
  43. #include <objmgr/seq_id_handle.hpp>
  44. #include <objmgr/impl/tse_info.hpp>
  45. BEGIN_NCBI_SCOPE
  46. BEGIN_SCOPE(objects)
  47. class CDataSource;
  48. ////////////////////////////////////////////////////////////////////
  49. //
  50. //  CSeqMatch_Info::
  51. //
  52. //    Information about a sequence, matching to a seq-id
  53. //
  54. class NCBI_XOBJMGR_EXPORT CSeqMatch_Info
  55. {
  56. public:
  57.     CSeqMatch_Info(void);
  58.     CSeqMatch_Info(const CSeq_id_Handle& h, const CTSE_Info& tse);
  59.     
  60.     // Return true if "info" is better than "this"
  61.     bool operator< (const CSeqMatch_Info& info) const;
  62.     operator bool (void);
  63.     bool operator! (void);
  64.     CDataSource& GetDataSource(void) const;
  65.     const CTSE_Info& GetTSE_Info(void) const;
  66.     const CSeq_id_Handle& GetIdHandle(void) const;
  67.     CConstRef<CBioseq_Info> GetBioseq_Info(void) const;
  68. private:
  69.     CSeq_id_Handle    m_Handle;     // best id handle, matching the request
  70.     CConstRef<CTSE_Info>   m_TSE;   // TSE, containing the best match
  71. };
  72. inline
  73. const CTSE_Info& CSeqMatch_Info::GetTSE_Info(void) const
  74. {
  75.     return *m_TSE;
  76. }
  77. inline
  78. const CSeq_id_Handle& CSeqMatch_Info::GetIdHandle(void) const
  79. {
  80.     return m_Handle;
  81. }
  82. inline
  83. CSeqMatch_Info::operator bool (void)
  84. {
  85.     return bool(m_Handle);
  86. }
  87. inline
  88. bool CSeqMatch_Info::operator! (void)
  89. {
  90.     return !m_Handle;
  91. }
  92. END_SCOPE(objects)
  93. END_NCBI_SCOPE
  94. /*
  95. * ---------------------------------------------------------------------------
  96. * $Log: seqmatch_info.hpp,v $
  97. * Revision 1000.0  2003/10/29 20:24:04  gouriano
  98. * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.14
  99. *
  100. * Revision 1.14  2003/06/02 16:01:36  dicuccio
  101. * Rearranged include/objects/ subtree.  This includes the following shifts:
  102. *     - include/objects/alnmgr --> include/objtools/alnmgr
  103. *     - include/objects/cddalignview --> include/objtools/cddalignview
  104. *     - include/objects/flat --> include/objtools/flat
  105. *     - include/objects/objmgr/ --> include/objmgr/
  106. *     - include/objects/util/ --> include/objmgr/util/
  107. *     - include/objects/validator --> include/objtools/validator
  108. *
  109. * Revision 1.13  2003/05/20 15:44:37  vasilche
  110. * Fixed interaction of CDataSource and CDataLoader in multithreaded app.
  111. * Fixed some warnings on WorkShop.
  112. * Added workaround for memory leak on WorkShop.
  113. *
  114. * Revision 1.12  2003/04/24 16:12:37  vasilche
  115. * Object manager internal structures are splitted more straightforward.
  116. * Removed excessive header dependencies.
  117. *
  118. * Revision 1.11  2003/03/21 19:22:48  grichenk
  119. * Redesigned TSE locking, replaced CTSE_Lock with CRef<CTSE_Info>.
  120. *
  121. * Revision 1.10  2003/03/12 20:09:30  grichenk
  122. * Redistributed members between CBioseq_Handle, CBioseq_Info and CTSE_Info
  123. *
  124. * Revision 1.9  2003/02/24 18:57:21  vasilche
  125. * Make feature gathering in one linear pass using CSeqMap iterator.
  126. * Do not use feture index by sub locations.
  127. * Sort features at the end of gathering in one vector.
  128. * Extracted some internal structures and classes in separate header.
  129. * Delay creation of mapped features.
  130. *
  131. * Revision 1.8  2003/02/05 17:58:17  dicuccio
  132. * Moved formerly private headers into include/objects/objmgr/impl
  133. *
  134. * Revision 1.7  2002/12/26 20:41:22  dicuccio
  135. * Added Win32 export specifier.  Converted predeclaration (CTSE_Info) into
  136. * #include for tse_info.hpp.
  137. *
  138. * Revision 1.6  2002/12/26 16:39:22  vasilche
  139. * Object manager class CSeqMap rewritten.
  140. *
  141. * Revision 1.5  2002/07/08 20:50:56  grichenk
  142. * Moved log to the end of file
  143. * Replaced static mutex (in CScope, CDataSource) with the mutex
  144. * pool. Redesigned CDataSource data locking.
  145. *
  146. * Revision 1.4  2002/06/04 17:18:32  kimelman
  147. * memory cleanup :  new/delete/Cref rearrangements
  148. *
  149. * Revision 1.3  2002/05/06 03:30:36  vakatov
  150. * OM/OM1 renaming
  151. *
  152. * Revision 1.2  2002/02/25 21:05:27  grichenk
  153. * Removed seq-data references caching. Increased MT-safety. Fixed typos.
  154. *
  155. * Revision 1.1  2002/02/21 19:21:02  grichenk
  156. * Initial revision
  157. *
  158. *
  159. * ===========================================================================
  160. */
  161. #endif  /* OBJECTS_OBJMGR___SEQMATCH_INFO__HPP */