NCBI C++ ToolKit
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
CBlobSplitterImpl Class Reference

Search Toolkit Book for CBlobSplitterImpl

#include <objmgr/split/blob_splitter_impl.hpp>

+ Collaboration diagram for CBlobSplitterImpl:

Public Types

typedef map< CPlaceId, CPlace_SplitInfoTEntries
 
typedef int TChunkId
 
typedef map< TChunkId, SChunkInfoTChunks
 
typedef map< CID2S_Chunk_Id, CRef< CID2S_Chunk > > TID2Chunks
 
typedef vector< CRef< CAnnotPieces > > TPieces
 
typedef CSeqsRange::TRange TRange
 
typedef vector< CAnnotObject_SplitInfoTAnnotObjects
 
typedef map< CPlaceId, CRef< CID2S_Chunk_Data > > TChunkData
 
typedef vector< CRef< CID2S_Chunk_Content > > TChunkContent
 

Public Member Functions

 CBlobSplitterImpl (const SSplitterParams &params)
 
 ~CBlobSplitterImpl (void)
 
bool Split (const CSeq_entry &entry)
 
const CSplitBlobGetBlob (void) const
 
void Reset (void)
 
void CopySkeleton (CSeq_entry &dst, const CSeq_entry &src)
 
void CopySkeleton (CBioseq_set &dst, const CBioseq_set &src)
 
void CopySkeleton (CBioseq &dst, const CBioseq &src)
 
bool CopyDescr (CPlace_SplitInfo &place_info, TSeqPos seq_length, const CSeq_descr &descr)
 
bool CopyHist (CPlace_SplitInfo &place_info, const CSeq_hist &hist)
 
bool CopySequence (CPlace_SplitInfo &place_info, TSeqPos seq_length, CSeq_inst &dst, const CSeq_inst &src)
 
bool CopyAnnot (CPlace_SplitInfo &place_info, const CSeq_annot &annot)
 
bool CanSplitBioseq (const CBioseq &bioseq) const
 
bool SplitBioseq (CPlace_SplitInfo &place_info, const CBioseq &bioseq)
 
void CollectPieces (void)
 
void CollectPieces (const CPlace_SplitInfo &info)
 
void CollectPieces (const CPlaceId &place_id, const CSeq_annot_SplitInfo &info)
 
void CollectPieces (const CPlaceId &place_id, const CSeq_descr_SplitInfo &info)
 
void CollectPieces (const CPlaceId &place_id, const CSeq_hist_SplitInfo &info)
 
void Add (const SAnnotPiece &piece)
 
void SplitPieces (void)
 
void AddToSkeleton (CAnnotPieces &pieces)
 
void SplitPieces (CAnnotPieces &pieces)
 
void MakeID2SObjects (void)
 
void AttachToSkeleton (const SChunkInfo &info)
 
TSeqPos GetLength (const CSeq_data &src) const
 
TSeqPos GetLength (const CDelta_seq &src) const
 
TSeqPos GetLength (const CDelta_ext &src) const
 
TSeqPos GetLength (const CSeq_ext &src) const
 
TSeqPos GetLength (const CSeq_inst &src) const
 
TSeqPos GetLength (const CSeq_id_Handle &id) const
 
bool IsWhole (const CSeq_id_Handle &id, const TRange &range) const
 
void SetLoc (CID2S_Seq_loc &loc, const CHandleRangeMap &ranges) const
 
void SetLoc (CID2S_Seq_loc &loc, const CSeqsRange &ranges) const
 
void SetLoc (CID2S_Seq_loc &loc, const CSeq_id_Handle &id, TRange range) const
 
CRef< CID2S_Seq_locMakeLoc (const CSeqsRange &range) const
 
CRef< CID2S_Seq_locMakeLoc (const CSeq_id_Handle &id, const TRange &range) const
 
CRef< CID2S_Bioseq_IdsMakeBioseqIds (const set< CSeq_id_Handle > &ids) const
 
CRef< CID2S_Bioseq_set_IdsMakeBioseq_setIds (const set< int > &ids) const
 
CRef< CSeq_annotMakeSeq_annot (const CSeq_annot &src, const TAnnotObjects &objs)
 
