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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: seq_align_handle.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2004/06/01 19:25:37  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.1
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef SEQ_ALIGN_HANDLE__HPP
  10. #define SEQ_ALIGN_HANDLE__HPP
  11. /*  $Id: seq_align_handle.hpp,v 1000.0 2004/06/01 19:25:37 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, Eugene Vasilchenko
  37. *
  38. * File Description:
  39. *   Seq-align handle
  40. *
  41. */
  42. #include <corelib/ncbiobj.hpp>
  43. #include <objmgr/impl/heap_scope.hpp>
  44. #include <objects/seqalign/Seq_align.hpp>
  45. #include <objmgr/impl/seq_annot_info.hpp>
  46. BEGIN_NCBI_SCOPE
  47. BEGIN_SCOPE(objects)
  48. class CScope;
  49. class CSeq_annot_Handle;
  50. class CSeq_align_Handle
  51. {
  52. public:
  53.     CSeq_align_Handle(void);
  54.     CSeq_align_Handle(CScope& scope,
  55.                       const CSeq_annot_Info& annot_info,
  56.                       size_t index);
  57.     ~CSeq_align_Handle(void);
  58.     CSeq_annot_Handle GetAnnot(void) const;
  59.     CConstRef<CSeq_align> GetSeq_align(void) const;
  60.     // Mappings for CSeq_align methods
  61.     CSeq_align::EType GetType(void) const;
  62.     bool IsSetDim(void) const;
  63.     CSeq_align::TDim GetDim(void) const;
  64.     bool IsSetScore(void) const;
  65.     const CSeq_align::TScore& GetScore(void) const;
  66.     const CSeq_align::TSegs& GetSegs(void) const;
  67.     bool IsSetBounds(void) const;
  68.     const CSeq_align::TBounds& GetBounds(void) const;
  69. private:
  70.     const CSeq_align& x_GetSeq_align(void) const;
  71.     CHeapScope                 m_Scope;
  72.     CConstRef<CSeq_annot_Info> m_Annot;
  73.     size_t                     m_Index;
  74. };
  75. inline
  76. CSeq_align::EType CSeq_align_Handle::GetType(void) const
  77. {
  78.     return x_GetSeq_align().GetType();
  79. }
  80. inline
  81. bool CSeq_align_Handle::IsSetDim(void) const
  82. {
  83.     return x_GetSeq_align().IsSetDim();
  84. }
  85. inline
  86. CSeq_align::TDim CSeq_align_Handle::GetDim(void) const
  87. {
  88.     return x_GetSeq_align().GetDim();
  89. }
  90. inline
  91. bool CSeq_align_Handle::IsSetScore(void) const
  92. {
  93.     return x_GetSeq_align().IsSetScore();
  94. }
  95. inline
  96. const CSeq_align::TScore& CSeq_align_Handle::GetScore(void) const
  97. {
  98.     return x_GetSeq_align().GetScore();
  99. }
  100. inline
  101. const CSeq_align::TSegs& CSeq_align_Handle::GetSegs(void) const
  102. {
  103.     return x_GetSeq_align().GetSegs();
  104. }
  105. inline
  106. bool CSeq_align_Handle::IsSetBounds(void) const
  107. {
  108.     return x_GetSeq_align().IsSetBounds();
  109. }
  110. inline
  111. const CSeq_align::TBounds& CSeq_align_Handle::GetBounds(void) const
  112. {
  113.     return x_GetSeq_align().GetBounds();
  114. }
  115. END_SCOPE(objects)
  116. END_NCBI_SCOPE
  117. /*
  118. * ---------------------------------------------------------------------------
  119. * $Log: seq_align_handle.hpp,v $
  120. * Revision 1000.0  2004/06/01 19:25:37  gouriano
  121. * PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.1
  122. *
  123. * Revision 1.1  2004/05/04 18:06:06  grichenk
  124. * Initial revision
  125. *
  126. *
  127. * ===========================================================================
  128. */
  129. #endif  // SEQ_ALIGN_HANDLE__HPP