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

📄 bioseq_set_info.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: bioseq_set_info.hpp,v $ * PRODUCTION Revision 1000.1  2004/06/01 19:22:01  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4 * PRODUCTION * =========================================================================== */#ifndef OBJECTS_OBJMGR_IMPL___BIOSEQ_SET_INFO__HPP#define OBJECTS_OBJMGR_IMPL___BIOSEQ_SET_INFO__HPP/*  $Id: bioseq_set_info.hpp,v 1000.1 2004/06/01 19:22:01 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:*   Seq_entry info -- entry for data source**/#include <objmgr/impl/bioseq_base_info.hpp>#include <objects/seqset/Bioseq_set.hpp>#include <objects/general/Object_id.hpp>#include <objects/general/Dbtag.hpp>#include <objects/general/Date.hpp>#include <vector>BEGIN_NCBI_SCOPEBEGIN_SCOPE(objects)// forward declarationclass CBioseq_set;class CSeq_entry_Info;////////////////////////////////////////////////////////////////////////  CBioseq_set_Info::////    General information and indexes for Bioseq-set object//class NCBI_XOBJMGR_EXPORT CBioseq_set_Info : public CBioseq_Base_Info{    typedef CBioseq_Base_Info TParent;public:    // 'ctors    CBioseq_set_Info(void);    explicit CBioseq_set_Info(const CBioseq_set_Info& info);    explicit CBioseq_set_Info(CBioseq_set& seqset);    virtual ~CBioseq_set_Info(void);    typedef CBioseq_set TObject;    CConstRef<TObject> GetCompleteBioseq_set(void) const;    CConstRef<TObject> GetBioseq_setCore(void) const;    // Bioseq-set access    typedef TObject::TId TId;    bool IsSetId(void) const;    bool CanGetId(void) const;    const TId& GetId(void) const;    void SetId(TId& v);    void ResetId(void);    bool IsSetDescr(void) const;    bool CanGetDescr(void) const;    const TDescr& GetDescr(void) const;    void SetDescr(TDescr& v);    TDescr& x_SetDescr(void);    void ResetDescr(void);    typedef TObject::TColl TColl;    bool IsSetColl(void) const;    bool CanGetColl(void) const;    const TColl& GetColl(void) const;    void SetColl(TColl& v);    void ResetColl(void);    typedef TObject::TLevel TLevel;    bool IsSetLevel(void) const;    bool CanGetLevel(void) const;    TLevel GetLevel(void) const;    void SetLevel(TLevel v);    void ResetLevel(void);    typedef TObject::TClass TClass;    bool IsSetClass(void) const;    bool CanGetClass(void) const;    TClass GetClass(void) const;    void SetClass(TClass v);    void ResetClass(void);    typedef TObject::TRelease TRelease;    bool IsSetRelease(void) const;    bool CanGetRelease(void) const;    const TRelease& GetRelease(void) const;    void SetRelease(TRelease& v);    void ResetRelease(void);    typedef TObject::TDate TDate;    bool IsSetDate(void) const;    bool CanGetDate(void) const;    const TDate& GetDate(void) const;    void SetDate(TDate& v);    void ResetDate(void);    typedef vector< CRef<CSeq_entry_Info> > TSeq_set;    bool IsSetSeq_set(void) const;    bool CanGetSeq_set(void) const;    const TSeq_set& GetSeq_set(void) const;    TSeq_set& SetSeq_set(void);    CRef<CSeq_entry_Info> AddEntry(CSeq_entry& entry, int index = -1);    void AddEntry(CRef<CSeq_entry_Info> entry, int index = -1);    void RemoveEntry(CRef<CSeq_entry_Info> entry);    // initialization    // attaching/detaching to CDataSource (it's in CTSE_Info)    virtual void x_DSAttachContents(CDataSource& ds);    virtual void x_DSDetachContents(CDataSource& ds);    // attaching/detaching to CTSE_Info    virtual void x_TSEAttachContents(CTSE_Info& tse);    virtual void x_TSEDetachContents(CTSE_Info& tse);    // index    void UpdateAnnotIndex(void) const;    virtual void x_UpdateAnnotIndexContents(CTSE_Info& tse);        // modification    void x_AttachEntry(CRef<CSeq_entry_Info> info);    void x_DetachEntry(CRef<CSeq_entry_Info> info);protected:    friend class CDataSource;    friend class CScope_Impl;    friend class CTSE_Info;    friend class CSeq_entry_Info;    friend class CBioseq_Info;    friend class CSeq_annot_Info;    friend class CSeq_entry_CI;    friend class CSeq_entry_I;    friend class CSeq_annot_CI;    friend class CSeq_annot_I;    friend class CAnnotTypes_CI;    void x_DSAttachContents(void);    void x_DSDetachContents(void);    void x_ParentAttach(CSeq_entry_Info& parent);    void x_ParentDetach(CSeq_entry_Info& parent);    TObject& x_GetObject(void);    const TObject& x_GetObject(void) const;    void x_SetObject(TObject& obj);    void x_SetObject(const CBioseq_set_Info& info);    int x_GetBioseq_set_Id(const CObject_id& object_id);    TObjAnnot& x_SetObjAnnot(void);    void x_ResetObjAnnot(void);    void x_DoUpdateObject(void);    static CRef<TObject> sx_ShallowCopy(const TObject& obj);private:    // core object    CRef<TObject>       m_Object;    // members    TSeq_set            m_Seq_set;    // index information    int                 m_Bioseq_set_Id;    // Hide copy methods    CBioseq_set_Info& operator= (const CBioseq_set_Info&);};/////////////////////////////////////////////////////////////////////////  Inline methods///////////////////////////////////////////////////////////////////////inlineCBioseq_set& CBioseq_set_Info::x_GetObject(void){    return *m_Object;}inlineconst CBioseq_set& CBioseq_set_Info::x_GetObject(void) const{    return *m_Object;}inlinebool CBioseq_set_Info::IsSetId(void) const{    return m_Object->IsSetId();}inlinebool CBioseq_set_Info::CanGetId(void) const{    return bool(m_Object)  &&  m_Object->CanGetId();}inlinevoid CBioseq_set_Info::ResetId(void){    m_Object->ResetId();}inlineconst CBioseq_set_Info::TId& CBioseq_set_Info::GetId(void) const{    return m_Object->GetId();}inlinevoid CBioseq_set_Info::SetId(TId& v){    m_Object->SetId(v);}inlinebool CBioseq_set_Info::IsSetColl(void) const{    return m_Object->IsSetColl();}inlinebool CBioseq_set_Info::CanGetColl(void) const{    return bool(m_Object)  &&  m_Object->CanGetColl();}inlinevoid CBioseq_set_Info::ResetColl(void){    m_Object->ResetColl();}inlineconst CBioseq_set_Info::TColl& CBioseq_set_Info::GetColl(void) const{    return m_Object->GetColl();}inlinevoid CBioseq_set_Info::SetColl(TColl& v){    m_Object->SetColl(v);}inlinebool CBioseq_set_Info::IsSetLevel(void) const{    return m_Object->IsSetLevel();}inlinebool CBioseq_set_Info::CanGetLevel(void) const{    return bool(m_Object)  &&  m_Object->CanGetLevel();}inlinevoid CBioseq_set_Info::ResetLevel(void){    m_Object->ResetLevel();}inlineCBioseq_set_Info::TLevel CBioseq_set_Info::GetLevel(void) const{    return m_Object->GetLevel();}inlinevoid CBioseq_set_Info::SetLevel(TLevel v){    m_Object->SetLevel(v);}inlinebool CBioseq_set_Info::IsSetClass(void) const{    return m_Object->IsSetClass();}inlinebool CBioseq_set_Info::CanGetClass(void) const{    return bool(m_Object)  &&  m_Object->CanGetClass();}inlinevoid CBioseq_set_Info::ResetClass(void){    m_Object->ResetClass();}inlineCBioseq_set_Info::TClass CBioseq_set_Info::GetClass(void) const{    return m_Object->GetClass();}inlinevoid CBioseq_set_Info::SetClass(TClass v){    m_Object->SetClass(v);}inlinebool CBioseq_set_Info::IsSetRelease(void) const{    return m_Object->IsSetRelease();}inlinebool CBioseq_set_Info::CanGetRelease(void) const{    return bool(m_Object)  &&  m_Object->CanGetRelease();}inlinevoid CBioseq_set_Info::ResetRelease(void){    m_Object->ResetRelease();}inlineconst CBioseq_set_Info::TRelease& CBioseq_set_Info::GetRelease(void) const{    return m_Object->GetRelease();}inlinevoid CBioseq_set_Info::SetRelease(TRelease& v){    m_Object->SetRelease(v);}inlinebool CBioseq_set_Info::IsSetDate(void) const{    return m_Object->IsSetDate();}inlinebool CBioseq_set_Info::CanGetDate(void) const{    return bool(m_Object)  &&  m_Object->CanGetDate();}inlinevoid CBioseq_set_Info::ResetDate(void){    m_Object->ResetDate();}inlineconst CBioseq_set_Info::TDate& CBioseq_set_Info::GetDate(void) const{    return m_Object->GetDate();}inlinevoid CBioseq_set_Info::SetDate(TDate& v){    m_Object->SetDate(v);}inlinebool CBioseq_set_Info::IsSetSeq_set(void) const{    return m_Object->IsSetSeq_set();}inlinebool CBioseq_set_Info::CanGetSeq_set(void) const{    return bool(m_Object)  &&  m_Object->CanGetSeq_set();}inlineconst CBioseq_set_Info::TSeq_set& CBioseq_set_Info::GetSeq_set(void) const{    return m_Seq_set;}inlineCBioseq_set_Info::TSeq_set& CBioseq_set_Info::SetSeq_set(void){    return m_Seq_set;}END_SCOPE(objects)END_NCBI_SCOPE/** ---------------------------------------------------------------------------* $Log: bioseq_set_info.hpp,v $* Revision 1000.1  2004/06/01 19:22:01  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4** Revision 1.4  2004/05/06 17:32:37  grichenk* Added CanGetXXXX() methods** Revision 1.3  2004/03/31 17:08:06  vasilche* Implemented ConvertSeqToSet and ConvertSetToSeq.** Revision 1.2  2004/03/24 18:30:28  vasilche* Fixed edit API.* Every *_Info object has its own shallow copy of original object.** Revision 1.1  2004/03/16 15:47:26  vasilche* Added CBioseq_set_Handle and set of EditHandles** Revision 1.8  2004/02/03 19:02:16  vasilche* Fixed broken 'dirty annot index' state after RemoveEntry().** Revision 1.7  2003/12/18 16:38:06  grichenk* Added CScope::RemoveEntry()** Revision 1.6  2003/11/28 15:13:25  grichenk* Added CSeq_entry_Handle** Revision 1.5  2003/09/30 16:22:01  vasilche* Updated internal object manager classes to be able to load ID2 data.* SNP blobs are loaded as ID2 split blobs - readers convert them automatically.* Scope caches results of requests for data to data loaders.* Optimized CSeq_id_Handle for gis.* Optimized bioseq lookup in scope.* Reduced object allocations in annotation iterators.* CScope is allowed to be destroyed before other objects using this scope are* deleted (feature iterators, bioseq handles etc).* Optimized lookup for matching Seq-ids in CSeq_id_Mapper.* Added 'adaptive' option to objmgr_demo application.** Revision 1.4  2003/08/04 17:02:59  grichenk* Added constructors to iterate all annotations from a* seq-entry or seq-annot.** Revision 1.3  2003/07/25 21:41:29  grichenk* Implemented non-recursive mode for CSeq_annot_CI,* fixed friend declaration in CSeq_entry_Info.** Revision 1.2  2003/07/25 15:25:24  grichenk* Added CSeq_annot_CI class** Revision 1.1  2003/04/24 16:12:37  vasilche* Object manager internal structures are splitted more straightforward.* Removed excessive header dependencies.*** ===========================================================================*/#endif//OBJECTS_OBJMGR_IMPL___BIOSEQ_SET_INFO__HPP

⌨️ 快捷键说明

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