CID2S_Chunk_DataGetChunkData (TChunkData &chunk_data, const CPlaceId &place_id)
 
void MakeID2Chunk (TChunkId id, const SChunkInfo &info)
 
SChunkInfoNextChunk (void)
 
SChunkInfoNextChunk (SChunkInfo *chunk, const CSize &size)
 
const CMasterSeqSegmentsGetMaster (void) const
 

Static Public Member Functions

static size_t CountAnnotObjects (const CSeq_annot &annot)
 
static size_t CountAnnotObjects (const CSeq_entry &entry)
 
static size_t CountAnnotObjects (const CID2S_Chunk &chunk)
 
static size_t CountAnnotObjects (const TID2Chunks &chunks)
 

Private Attributes

SSplitterParams m_Params
 
CSplitBlob m_SplitBlob
 
CRef< CSeq_entrym_Skeleton
 
CRef< CID2S_Split_Infom_Split_Info
 
TID2Chunks m_ID2_Chunks
 
int m_NextBioseq_set_Id
 
TEntries m_Entries
 
TPieces m_Pieces
 
TChunks m_Chunks
 
CRef< CScopem_Scope
 
CRef< CMasterSeqSegmentsm_Master
 

Detailed Description

Definition at line 96 of file blob_splitter_impl.hpp.

Member Typedef Documentation

◆ TAnnotObjects

Definition at line 177 of file blob_splitter_impl.hpp.

◆ TChunkContent

Definition at line 182 of file blob_splitter_impl.hpp.

◆ TChunkData

Definition at line 181 of file blob_splitter_impl.hpp.

◆ TChunkId

Definition at line 103 of file blob_splitter_impl.hpp.

◆ TChunks

Definition at line 104 of file blob_splitter_impl.hpp.

◆ TEntries

Definition at line 102 of file blob_splitter_impl.hpp.

◆ TID2Chunks

Definition at line 105 of file blob_splitter_impl.hpp.

◆ TPieces

Definition at line 106 of file blob_splitter_impl.hpp.

◆ TRange

Definition at line 107 of file blob_splitter_impl.hpp.

Constructor & Destructor Documentation

◆ CBlobSplitterImpl()

CBlobSplitterImpl::CBlobSplitterImpl ( const SSplitterParams params)

Definition at line 90 of file blob_splitter_maker.cpp.

◆ ~CBlobSplitterImpl()

CBlobSplitterImpl::~CBlobSplitterImpl ( void  )

Definition at line 96 of file blob_splitter_maker.cpp.

Member Function Documentation

◆ Add()

void CBlobSplitterImpl::Add ( const SAnnotPiece piece)

Definition at line 290 of file blob_splitter_impl.cpp.

References m_Pieces, SAnnotPiece::m_Priority, and max().

Referenced by CollectPieces().

◆ AddToSkeleton()

void CBlobSplitterImpl::AddToSkeleton ( CAnnotPieces pieces)

◆ AttachToSkeleton()

void CBlobSplitterImpl::AttachToSkeleton ( const SChunkInfo info)

◆ CanSplitBioseq()

bool CBlobSplitterImpl::CanSplitBioseq ( const CBioseq bioseq) const

◆ CollectPieces() [1/5]

void CBlobSplitterImpl::CollectPieces ( const CPlace_SplitInfo info)

◆ CollectPieces() [2/5]

void CBlobSplitterImpl::CollectPieces ( const CPlaceId place_id,
const CSeq_annot_SplitInfo info 
)

Definition at line 198 of file blob_splitter_impl.cpp.

References Add(), i, info, ITERATE, and ncbi::grid::netcache::search::fields::size.

◆ CollectPieces() [3/5]

void CBlobSplitterImpl::CollectPieces ( const CPlaceId place_id,
const CSeq_descr_SplitInfo info 
)

◆ CollectPieces() [4/5]

void CBlobSplitterImpl::CollectPieces ( const CPlaceId place_id,
const CSeq_hist_SplitInfo info 
)

Definition at line 282 of file blob_splitter_impl.cpp.

References Add(), and info.

◆ CollectPieces() [5/5]

void CBlobSplitterImpl::CollectPieces ( void  )

Definition at line 139 of file blob_splitter_impl.cpp.

References ITERATE, m_Entries, m_Params, m_Pieces, SSplitterParams::m_Verbose, NcbiCout, and NcbiEndl.

Referenced by CollectPieces(), and Split().

◆ CopyAnnot()

bool CBlobSplitterImpl::CopyAnnot ( CPlace_SplitInfo place_info,
const CSeq_annot annot 
)

◆ CopyDescr()

bool CBlobSplitterImpl::CopyDescr ( CPlace_SplitInfo place_info,
TSeqPos  seq_length,
const CSeq_descr descr 
)

◆ CopyHist()

bool CBlobSplitterImpl::CopyHist ( CPlace_SplitInfo place_info,
const CSeq_hist hist 
)

◆ CopySequence()

bool CBlobSplitterImpl::CopySequence ( CPlace_SplitInfo place_info,
TSeqPos  seq_length,
CSeq_inst dst,
const CSeq_inst src 
)

Definition at line 524 of file blob_splitter_parser.cpp.

References _ASSERT, CopyHist(), data, CSeq_ext_Base::e_Delta, CDelta_seq_Base::e_Literal, CDelta_seq_Base::e_Loc, CDelta_ext_Base::Get(), CSeq_hist_Base::GetDeleted(), CSeq_ext_Base::GetDelta(), CSeq_inst_Base::GetExt(), CSeq_inst_Base::GetFuzz(), CSeq_literal_Base::GetFuzz(), CSeq_inst_Base::GetHist(), GetLength(), CDelta_seq_Base::GetLiteral(), CSeq_inst_Base::GetMol(), CSeq_hist_Base::GetReplaced_by(), CSeq_hist_Base::GetReplaces(), CSeq_inst_Base::GetRepr(), CSeq_inst_Base::GetSeq_data(), CSeq_literal_Base::GetSeq_data(), CSeq_inst_Base::GetStrand(), CSeq_inst_Base::GetTopology(), info, CSeq_data_Base::IsGap(), CSeq_hist_Base::IsSetDeleted(), CSeq_inst_Base::IsSetExt(), CSeq_inst_Base::IsSetFuzz(), CSeq_literal_Base::IsSetFuzz(), CSeq_inst_Base::IsSetHist(), CSeq_hist_Base::IsSetReplaced_by(), CSeq_hist_Base::IsSetReplaces(), CSeq_inst_Base::IsSetSeq_data(), CSeq_literal_Base::IsSetSeq_data(), CSeq_inst_Base::IsSetStrand(), CSeq_inst_Base::IsSetTopology(), ITERATE, kInvalidSeqPos, CPlace_SplitInfo::m_Bioseq, CPlace_SplitInfo::m_Inst, m_Params, CPlace_SplitInfo::m_PlaceId, compile_time_bits::range(), CRef< C, Locker >::Reset(), CDelta_ext_Base::Set(), CSeq_inst_Base::SetExt(), CSeq_inst_Base::SetFuzz(), CSeq_literal_Base::SetFuzz(), CSeq_inst_Base::SetHist(), CSeq_inst_Base::SetLength(), CSeq_literal_Base::SetLength(), CSeq_inst_Base::SetMol(), CSeq_inst_Base::SetRepr(), CSeq_literal_Base::SetSeq_data(), CSeq_inst_Base::SetStrand(), CSeq_inst_Base::SetTopology(), CDelta_seq_Base::Which(), and CSeq_ext_Base::Which().

Referenced by CopySkeleton().

◆ CopySkeleton() [1/3]

void CBlobSplitterImpl::CopySkeleton ( CBioseq dst,
const CBioseq src 
)

◆ CopySkeleton() [2/3]

void CBlobSplitterImpl::CopySkeleton ( CBioseq_set dst,
const CBioseq_set src 
)

Definition at line 325 of file blob_splitter_parser.cpp.

