⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 id_range.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: id_range.hpp,v $ * PRODUCTION Revision 1000.0  2004/04/12 17:33:49  gouriano * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.3 * PRODUCTION * =========================================================================== */#ifndef NCBI_OBJMGR_SPLIT_ID_RANGE__HPP#define NCBI_OBJMGR_SPLIT_ID_RANGE__HPP/*  $Id: id_range.hpp,v 1000.0 2004/04/12 17:33:49 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:  Eugene Vasilchenko** File Description:*   Utility class for collecting ranges of sequences** ===========================================================================*/#include <corelib/ncbistd.hpp>#include <objmgr/seq_id_handle.hpp>#include <util/range.hpp>#include <map>BEGIN_NCBI_SCOPEclass CObjectOStream;BEGIN_SCOPE(objects)class CSeq_feat;class CSeq_align;class CSeq_graph;class CSeq_loc;class CSeq_id;class CSeq_point;class CSeq_interval;class CPacked_seqpnt;class CDense_seg;class CDense_diag;class CPacked_seg;class COneSeqRange{public:    typedef CRange<TSeqPos> TRange;    COneSeqRange(void)        : m_TotalRange(TRange::GetEmpty())        {        }    TRange GetTotalRange(void) const        {            return m_TotalRange;        }    void Add(const COneSeqRange& range);    void Add(const TRange& range);    void Add(TSeqPos start, TSeqPos stop_exclusive);private:    TRange m_TotalRange;};class CSeqsRange{public:    CSeqsRange(void);    ~CSeqsRange(void);    CNcbiOstream& Print(CNcbiOstream& out) const;    typedef COneSeqRange::TRange TRange;    typedef map<CSeq_id_Handle, COneSeqRange> TRanges;    typedef TRanges::const_iterator const_iterator;    const_iterator begin(void) const        {            return m_Ranges.begin();        }    const_iterator end(void) const        {            return m_Ranges.end();        }    size_t size(void) const        {            return m_Ranges.size();        }    bool empty(void) const        {            return m_Ranges.empty();        }    void clear(void)        {            m_Ranges.clear();        }    CSeq_id_Handle GetSingleId(void) const;    void Add(const CSeq_id_Handle& id, const COneSeqRange& loc);    void Add(const CSeqsRange& seqs_range);    void Add(const CSeq_loc& loc);    void Add(const CSeq_id& id);    void Add(const CSeq_point& p);    void Add(const CSeq_interval& i);    void Add(const CPacked_seqpnt& pp);    void Add(const CSeq_feat& obj);    void Add(const CSeq_align& obj);    void Add(const CSeq_graph& obj);    void Add(const CDense_seg& denseg);    void Add(const CDense_diag& diag);    void Add(const CPacked_seg& packed);private:    TRanges m_Ranges;};inlineCNcbiOstream& operator<<(CNcbiOstream& out, const CSeqsRange& info){    return info.Print(out);}END_SCOPE(objects)END_NCBI_SCOPE/** ---------------------------------------------------------------------------* $Log: id_range.hpp,v $* Revision 1000.0  2004/04/12 17:33:49  gouriano* PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.3** Revision 1.3  2003/12/01 18:37:10  vasilche* Separate different annotation types in split info to reduce memory usage.** Revision 1.2  2003/11/26 23:04:59  vasilche* Removed extra semicolons after BEGIN_SCOPE and END_SCOPE.** Revision 1.1  2003/11/12 16:18:30  vasilche* First implementation of ID2 blob splitter withing cache.** ===========================================================================*/#endif//NCBI_OBJMGR_SPLIT_ID_RANGE__HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -