Seq_interval.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
- /*
- * ===========================================================================
- * PRODUCTION $Log: Seq_interval.hpp,v $
- * PRODUCTION Revision 1000.2 2004/06/01 19:30:51 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: Seq_interval.hpp,v 1000.2 2004/06/01 19:30:51 gouriano Exp $
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government have not placed any restriction on its use or reproduction.
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- * Author: .......
- *
- * File Description:
- * .......
- *
- * Remark:
- * This code was originally generated by application DATATOOL
- * using specifications from the ASN data definition file
- * 'seqloc.asn'.
- *
- * ---------------------------------------------------------------------------
- * $Log: Seq_interval.hpp,v $
- * Revision 1000.2 2004/06/01 19:30:51 gouriano
- * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
- *
- * Revision 1.13 2004/05/06 16:54:41 shomrat
- * Added methods to set partial left and right
- *
- * Revision 1.12 2004/01/28 17:15:26 shomrat
- * Added methods to ease the construction of objects
- *
- * Revision 1.11 2003/01/24 20:12:18 vasilche
- * Reverted CSeq_interval::GetLength() fix for negative strands.
- *
- * Revision 1.10 2002/12/26 12:43:42 dicuccio
- * Added Win32 export specifiers
- *
- * Revision 1.9 2002/12/19 20:11:02 grichenk
- * Fixed GetLength() for minus strand
- *
- * Revision 1.8 2002/09/12 21:13:51 kans
- * IsPartialLeft and IsPartialRight are const
- *
- * Revision 1.7 2002/09/12 20:29:55 kans
- * added member functions IsPartialLeft and IsPartialRight
- *
- * Revision 1.6 2002/06/07 11:24:24 clausen
- * Added related function comment
- *
- * Revision 1.5 2002/06/06 20:48:38 clausen
- * Moved IsValid to objects/util/sequence.hpp
- *
- * Revision 1.4 2002/05/03 21:28:04 ucko
- * Introduce T(Signed)SeqPos.
- *
- * Revision 1.3 2002/01/10 18:22:59 clausen
- * Added IsValid
- *
- * Revision 1.2 2001/06/25 18:52:02 grichenk
- * Prohibited copy constructor and assignment operator
- *
- * Revision 1.1 2000/11/17 21:35:02 vasilche
- * Added GetLength() method to CSeq_loc class.
- *
- *
- * ===========================================================================
- */
- #ifndef OBJECTS_SEQLOC_SEQ_INTERVAL_HPP
- #define OBJECTS_SEQLOC_SEQ_INTERVAL_HPP
- // generated includes
- #include <objects/seqloc/Seq_interval_.hpp>
- // generated classes
- BEGIN_NCBI_SCOPE
- BEGIN_objects_SCOPE // namespace ncbi::objects::
- class NCBI_SEQLOC_EXPORT CSeq_interval : public CSeq_interval_Base
- {
- typedef CSeq_interval_Base Tparent;
- public:
- // See also related function in util/sequence.hpp:
- //
- // bool IsValid(const CSeq_interval&, CScope*)
- //
- // constructor
- CSeq_interval(void);
- CSeq_interval(TId& id, TFrom from, TTo to, TStrand strand = eNa_strand_unknown);
- // destructor
- ~CSeq_interval(void);
- // Get the length of the interval
- TSeqPos GetLength(void) const;
- // check left (5') or right (3') end of location for e_Lim fuzz
- bool IsPartialLeft (void) const;
- bool IsPartialRight (void) const;
- // set / remove e_Lim fuzz on left (5') or right (3') end
- void SetPartialLeft (bool val);
- void SetPartialRight(bool val);
-
- private:
- // Prohibit copy constructor & assignment operator
- CSeq_interval(const CSeq_interval&);
- CSeq_interval& operator= (const CSeq_interval&);
- bool x_IsMinusStrand(void) const;
- };
- /////////////////// CSeq_interval inline methods
- // constructor
- inline
- CSeq_interval::CSeq_interval(void)
- {
- }
- inline
- CSeq_interval::CSeq_interval(TId& id, TFrom from, TTo to, TStrand strand)
- {
- SetId(id);
- SetFrom(from);
- SetTo(to);
- if ( strand != eNa_strand_unknown ) {
- SetStrand(strand);
- }
- }
- // length return
- inline
- TSeqPos CSeq_interval::GetLength(void) const
- {
- return ((GetTo() - GetFrom()) + 1);
- }
- /////////////////// end of CSeq_interval inline methods
- END_objects_SCOPE // namespace ncbi::objects::
- END_NCBI_SCOPE
- #endif // OBJECTS_SEQLOC_SEQ_INTERVAL_HPP