References _ASSERT, CMasterSeqSegments::AddSegmentIds(), CMasterSeqSegments::AddSegments(), CanSplitBioseq(), CopyAnnot(), CopyDescr(), CopySkeleton(), CSeq_entry_Base::e_Seq, CBioseq_set_Base::eClass_segset, ERR_POST_X, first(), CSeq_descr_Base::Get(), CBioseq_set_Base::GetAnnot(), CPlaceId::GetBioseq_setId(), CScope::GetBioseqHandle(), CBioseq_set_Base::GetClass(), CBioseq_set_Base::GetColl(), CBioseq_set_Base::GetDate(), CBioseq_set_Base::GetDescr(), CObject_id_Base::GetId(), CBioseq_set_Base::GetId(), CBioseq_set_Base::GetLevel(), CBioseq_set_Base::GetRelease(), CSeq_entry_Base::GetSeq(), CBioseq_set_Base::GetSeq_set(), CBioseq_Handle::GetSeqMap(), info, CPlaceId::IsBioseq_set(), CObject_id_Base::IsId(), CBioseq_set_Base::IsSetClass(), CBioseq_set_Base::IsSetColl(), CBioseq_set_Base::IsSetDate(), CBioseq_set_Base::IsSetDescr(), CBioseq_set_Base::IsSetId(), CBioseq_set_Base::IsSetLevel(), CBioseq_set_Base::IsSetRelease(), ITERATE, kInvalidSeqPos, SSplitterParams::m_DisableSplitAnnotations, SSplitterParams::m_DisableSplitDescriptions, m_Entries, m_Master, m_NextBioseq_set_Id, m_Params, m_Scope, SSplitterParams::m_SplitWholeBioseqs, NonConst(), prev(), Ref(), CBioseq_set_Base::Reset(), REVERSE_ITERATE, CBioseq_set_Base::SetAnnot(), CBioseq_set_Base::SetClass(), CBioseq_set_Base::SetColl(), CBioseq_set_Base::SetDate(), CBioseq_set_Base::SetDescr(), CBioseq_set_Base::SetId(), CBioseq_set_Base::SetLevel(), CBioseq_set_Base::SetRelease(), CBioseq_set_Base::SetSeq_set(), SplitBioseq(), and CSeq_entry_Base::Which().

◆ CopySkeleton() [3/3]

void CBlobSplitterImpl::CopySkeleton ( CSeq_entry dst,
const CSeq_entry src 
)

◆ CountAnnotObjects() [1/4]

size_t CBlobSplitterImpl::CountAnnotObjects ( const CID2S_Chunk chunk)
static

◆ CountAnnotObjects() [2/4]

static size_t CBlobSplitterImpl::CountAnnotObjects ( const CSeq_annot annot)
static

Referenced by CountAnnotObjects().

◆ CountAnnotObjects() [3/4]

size_t CBlobSplitterImpl::CountAnnotObjects ( const CSeq_entry entry)
static

◆ CountAnnotObjects() [4/4]

size_t CBlobSplitterImpl::CountAnnotObjects ( const TID2Chunks chunks)
static

Definition at line 1264 of file blob_splitter_maker.cpp.

References CountAnnotObjects(), and ITERATE.

◆ GetBlob()

const CSplitBlob& CBlobSplitterImpl::GetBlob ( void  ) const
inline

Definition at line 111 of file blob_splitter_impl.hpp.

References m_SplitBlob.

◆ GetChunkData()

CID2S_Chunk_Data & CBlobSplitterImpl::GetChunkData ( TChunkData chunk_data,
const CPlaceId place_id 
)

◆ GetLength() [1/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CDelta_ext src) const

Definition at line 165 of file blob_splitter_parser.cpp.

References CDelta_ext_Base::Get(), GetLength(), and ITERATE.

◆ GetLength() [2/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CDelta_seq src) const

◆ GetLength() [3/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CSeq_data src) const

◆ GetLength() [4/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CSeq_ext src) const

Definition at line 175 of file blob_splitter_parser.cpp.

References CSeq_ext_Base::GetDelta(), and GetLength().

◆ GetLength() [5/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CSeq_id_Handle id) const

◆ GetLength() [6/6]

TSeqPos CBlobSplitterImpl::GetLength ( const CSeq_inst src) const

◆ GetMaster()

const CMasterSeqSegments* CBlobSplitterImpl::GetMaster ( void  ) const
inline

