m_BioseqChunks(
info.m_BioseqChunks),
77 info.x_UpdateComplete();
111(*it)->x_DSAttach(ds);
120(*it)->x_DSDetach(ds);
129ds.
x_Map(obj,
this);
152(*it)->x_TSEAttach(tse);
161(*it)->x_TSEDetach(tse);
178 if( (*it)->x_GetObject().GetParentEntry() != &entry ) {
184TSeq_set::const_iterator it2 =
m_Seq_set.begin();
188 _ASSERT(&(*it2)->x_GetObject() == *it);
189 _ASSERT((*it)->GetParentEntry() == &entry);
200(*it)->x_GetObject().ResetParentEntry();
228CBioseq_set::TSeq_set::const_iterator it2 = seq_set.begin();
231(*it)->x_UpdateCore();
237 _ASSERT(it2->GetPointer() == &(*it)->x_GetObject());
274 if(
info.IsSetSeq_set() ) {
281 if(
info.IsSetAnnot() ) {
291obj->SetId(
const_cast<TId&
>(src.
GetId()));
324 if( object_id.
Which() == object_id.
e_Id) {
325ret = object_id.
GetId();
398 if(
size_t(index) >=
m_Seq_set.size() ) {
399obj_seq_set.push_back(obj);
403CBioseq_set::TSeq_set::iterator obj_it = obj_seq_set.begin();
404 for(
int i= 0;
i< index; ++
i) {
407obj_seq_set.insert(obj_it, obj);
419 if( &
info->GetParentBioseq_set_Info() !=
this) {
421 "CBioseq_set_Info::x_RemoveEntry: " 427TSeq_set::iterator info_it =
429CBioseq_set::TSeq_set::iterator obj_it =
430find(obj_seq_set.begin(), obj_seq_set.end(), obj);
433 _ASSERT(obj_it != obj_seq_set.end());
438obj_seq_set.erase(obj_it);
467CBioseq_set::TSeq_set::iterator insert_iter = obj_seq_set.end();
472 if( chunk_iter->first > chunk_id ) {
473seq_index -= chunk_iter->second.count;
474insert_iter = chunk_iter->second.first_iter;
477 _ASSERT(
m_Seq_set[seq_index]->GetSeq_entryCore() == *chunk_iter->second.first_iter);
484 size_tinsert_count = bioseqs.size();
487 for(
auto&
i: bioseqs ) {
489entry->
SetSeq(
i.GetNCObject());
491CBioseq_set::TSeq_set::iterator added_iter = obj_seq_set.insert(insert_iter, entry);
492 if( seq_set.
count++ == 0 ) {
504 const intkOrderNa = 0;
505 const intkOrderNonNa = 1;
506 boolhas_na =
false;
507 boolhas_non_na =
false;
508 for(
auto&
i: bioseqs ) {
509 if(
i->GetInst().IsNa() ) {
522 if( has_na && has_non_na ) {
524list< CRef<CBioseq> > na_bioseqs, non_na_bioseqs;
525 for(
auto&
i: bioseqs ) {
526(
i->GetInst().IsNa()? na_bioseqs: non_na_bioseqs).push_back(
i);
539 _ASSERT(!entry->HasParent_Info());
540entry->x_ParentAttach(*
this);
541 _ASSERT(&entry->GetParentBioseq_set_Info() ==
this);
548 _ASSERT(&entry->GetParentBioseq_set_Info() ==
this);
550entry->x_ParentDetach(*
this);
551 _ASSERT(!entry->HasParent_Info());
virtual void x_ParentAttach(CSeq_entry_Info &parent)
virtual void x_TSEAttachContents(CTSE_Info &tse)
virtual void x_TSEDetachContents(CTSE_Info &tse)
virtual void x_ParentDetach(CSeq_entry_Info &parent)
virtual void x_DSDetachContents(CDataSource &ds)
void x_DoUpdate(TNeedUpdateFlags flags)
virtual void x_DSAttachContents(CDataSource &ds)
void x_UpdateAnnotIndexContents(CTSE_Info &tse)
TObjAnnot & x_SetObjAnnot(void)
void x_ParentAttach(CSeq_entry_Info &parent)
virtual ~CBioseq_set_Info(void)
const TDescr & x_GetDescr(void) const
const TChunkIds & x_GetBioseqChunkIds() const
virtual void x_TSEAttachContents(CTSE_Info &tse)
void x_DSAttachContents(void)
void RemoveEntry(CRef< CSeq_entry_Info > entry)
void x_ParentDetach(CSeq_entry_Info &parent)
CConstRef< TObject > GetBioseq_setCore(void) const
virtual void x_UpdateAnnotIndexContents(CTSE_Info &tse)
void x_AddBioseqChunkId(TChunkId chunk_id)
CConstRef< TObject > GetCompleteBioseq_set(void) const
TChunkSeqSets m_ChunkSeqSets
bool x_IsSetDescr(void) const
int GetEntryIndex(const CSeq_entry_Info &entry) const
bool x_CanGetDescr(void) const
static CRef< TObject > sx_ShallowCopy(const TObject &obj)
void x_DoUpdate(TNeedUpdateFlags flags)
void UpdateAnnotIndex(void) const
void x_AttachEntry(CRef< CSeq_entry_Info > info)
void x_DetachEntry(CRef< CSeq_entry_Info > info)
void x_SetObject(TObject &obj)
void x_SetChunkBioseqs2(const list< CRef< CBioseq > > &bioseqs, TChunkSeqSetsKey key)
CRef< CSeq_entry_Info > AddEntry(CSeq_entry &entry, int index, bool set_uniqid=false)
vector< CRef< CSeq_entry_Info > > TSeq_set
void x_DSUnmapObject(CConstRef< TObject > obj, CDataSource &ds)
pair< int, TChunkId > TChunkSeqSetsKey
void x_ResetObjAnnot(void)
friend class CSeq_entry_Info
void x_DSMapObject(CConstRef< TObject > obj, CDataSource &ds)
TDescr & x_SetDescr(void)
void x_DSDetachContents(void)
virtual void x_TSEDetachContents(CTSE_Info &tse)
int x_GetBioseq_set_Id(const CObject_id &object_id)
void x_SetChunkBioseqs(const list< CRef< CBioseq > > &bioseqs, int chunk_id)
CConstRef< CSeq_entry_Info > GetFirstEntry(void) const
const TId & GetId(void) const
void x_Unmap(const CObject *obj, const CTSE_Info_Object *info)
void x_Map(const CObject *obj, const CTSE_Info_Object *info)
Base class for all object manager exceptions.
@Seq_descr.hpp User-defined methods of the data storage class.
TObject & x_GetObject(void)
void ParentizeOneLevel(void)
void x_UpdateCore(void) const
virtual void SetBioObjectId(const CBioObjectId &id)
void x_SetNeedUpdate(TNeedUpdateFlags flags)
CDataSource & GetDataSource(void) const
void x_LoadChunks(const TChunkIds &chunk_ids) const
void x_DetachObject(CTSE_Info_Object &object)
bool HasDataSource(void) const
@ fNeedUpdate_children
all fields of children objects
const CTSE_Info & GetTSE_Info(void) const
bool x_DirtyAnnotIndex(void) const
void x_UpdateComplete(void) const
void x_AttachObject(CTSE_Info_Object &object)
vector< TChunkId > TChunkIds
@ kNeedUpdate_bits
number of bits for fields
void UpdateAnnotIndex(const CSeq_id_Handle &id) const
void x_SetBioseq_setId(int key, CBioseq_set_Info *info)
void x_ResetBioseq_setId(int key, CBioseq_set_Info *info)
CBioObjectId x_IndexBioseq_set(CBioseq_set_Info *)
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
E_Choice Which(void) const
Which variant is currently selected.
TId GetId(void) const
Get the variant data.
bool IsSetClass(void) const
Check if a value has been assigned to Class data member.
const TDescr & GetDescr(void) const
Get the Descr member data.
TSet & SetSet(void)
Select the variant.
bool IsSetColl(void) const
to identify a collection Check if a value has been assigned to Coll data member.
TClass GetClass(void) const
Get the Class member data.
bool IsSetDate(void) const
Check if a value has been assigned to Date data member.
bool IsSetRelease(void) const
Check if a value has been assigned to Release data member.
const TSet & GetSet(void) const
Get the variant data.
bool IsSetAnnot(void) const
Check if a value has been assigned to Annot data member.
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
const TRelease & GetRelease(void) const
Get the Release member data.
bool IsSetLevel(void) const
nesting level Check if a value has been assigned to Level data member.
bool IsSetDescr(void) const
Check if a value has been assigned to Descr data member.
const TDate & GetDate(void) const
Get the Date member data.
list< CRef< CSeq_annot > > TAnnot
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
const TAnnot & GetAnnot(void) const
Get the Annot member data.
const TColl & GetColl(void) const
Get the Coll member data.
list< CRef< CSeq_entry > > TSeq_set
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
const TId & GetId(void) const
Get the Id member data.
TLevel GetLevel(void) const
Get the Level member data.
const Tdata & Get(void) const
Get the member data.
double value_type
The numeric datatype used by the parser.
CBioseq_set::TSeq_set::iterator first_iter
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4