Definition at line 192 of file blob_splitter_impl.hpp.

References CRef< C, Locker >::GetPointerOrNull(), and m_Master.

◆ IsWhole()

bool CBlobSplitterImpl::IsWhole ( const CSeq_id_Handle id,
const TRange range 
) const

Definition at line 708 of file blob_splitter_maker.cpp.

References GetLength(), and compile_time_bits::range().

Referenced by SetLoc().

◆ MakeBioseq_setIds()

CRef< CID2S_Bioseq_set_Ids > CBlobSplitterImpl::MakeBioseq_setIds ( const set< int > &  ids) const

Definition at line 863 of file blob_splitter_maker.cpp.

Referenced by MakeID2Chunk().

◆ MakeBioseqIds()

CRef< CID2S_Bioseq_Ids > CBlobSplitterImpl::MakeBioseqIds ( const set< CSeq_id_Handle > &  ids) const

Definition at line 854 of file blob_splitter_maker.cpp.

Referenced by MakeID2Chunk().

◆ MakeID2Chunk()

void CBlobSplitterImpl::MakeID2Chunk ( TChunkId  id,
const SChunkInfo info 
)

Definition at line 871 of file blob_splitter_maker.cpp.

References _ASSERT, CHandleRangeMap::AddRange(), data, CSeqdesc_Base::e_MaxChoice, CHandleRangeMap::empty(), eNa_strand_unknown, CSeq_descr_Base::Get(), CPlaceId::GetBioseqId(), GetChunkData(), CSeq_annot_Base::GetData(), CSeq_annot_Base::C_Data::GetFtable(), CSeq_id_Handle::GetHandle(), CBioseq_Base::GetId(), CSeq_annot_SplitInfo::GetName(), CAnnotName::GetName(), i, info, CPlaceId::IsBioseq(), CPlaceId::IsBioseq_set(), CSeq_annot_Base::C_Data::IsFtable(), CAnnotName::IsNamed(), ITERATE, kInvalidSeqPos, literal(), m_ID2_Chunks, m_Split_Info, MakeBioseq_setIds(), MakeBioseqIds(), MakeLoc(), MakeSeq_annot(), NON_CONST_ITERATE, compile_time_bits::range(), Ref(), CRef< C, Locker >::Reset(), CSeq_descr_Base::Set(), CID2S_Seq_annot_Info_Base::SetAlign(), CID2S_Chunk_Data_Base::SetAnnots(), CID2S_Chunk_Data_Base::SetAssembly(), CID2S_Seq_annot_place_Info_Base::SetBioseq_sets(), CID2S_Seq_descr_Info_Base::SetBioseq_sets(), CID2S_Seq_annot_place_Info_Base::SetBioseqs(), CID2S_Seq_assembly_Info_Base::SetBioseqs(), CID2S_Seq_descr_Info_Base::SetBioseqs(), CID2S_Chunk_Data_Base::SetBioseqs(), CID2S_Split_Info_Base::SetChunks(), CID2S_Chunk_Base::SetData(), CID2S_Chunk_Data_Base::SetDescr(), CID2S_Seq_annot_Info_Base::SetFeat(), CID2S_Seq_annot_Info_Base::SetGraph(), SetLoc(), CID2S_Seq_annot_Info_Base::SetName(), CID2S_Chunk_Data_Base::SetSeq_data(), CID2S_Seq_annot_Info_Base::SetSeq_loc(), CID2S_Seq_descr_Info_Base::SetType_mask(), and types.

Referenced by MakeID2SObjects().

◆ MakeID2SObjects()

void CBlobSplitterImpl::MakeID2SObjects ( void  )

◆ MakeLoc() [1/2]

CRef< CID2S_Seq_loc > CBlobSplitterImpl::MakeLoc ( const CSeq_id_Handle id,
const TRange range 
) const

Definition at line 824 of file blob_splitter_maker.cpp.

References compile_time_bits::range(), and SetLoc().

◆ MakeLoc() [2/2]

CRef< CID2S_Seq_loc > CBlobSplitterImpl::MakeLoc ( const CSeqsRange range) const

Definition at line 815 of file blob_splitter_maker.cpp.

References compile_time_bits::range(), and SetLoc().

Referenced by MakeID2Chunk().

◆ MakeSeq_annot()

CRef< CSeq_annot > CBlobSplitterImpl::MakeSeq_annot ( const CSeq_annot src,
const TAnnotObjects objs 
)

◆ NextChunk() [1/2]

SChunkInfo * CBlobSplitterImpl::NextChunk ( SChunkInfo chunk,
const CSize size 
)

◆ NextChunk() [2/2]

SChunkInfo * CBlobSplitterImpl::NextChunk ( void  )

◆ Reset()

void CBlobSplitterImpl::Reset ( void  )

◆ SetLoc() [1/3]

void CBlobSplitterImpl::SetLoc ( CID2S_Seq_loc loc,
const CHandleRangeMap ranges 
) const

◆ SetLoc() [2/3]

void CBlobSplitterImpl::SetLoc ( CID2S_Seq_loc loc,
const CSeq_id_Handle id,
TRange  range 
) const

◆ SetLoc() [3/3]

void CBlobSplitterImpl::SetLoc ( CID2S_Seq_loc loc,
const CSeqsRange ranges 
) const

◆ Split()

bool CBlobSplitterImpl::Split ( const CSeq_entry entry)

◆ SplitBioseq()

bool CBlobSplitterImpl::SplitBioseq ( CPlace_SplitInfo place_info,
const CBioseq bioseq 
)

◆ SplitPieces() [1/2]

void CBlobSplitterImpl::SplitPieces ( CAnnotPieces pieces)

◆ SplitPieces() [2/2]

void CBlobSplitterImpl::SplitPieces ( void  )

Member Data Documentation

◆ m_Chunks

TChunks CBlobSplitterImpl::m_Chunks
private

◆ m_Entries

TEntries CBlobSplitterImpl::m_Entries
private

Definition at line 210 of file blob_splitter_impl.hpp.

Referenced by AttachToSkeleton(), CollectPieces(), CopySkeleton(), and Reset().

◆ m_ID2_Chunks

TID2Chunks CBlobSplitterImpl::m_ID2_Chunks
private

Definition at line 206 of file blob_splitter_impl.hpp.

Referenced by MakeID2Chunk(), and MakeID2SObjects().

◆ m_Master

CRef<CMasterSeqSegments> CBlobSplitterImpl::m_Master
private

Definition at line 217 of file blob_splitter_impl.hpp.

Referenced by CopySkeleton(), GetMaster(), and Reset().

◆ m_NextBioseq_set_Id

int CBlobSplitterImpl::m_NextBioseq_set_Id
private

Definition at line 208 of file blob_splitter_impl.hpp.

Referenced by CopySkeleton(), and Reset().

◆ m_Params

SSplitterParams CBlobSplitterImpl::m_Params
private

◆ m_Pieces

TPieces CBlobSplitterImpl::m_Pieces
private

Definition at line 212 of file blob_splitter_impl.hpp.

Referenced by Add(), CollectPieces(), Reset(), Split(), and SplitPieces().

◆ m_Scope

CRef<CScope> CBlobSplitterImpl::m_Scope
private

Definition at line 216 of file blob_splitter_impl.hpp.

Referenced by CopySkeleton(), GetLength(), Reset(), and Split().

◆ m_Skeleton

CRef<CSeq_entry> CBlobSplitterImpl::m_Skeleton
private

Definition at line 204 of file blob_splitter_impl.hpp.

Referenced by CopySkeleton(), MakeID2SObjects(), Reset(), and Split().

◆ m_Split_Info

CRef<CID2S_Split_Info> CBlobSplitterImpl::m_Split_Info
private

Definition at line 205 of file blob_splitter_impl.hpp.

Referenced by MakeID2Chunk(), and MakeID2SObjects().

◆ m_SplitBlob

CSplitBlob CBlobSplitterImpl::m_SplitBlob
private

Definition at line 201 of file blob_splitter_impl.hpp.

Referenced by GetBlob(), MakeID2SObjects(), Reset(), and Split().


The documentation for this class was generated from the following files:
Modified on Mon May 20 05:05:27 2024 by modify_doxy.py rev. 669887