id_list.
find(h2) != id_list.
end();
130 if( old_id.
IsStr() ) {
168 switch(old_id.
Which()) {
223 if(
info->IsLocked() ) {
281 size_t size= s.capacity();
283 if(
size+
sizeof(
void*) >
sizeof(
string) ) {
346 "uninitialized seq-id");
360 "uninitialized seq-id");
370 out<<
"virtual, no memory"<< endl;
418pair<TIntMap::iterator, bool> ins =
441 value= NStr::StringToNumeric<TPacked>(sid);
459 size_ttotal_bytes = 0;
465elem_size =
sizeof(
int)+
sizeof(
void*);
466elem_size +=
sizeof(
int)+3*
sizeof(
void*);
468elem_size +=
sizeof(
CSeq_id);
473 size_tbytes =
count*elem_size+extra_size;
474total_bytes += bytes;
476 out<<
count<<
" handles, "<<bytes<<
" bytes"<< endl;
480 out<<
" "<< it->second->GetSeqId()->AsFastaString() << endl;
498 return id.IsGibbsq();
520 return id.IsGibbmt();
545 #if defined NCBI_SLOW_ATOMIC_SWAP 552 const_cast<TThis*
>(
this)->
m_Seq_id= ret;
660gi = NStr::StringToNumeric<TPacked>(sid);
681 out<<
"virtual, small constant memory";
698 return value->Get();
707 return value->Get();
713 char* start = &
str[pos];
714 char* ptr = start +
len;
716*--ptr = (char)(
'0'+
number% 10);
719 while( ptr > start ) {
728 for(
size_t i= pos;
i< pos+
len; ++
i) {
739 for(
size_t i= 0; variant &&
i!=
len; ++
i) {
767pair<CSeq_id_Handle::TVariant, CSeq_id_Handle::TVariant>
772 for(
size_t i= 0; bit &&
i!= ref.
size(); ++
i) {
773 intcr =
Uint1(ref[
i]);
785 returnmake_pair(variant, bit);
790pair<CSeq_id_Handle::TVariant, CSeq_id_Handle::TVariant>
829 size_t len= acc.size(), prefix_len =
len, most_significant =
NPOS;
830 while( prefix_len ) {
831 charc = acc[--prefix_len];
832 if( c >=
'1'&& c <=
'9') {
833most_significant = prefix_len;
835 else if( c !=
'0') {
840 if( most_significant ==
NPOS) {
843 size_tacc_digits =
len- prefix_len, real_digits =
len- most_significant;
844 if( acc_digits < 2 || acc_digits > 12 ||
845real_digits > 9 || acc_digits*2 < prefix_len ) {
848 if( prefix_len <= 4 ) {
851 else if( prefix_len == 3 ) {
852 if( (acc[0] !=
'N'&& acc[0] !=
'Y') ||
853(acc[1] !=
'P'&& acc[1] !=
'C') ||
861 if( acc_digits > 6 && real_digits < acc_digits ) {
862acc_digits =
max(
size_t(6), real_digits);
863prefix_len =
len- acc_digits;
865 if( prefix_len >
key.kMaxPrefixLen ) {
868 key.m_PrefixLen =
Uint1(prefix_len);
869memcpy(
key.m_PrefixBuf, acc.data(), prefix_len);
871 for(
size_t i= 0;
i< 3 &&
i< prefix_len; ++
i) {
874 hash= (
hash<< 8) |
unsigned(acc_digits << 1);
877 key.SetVersion(*ver);
893 if( !
id.IsSetAccession() ) {
895 string& acc =
id.SetAccession();
948 #if defined NCBI_SLOW_ATOMIC_SWAP 955 const_cast<TThis*
>(
this)->
m_Seq_id= ret;
976 stringthis_acc, other_acc;
979pother->RestoreAccession(other_acc, h_other.
GetPacked(), 0);
983 if(
intvdiff =
IsSetVersion() - pother->IsSetVersion()) {
987 _ASSERT(pother->IsSetVersion());
1015 if( !
id.IsSetAccession() ) {
1054 return x_Check(
id.Which());
1101 const string&
str,
1152 return CSeq_id_Handle(it->second, packed, it->first.ParseCaseVariant(acc));
1181variant = it->first.ParseCaseVariant(acc);
1201variant =
info->ParseCaseVariant(tid);
1208 const string&
key,
1214 if( it->second ==
info) {
1215str_map.
erase(it);
1247 returnrelease ==
"reviewed"|| release ==
"unreviewed";
1257 if(
key.IsSetVersion() ) {
1271 if( it->first.EqualAcc(
key) ) {
1272 if( packed == 0 ) {
1311 if(
key.IsSetVersion() ) {
1313 key.ResetVersion();
1356 const string& name,
1441 auto type=
id.Which();
1447 if(
id.IsPacked() ) {
1456 info->Restore(tid,
id.GetPacked(),
id.GetVariant());
1469 if( !
info->IsSetVersion() ) {
1475 if( it->first.EqualAcc(
key) ) {
1483!
info->IsSetVersion() &&
1486 info->RestoreAccession(acc,
id.GetPacked(), 0);
1518 if( dot !=
NPOS) {
1519 stringacc = sid.substr(0, dot);
1541 if(
id.IsPacked() ) {
1544 if( !
info->IsSetVersion() ) {
1569 intversion1, version2;
1571(!
x_GetVersion(version2, h2) || version1 > version2);
1584 boolmine =
x_Check(
id.Which());
1588 if(
id.IsPacked() ) {
1598 if(
info->IsSetVersion() ) {
1600 key.ResetVersion();
1609 info->RestoreAccession(acc,
id.GetPacked(),
id.GetVariant());
1611(id_list, acc,
info->IsSetVersion()? &
info->GetVersion(): 0);
1619 if(
true|| !mine ) {
1637 size_ttotal_bytes = 0;
1643 size_telem_size = 0, extra_size = 0;
1645elem_size =
sizeof(
string)+
sizeof(
void*);
1646elem_size +=
sizeof(
int)+3*
sizeof(
void*);
1648elem_size +=
sizeof(
CSeq_id);
1657 if(
id.IsSetName() ) {
1660 if(
id.IsSetRelease() ) {
1665 size_tbytes = extra_size +
size*elem_size;
1666total_bytes += bytes;
1668 out<<
" "<<
size<<
" handles, "<<bytes<<
" bytes"<<endl;
1674elem_size =
sizeof(
TPackedKey)+
sizeof(
void*);
1675elem_size +=
sizeof(
int)+3*
sizeof(
void*);
1684 size_tbytes = extra_size +
size*elem_size;
1685total_bytes += bytes;
1687 out<<
" "<<
size<<
" packed handles, "<<bytes<<
" bytes"<<endl;
1693 out<<
" "<<
id->AsFastaString() << endl;
1696 out<<
" packed prefix " 1697<< it->first.GetAccPrefix()<<
"."<<it->first.m_Version << endl;
1847 if(
str.empty() ) {
1850 charfirst_char =
str[0];
1851 if( first_char !=
'-'&& (first_char < '0' || first_char >
'9') ) {
1862 if(
str.size() != 1 ) {
1870 else if(
value> 0 ) {
1872 if( first_char ==
'0'|| first_char ==
'+') {
1882 if( first_char !=
'-'||
str[1] ==
'0') {
1927 if( !oid.
IsStr() ) {
1956TByStr::const_iterator it =
m_ByStr.find(
str);
1978 if( oid.
IsStr() ) {
2008variant =
info->ParseCaseVariant(oid);
2020 if( oid.
IsStr() ) {
2023 else if( oid.
IsId() ) {
2046 if( sinfo->
IsId() ) {
2072 if( has_matching_id ) {
2084 size_ttotal_bytes = 0;
2089 size_t size=
m_ByStr.size(), elem_size = 0, extra_size = 0;
2091elem_size =
sizeof(
string)+
sizeof(
void*);
2092elem_size +=
sizeof(
int)+3*
sizeof(
void*);
2094elem_size +=
sizeof(
CSeq_id);
2103 size_tbytes = extra_size +
size*elem_size;
2104total_bytes += bytes;
2106 out<<
" "<<
size<<
" str handles, "<<bytes<<
" bytes"<< endl;
2112elem_size =
sizeof(
int)+
sizeof(
void*);
2113elem_size +=
sizeof(
int)+3*
sizeof(
void*);
2115elem_size +=
sizeof(
CSeq_id);
2121 size_tbytes =
size*elem_size;
2122total_bytes += bytes;
2124 out<<
" "<<
size<<
" int handles, "<<bytes<<
" bytes"<< endl;
2129 out<<
" "<< it->second->GetSeqId()->AsFastaString() << endl;
2132 out<<
" "<< it->second->GetSeqId()->AsFastaString() << endl;
2195 #if defined NCBI_SLOW_ATOMIC_SWAP 2202 const_cast<TThis*
>(
this)->
m_Seq_id= ret;
2226 returnid_this < id_other? -1: id_this > id_other;
2258 returnt1.first | t2.first | t3.first;
2268 size_t len=
str.size(), prefix_len =
len, str_digits = 0;
2270 size_tcur_digits = 0, total_digits = 0;
2272 charc = --
i< 0? 0:
str[
i];
2273 if( c >=
'0'&& c <=
'9') {
2278 if( !str_digits || cur_digits > str_digits+2 ) {
2279str_digits = cur_digits;
2285 if( str_digits > 9 ) {
2286prefix_len += str_digits - 9;
2287total_digits += str_digits - 9;
2290 if( str_digits*3 < total_digits*2 ) {
2295 if( prefix_len > 0 ) {
2296 key.m_StrPrefix =
str.substr(0, prefix_len);
2298 if( prefix_len + str_digits <
str.size() ) {
2299 key.m_StrSuffix =
str.substr(prefix_len+str_digits);
2314 for(
size_t i= 0;
i< 3 &&
i< prefix_len; ++
i) {
2329 key.m_StrPrefix.size(),
2330 key.GetStrDigits());
2344 if( !obj_id.
IsStr() ) {
2371 #if defined NCBI_SLOW_ATOMIC_SWAP 2378 const_cast<TThis*
>(
this)->
m_Seq_id= ret;
2399 if(param < 0) ++param;
2461 returnt1.first | t2.first;
2472 CDbtag& dbtag =
id->SetGeneral();
2511 const STagMap& tm = db->second;
2513 if( oid.
IsStr() ) {
2514STagMap::TByStr::const_iterator it = tm.
m_ByStr.find(oid.
GetStr());
2515 if(it != tm.
m_ByStr.end()) {
2519 else if( oid.
IsId() ) {
2536 const CDbtag& dbid =
id.GetGeneral();
2549 return CSeq_id_Handle(it->second, packed, it->first.ParseCaseVariant(dbid));
2555 const string&
key= dbid.
GetDb();
2557 if( packed == 0 ) {
2581 const CDbtag& dbid =
id.GetGeneral();
2608 const string&
key= dbid.
GetDb();
2636 if( oid.
IsStr() ) {
2641 else if( oid.
IsId() ) {
2648 "Can not create index for an empty db-tag");
2652variant =
info->ParseCaseVariant(dbid);
2679 const CDbtag& dbid =
id->GetGeneral();
2685 if( oid.
IsStr() ) {
2688 else if( oid.
IsId() ) {
2739 if( obj_id.
IsId() ) {
2740 int n= obj_id.
GetId();
2753 const string& s = obj_id.
GetStr();
2775 value= NStr::StringToNumeric<TPacked>(sid);
2786STagMap::TByStr::const_iterator str_it =
2787db_it->second.m_ByStr.find(sid);
2788 if(str_it != db_it->second.m_ByStr.end()) {
2793db_it->second.m_ById.find(
value);
2794 if(int_it != db_it->second.m_ById.end()) {
2806 size_ttotal_bytes = 0;
2811 size_t count= 0, bytes = 0;
2814bytes +=
sizeof(
int)+3*
sizeof(
void*);
2821bytes +=
sizeof(it2->first)+
sizeof(it2->second);
2822bytes +=
sizeof(
int)+3*
sizeof(
void*);
2830bytes +=
sizeof(it2->first)+
sizeof(it2->second);
2831bytes +=
sizeof(
int)+3*
sizeof(
void*);
2839total_bytes += bytes;
2841 out<<
" "<<
count<<
" handles, "<<bytes<<
" bytes"<< endl;
2848elem_size +=
sizeof(
int)+3*
sizeof(
void*);
2857 size_tbytes = extra_size +
count*elem_size;
2858total_bytes += bytes;
2860 out<<
" "<<
count<<
" packed int handles, "<<bytes<<
" bytes"<< endl;
2867elem_size +=
sizeof(
int)+3*
sizeof(
void*);
2878 size_tbytes = extra_size +
count*elem_size;
2879total_bytes += bytes;
2881 out<<
" "<<
count<<
" packed str handles, "<<bytes<<
" bytes"<< endl;
2887 out<<
" "<<it2->second->GetSeqId()->AsFastaString() << endl;
2890 out<<
" "<<it2->second->GetSeqId()->AsFastaString() << endl;
2894 out<<
" packed int "<<it->first << endl;
2897 out<<
" packed str "<<it->first.m_Key<<
"/"<<it->first.m_Db<<
"/" 2898<<it->first.m_StrPrefix<<
"/"<<it->first.m_StrSuffix << endl;
2935 if( !gid.
Equals(gid2) ) {
2977 if(*dbr_it ==
info) {
2978giims.erase(dbr_it);
2982 if( giims.empty() )
3011 size_ttotal_bytes = 0;
3015 size_t count= 0, bytes = 0;
3017bytes +=
sizeof(it->first) +
sizeof(it->second);
3018bytes +=
sizeof(
int)+3*
sizeof(
void*);
3022 size_tsize2 = it->second.size();
3024bytes += it->second.capacity()*
sizeof(
void*);
3026bytes += size2*
sizeof(
CSeq_id);
3029 const CGiimport_id&
id= (*it2)->GetSeqId()->GetGiim();
3030 if(
id.IsSetDb() ) {
3033 if(
id.IsSetRelease() ) {
3038total_bytes += bytes;
3040 out<<
count<<
" handles, "<<bytes<<
" bytes"<< endl;
3045 out<<
" "<<(*it2)->GetSeqId()->AsFastaString() << endl;
3085by_number = &cntry_it->second.m_ByNumber;
3089by_number = &cntry_it->second.m_ByApp_number;
3096 if(num_it == by_number->
end())
3099num_it->second.find(pid.
GetSeqid());
3100 if(seqid_it != num_it->second.end()) {
3101 returnseqid_it->second;
3142 "Cannot index empty patent number");
3164num_it->second.find(pid.
GetSeqid());
3165 _ASSERT(seqid_it != num_it->second.end());
3167num_it->second.erase(seqid_it);
3168 if( num_it->second.empty() )
3176app_it->second.find(pid.
GetSeqid());
3177 _ASSERT(seqid_it != app_it->second.end());
3179app_it->second.erase(seqid_it);
3180 if( app_it->second.empty() )
3183 if(country_it->second.m_ByNumber.empty() &&
3184country_it->second.m_ByApp_number.empty())
3195cit->second.m_ByNumber.find(sid);
3196 if(nit != cit->second.m_ByNumber.end()) {
3202cit->second.m_ByApp_number.find(sid);
3203 if(ait != cit->second.m_ByApp_number.end()) {
3216 size_ttotal_bytes = 0;
3220 size_t count= 0, bytes = 0;
3222bytes +=
sizeof(it->first) +
sizeof(it->second);
3223bytes +=
sizeof(
int)+3*
sizeof(
void*);
3229bytes +=
sizeof(it2->first) +
sizeof(it2->second);
3230bytes +=
sizeof(
int)+3*
sizeof(
void*);
3237bytes +=
sizeof(it2->first) +
sizeof(it2->second);
3238bytes +=
sizeof(
int)+3*
sizeof(
void*);
3249total_bytes += bytes;
3251 out<<
count<<
" handles, "<<bytes<<
" bytes"<< endl;
3257 out<<
" "<<it3->second->GetSeqId()->AsFastaString() << endl;
3314 if( variant & kMolLowerCaseMask ) {
3315 string& mol = pdb_id.
SetMol().Set();
3321variant &= ~kMolLowerCaseMask;
3390 intyear = date_std.
GetYear();
3410pair<CConstRef<CSeq_id>,
TVariant> ret(
Ref(&seq_id), 0);
3415 if( date.
IsStd() ) {
3418 if( !ret.second ) {
3424 boolnormal_has_chain =
3426 boolnormal_has_chain_id =
3437 if( need_upcase ) {
3438 string& mol = new_pdb_id.
SetMol().Set();
3440 charc = mol[
i+1];
3447 if( normal_has_chain_id ) {
3455 if( normal_has_chain ) {
3461ret.first = new_seq_id;
3471 stringskey =
id.GetMol().Get();
3472 if(
id.IsSetChain_id()) {
3474skey +=
id.GetChain_id();
3476 else if(
id.IsSetChain()) {
3478skey += char(
id.GetChain());
3488 const CPDB_seq_id& pid = normalized_id.first->GetPdb();
3493 if( pid.
Equals((*it)->GetSeqId()->GetPdb()) ) {
3506 const CPDB_seq_id& pid = normalized_id.first->GetPdb();
3510 if( pid.
Equals((*it)->GetSeqId()->GetPdb()) ) {
3514 if( normalized_id.first == &
id) {
3518normalized_id.first = id_ref;
3521sub.push_back(
info);
3537mol_it->second.erase(it);
3541 if( mol_it->second.empty() )
3563 const CPDB_seq_id& pid2 = (*it)->GetSeqId()->GetPdb();
3609 const CPDB_seq_id& pid2 = (*it)->GetSeqId()->GetPdb();
3622 size_ttotal_bytes = 0;
3626 size_t count= 0, bytes = 0;
3628bytes +=
sizeof(it->first) +
sizeof(it->second);
3629bytes +=
sizeof(
int)+3*
sizeof(
void*);
3634 size_tsize2 = it->second.size();
3636bytes += it->second.capacity()*
sizeof(
void*);
3638bytes += size2*
sizeof(
CSeq_id);
3641 const CPDB_seq_id&
id= (*it2)->GetSeqId()->GetPdb();
3642 if(
id.IsSetRel() ) {
3643bytes +=
sizeof(
CDate);
3648total_bytes += bytes;
3650 out<<
count<<
" handles, "<<bytes<<
" bytes"<< endl;
3655 out<<
" "<<(*it2)->GetSeqId()->AsFastaString() << endl;
CSeq_id_GB_Tree(CSeq_id_Mapper *mapper)
virtual bool x_Check(const CSeq_id::E_Choice &type) const
int CompareOrdered(const CSeq_id_Info &other, const CSeq_id_Handle &h_this, const CSeq_id_Handle &h_other) const override
const string & GetDbtag(void) const
~CSeq_id_General_Id_Info(void)
static TPacked Pack(const TKey &key, const CDbtag &id)
CSeq_id_General_Id_Info(CSeq_id_Mapper *mapper, const TKey &key)
const TKey & GetKey(void) const
void Restore(CDbtag &id, TPacked param, TVariant variant) const
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
TVariant ParseCaseVariant(const CDbtag &dbtag) const
CSeq_id_General_PlainInfo(const CDbtag &dbid, CSeq_id_Mapper *mapper)
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
string x_GetStr(TPacked param) const
~CSeq_id_General_Str_Info(void)
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
static TKey Parse(const CDbtag &id)
CSeq_id_General_Str_Info(CSeq_id_Mapper *mapper, const TKey &key)
static TPacked Pack(const TKey &key, const CDbtag &id)
const string & GetStrPrefix(void) const
int CompareOrdered(const CSeq_id_Info &other, const CSeq_id_Handle &h_this, const CSeq_id_Handle &h_other) const override
void Restore(CDbtag &id, TPacked param, TVariant variant) const
const TKey & GetKey(void) const
size_t GetStrDigits(void) const
const string & GetStrSuffix(void) const
const string & GetDbtag(void) const
CSeq_id_General_Tree(CSeq_id_Mapper *mapper)
virtual void x_Unindex(const CSeq_id_Info *info)
CSeq_id_General_Id_Info::TKey TPackedIdKey
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
CSeq_id_General_PlainInfo * x_FindInfo(const CDbtag &dbid) const
virtual bool Empty(void) const
TPackedIdMap m_PackedIdMap
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
TPackedStrMap m_PackedStrMap
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
unordered_map< TPackedStrKey, CConstRef< CSeq_id_General_Str_Info >, CSeq_id_General_Str_Info::PHash > TPackedStrMap
virtual bool HaveMatch(const CSeq_id_Handle &id) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
~CSeq_id_General_Tree(void)
CSeq_id_Gi_Info(CSeq_id_Mapper *mapper)
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant) const override
CSeq_id_Gi_Tree(CSeq_id_Mapper *mapper)
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
virtual CSeq_id_Handle GetGiHandle(TGi gi)
virtual bool Empty(void) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
virtual void x_Unindex(const CSeq_id_Info *info)
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
CSeq_id_Info * m_ZeroInfo
TGi x_Get(const CSeq_id &id) const
CSeq_id_Info * m_SharedInfo
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
bool x_Check(const CSeq_id &id) const
virtual bool x_Check(const CSeq_id &id) const
CSeq_id_Gibbmt_Tree(CSeq_id_Mapper *mapper)
virtual TPacked x_Get(const CSeq_id &id) const
CSeq_id_Gibbsq_Tree(CSeq_id_Mapper *mapper)
virtual TPacked x_Get(const CSeq_id &id) const
virtual bool x_Check(const CSeq_id &id) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
virtual bool Empty(void) const
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
CSeq_id_Info * x_FindInfo(const CGiimport_id &gid) const
virtual void x_Unindex(const CSeq_id_Info *info)
CSeq_id_Giim_Tree(CSeq_id_Mapper *mapper)
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
vector< CSeq_id_Info * > TGiimList
CSeq_id_Gpipe_Tree(CSeq_id_Mapper *mapper)
bool HasMatchingId() const
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
~CSeq_id_Local_Info(void)
CObject_id::TId m_MatchingId
TVariant ParseCaseVariant(const string &str) const
CSeq_id_Local_Info(const CObject_id &oid, CSeq_id_Mapper *mapper)
CObject_id::TId GetMatchingId() const
virtual bool HaveMatch(const CSeq_id_Handle &id) const
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
CSeq_id_Local_Info * x_FindIdInfo(CObject_id::TId id) const
unordered_map< string, CSeq_id_Local_Info *, PHashNocase, PEqualNocase > TByStr
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
virtual void x_Unindex(const CSeq_id_Info *info)
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
virtual bool Empty(void) const
CSeq_id_Local_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Local_Info * x_FindInfo(const CObject_id &oid) const
CSeq_id_Local_Info * x_FindStrInfo(const string &str) const
~CSeq_id_Local_Tree(void)
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
const char * GetErrCodeString(void) const override
Get error code interpreted as text.
CSeq_id_Named_annot_track_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Other_Tree(CSeq_id_Mapper *mapper)
static const int kYearBits
static const int kHourOffset
static pair< CConstRef< CSeq_id >, TVariant > Normalize(const CSeq_id &seq_id)
static const int kHourBits
static const int kDayBits
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
static const int kSecondBits
static const int kMinuteBits
static const int kMonthBits
CSeq_id_PDB_Info(const CConstRef< CSeq_id > &seq_id, CSeq_id_Mapper *mapper)
static const int kSecondOffset
static const int kNoChain_idOffset
static const int kNoChainOffset
static const int kYearOffset
static const int kMolLowerCaseBits
static const int kDayOffset
static const int kMonthOffset
static const int kMolLowerCaseOffset
static const int kMinuteOffset
static TVariant x_NormalizeDate(const CDate_std &date_std)
string x_IdToStrKey(const CPDB_seq_id &id) const
virtual bool HaveReverseMatch(const CSeq_id_Handle &id) const
virtual void FindReverseMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list)
virtual bool HaveMatch(const CSeq_id_Handle &id) const
virtual bool Empty(void) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
virtual void x_Unindex(const CSeq_id_Info *info)
CSeq_id_PDB_Tree(CSeq_id_Mapper *mapper)
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
vector< CSeq_id_Info * > TSubMolList
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
CSeq_id_Info * x_FindInfo(const CPatent_seq_id &pid) const
~CSeq_id_Patent_Tree(void)
virtual bool Empty(void) const
CSeq_id_Patent_Tree(CSeq_id_Mapper *mapper)
virtual void x_Unindex(const CSeq_id_Info *info)
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
CSeq_id_Pir_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Prf_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Swissprot_Tree(CSeq_id_Mapper *mapper)
static TVariant ParseCaseVariant(const CSeq_id_Info *info, const string &acc)
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
int GetAccDigits(void) const
CTempString GetAccPrefix(void) const
void Restore(CTextseq_id &id, TPacked param, TVariant variant) const
void RestoreAccession(string &acc, TPacked param, TVariant variant) const
int CompareOrdered(const CSeq_id_Info &other, const CSeq_id_Handle &h_this, const CSeq_id_Handle &h_other) const override
static TPacked Pack(const TKey &key, const string &acc)
CSeq_id_Textseq_Info(CSeq_id::E_Choice type, CSeq_id_Mapper *mapper, const TKey &key)
~CSeq_id_Textseq_Info(void)
static TKey ParseAcc(const string &acc, const TVersion *ver)
const TKey & GetKey(void) const
bool IsSetVersion(void) const
const TVersion & GetVersion(void) const
CTextseq_id::TVersion TVersion
CSeq_id_Textseq_PlainInfo(const CConstRef< CSeq_id > &seq_id, CSeq_id_Mapper *mapper)
CConstRef< CSeq_id > GetPackedSeqId(TPacked packed, TVariant variant) const override
TVariant ParseCaseVariant(const string &acc) const
static void x_Erase(TStringMap &str_map, const string &key, const CSeq_id_Info *info)
virtual bool x_Check(const CSeq_id::E_Choice &type) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
void x_FindRevMatchByAccNonPacked(TSeq_id_MatchList &id_list, const string &acc, const TVersion *ver=0) const
CSeq_id_Textseq_Info::TKey TPackedKey
CTextseq_id::TVersion TVersion
virtual void x_Unindex(const CSeq_id_Info *info)
const CTextseq_id & x_Get(const CSeq_id &id) const
virtual bool HaveMatch(const CSeq_id_Handle &id) const
TPackedMap::const_iterator TPackedMap_CI
TPackedMap::value_type TPackedMapValue
bool x_GetVersion(TVersion &version, const CSeq_id_Handle &id) const
virtual bool Match(const CSeq_id_Handle &h1, const CSeq_id_Handle &h2) const
~CSeq_id_Textseq_Tree(void)
virtual bool Empty(void) const
void x_FindMatchByName(TSeq_id_MatchList &id_list, const string &name, const CTextseq_id *tid=nullptr, EAllowFields allow_fields=eAnyFields) const
static bool x_Equals(const CTextseq_id &id1, const CTextseq_id &id2)
virtual bool HaveReverseMatch(const CSeq_id_Handle &id) const
CSeq_id_Textseq_PlainInfo * x_FindStrInfo(CSeq_id::E_Choice type, const CTextseq_id &tid) const
virtual void FindReverseMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list)
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
virtual bool IsBetterVersion(const CSeq_id_Handle &h1, const CSeq_id_Handle &h2) const
TStringMap::const_iterator TStringMapCI
void x_FindRevMatchByAcc(TSeq_id_MatchList &id_list, const string &acc, const TVersion *ver=0) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
CSeq_id_Textseq_Tree(CSeq_id_Mapper *mapper, CSeq_id::E_Choice type)
void x_FindRevMatchByAccPacked(TSeq_id_MatchList &id_list, const string &acc, const TVersion *ver=0) const
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
TStringMap::value_type TStringMapValue
TPackedMap::iterator TPackedMap_I
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
void x_FindRevMatchByName(TSeq_id_MatchList &id_list, const string &name, const CTextseq_id *tid=0) const
void x_FindMatchByAcc(TSeq_id_MatchList &id_list, const string &acc, const TVersion *ver=0) const
CSeq_id_Tpd_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Tpe_Tree(CSeq_id_Mapper *mapper)
CSeq_id_Tpg_Tree(CSeq_id_Mapper *mapper)
virtual CSeq_id_Handle GetGiHandle(TGi gi)
virtual bool HaveReverseMatch(const CSeq_id_Handle &id) const
CSeq_id_Info * CreateInfo(CSeq_id::E_Choice type)
CSeq_id_Info::TPacked TPacked
virtual void DropInfo(const CSeq_id_Info *info)
CSeq_id_Which_Tree(CSeq_id_Mapper *mapper)
virtual bool HaveMatch(const CSeq_id_Handle &id) const
virtual void FindReverseMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list)
CSeq_id_Mapper * m_Mapper
static const CSeq_id_Info * GetInfo(const CSeq_id_Handle &id)
virtual void x_Unindex(const CSeq_id_Info *info)=0
virtual bool Match(const CSeq_id_Handle &h1, const CSeq_id_Handle &h2) const
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
static void Initialize(CSeq_id_Mapper *mapper, vector< CRef< CSeq_id_Which_Tree > > &v)
virtual ~CSeq_id_Which_Tree(void)
virtual bool IsBetterVersion(const CSeq_id_Handle &h1, const CSeq_id_Handle &h2) const
virtual void x_Unindex(const CSeq_id_Info *info)
virtual TPacked x_Get(const CSeq_id &id) const =0
virtual bool Empty(void) const
virtual bool x_Check(const CSeq_id &id) const =0
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
CSeq_id_int_Tree(CSeq_id_Mapper *mapper)
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
virtual size_t Dump(CNcbiOstream &out, CSeq_id::E_Choice type, int details) const
virtual void FindMatchStr(const string &sid, TSeq_id_MatchList &id_list) const
virtual CSeq_id_Handle FindOrCreate(const CSeq_id &id)
virtual void FindReverseMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list)
virtual bool Empty(void) const
virtual void DropInfo(const CSeq_id_Info *info)
virtual void x_Unindex(const CSeq_id_Info *info)
~CSeq_id_not_set_Tree(void)
bool x_Check(const CSeq_id &id) const
virtual CSeq_id_Handle FindInfo(const CSeq_id &id) const
CSeq_id_not_set_Tree(CSeq_id_Mapper *mapper)
virtual void FindMatch(const CSeq_id_Handle &id, TSeq_id_MatchList &id_list) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator end() const
const_iterator lower_bound(const key_type &key) const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
const_iterator find(const key_type &key) const
const_iterator lower_bound(const key_type &key) const
const_iterator end() const
iterator insert(const value_type &val)
container_type::iterator iterator
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
std::ofstream out("events_result.xml")
main entry point for tests
static const char * str(char *buf, int n)
#define INT_ID_FROM(T, value)
#define GI_FROM(T, value)
#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 ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
TErrCode GetErrCode(void) const
Get error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
void Warning(CExceptionArgs_Base &args)
virtual const char * GetErrCodeString(void) const
Get error code interpreted as text.
const TPrim & Get(void) const
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
virtual int CompareOrdered(const CSeq_id_Info &other, const CSeq_id_Handle &h_this, const CSeq_id_Handle &h_other) const
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
bool IsPacked(void) const
CSeq_id_Info::TVariant TVariant
CConstRef< CSeq_id > m_Seq_id
CSeq_id::E_Choice GetType(void) const
bool IsSetVariant(void) const
const CTextseq_id * GetTextseq_Id(void) const
Return embedded CTextseq_id, if any.
TPacked GetPacked(void) const
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
void AtomicResetFrom(const CConstRef &ref)
Reset reference object to new pointer.
bool ReferencedOnlyOnce(void) const THROWS_NONE
Check if object is referenced only once.
void AtomicReleaseTo(CConstRef &ref)
Release referenced object to another CConstRef<> object.
#define NCBI_PARAM_TYPE(section, name)
Generate typename for a parameter from its {section, name} attributes.
@ eParam_NoThread
Do not use per-thread values.
uint8_t Uint1
1-byte (8-bit) unsigned integer
#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.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int StringToNonNegativeInt(const CTempString str, TStringToNumFlags flags=0)
Convert string to non-negative integer value.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
PNocase_Generic< string > PNocase
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static bool IsUpper(const CTempString str)
Checks if all letters in the given string have a upper case.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
size_type size(void) const
Return the length of the represented array.
@ fConvErr_NoThrow
Do not throw an exception on error.
#define DEFINE_STATIC_FAST_MUTEX(id)
Define static fast mutex and initialize it.
bool IsApp_number(void) const
Check if variant App_number is selected.
bool IsNumber(void) const
Check if variant Number is selected.
const TId & GetId(void) const
Get the Id member data.
const TNumber & GetNumber(void) const
Get the variant data.
const TApp_number & GetApp_number(void) const
Get the variant data.
const TCountry & GetCountry(void) const
Get the Country member data.
bool IsStr(void) const
Check if variant Str is selected.
TMinute GetMinute(void) const
Get the Minute member data.
bool IsSetDb(void) const
name of database or system Check if a value has been assigned to Db data member.
void SetYear(TYear value)
Assign a value to Year data member.
void SetMinute(TMinute value)
Assign a value to Minute data member.
bool IsStd(void) const
Check if variant Std is selected.
const TTag & GetTag(void) const
Get the Tag member data.
void SetTag(TTag &value)
Assign a value to Tag data member.
bool IsId(void) const
Check if variant Id is selected.
void SetHour(THour value)
Assign a value to Hour data member.
TSecond GetSecond(void) const
Get the Second member data.
void SetMonth(TMonth value)
Assign a value to Month data member.
THour GetHour(void) const
Get the Hour member data.
void SetDay(TDay value)
Assign a value to Day data member.
const TDb & GetDb(void) const
Get the Db member data.
E_Choice Which(void) const
Which variant is currently selected.
bool IsSetDay(void) const
day of month (1-31) Check if a value has been assigned to Day data member.
const TStr & GetStr(void) const
Get the variant data.
TStr & SetStr(void)
Select the variant.
void SetSecond(TSecond value)
Assign a value to Second data member.
bool IsSetMinute(void) const
minute of hour (0-59) Check if a value has been assigned to Minute data member.
bool IsSetHour(void) const
hour of day (0-23) Check if a value has been assigned to Hour data member.
bool IsSetSeason(void) const
for "spring", "may-june", etc Check if a value has been assigned to Season data member.
bool IsSetMonth(void) const
month (1-12) Check if a value has been assigned to Month data member.
TYear GetYear(void) const
Get the Year member data.
TMonth GetMonth(void) const
Get the Month member data.
void SetDb(const TDb &value)
Assign a value to Db data member.
TDay GetDay(void) const
Get the Day member data.
const TStd & GetStd(void) const
Get the variant data.
TId & SetId(void)
Select the variant.
bool IsSetSecond(void) const
second of minute (0-59) Check if a value has been assigned to Second data member.
TId GetId(void) const
Get the variant data.
bool IsPatent(void) const
Check if variant Patent is selected.
void SetRel(TRel &value)
Assign a value to Rel data member.
TGeneral & SetGeneral(void)
Select the variant.
TChain GetChain(void) const
Get the Chain member data.
TNamed_annot_track & SetNamed_annot_track(void)
Select the variant.
const TEmbl & GetEmbl(void) const
Get the variant data.
const TPdb & GetPdb(void) const
Get the variant data.
void SetMol(const TMol &value)
Assign a value to Mol data member.
TId GetId(void) const
Get the Id member data.
bool IsSetChain_id(void) const
chain identifier; length-independent generalization of 'chain' Check if a value has been assigned to ...
bool IsSetChain(void) const
Deprecated: 'chain' can't support multiple character PDB chain identifiers (introduced in 2015).
bool IsSetAccession(void) const
Check if a value has been assigned to Accession data member.
TEmbl & SetEmbl(void)
Select the variant.
void SetName(const TName &value)
Assign a value to Name data member.
TOther & SetOther(void)
Select the variant.
const TGenbank & GetGenbank(void) const
Get the variant data.
const TName & GetName(void) const
Get the Name member data.
void SetAccession(const TAccession &value)
Assign a value to Accession data member.
bool IsGeneral(void) const
Check if variant General is selected.
E_Choice Which(void) const
Which variant is currently selected.
bool IsPdb(void) const
Check if variant Pdb is selected.
void ResetChain_id(void)
Reset Chain_id data member.
TGi GetGi(void) const
Get the variant data.
TGi & SetGi(void)
Select the variant.
TVersion GetVersion(void) const
Get the Version member data.
bool IsSetRelease(void) const
Check if a value has been assigned to Release data member.
const TRelease & GetRelease(void) const
Get the Release member data.
TGpipe & SetGpipe(void)
Select the variant.
bool IsSetRel(void) const
release date, month and year Check if a value has been assigned to Rel data member.
const TMol & GetMol(void) const
Get the Mol member data.
TSeqid GetSeqid(void) const
Get the Seqid member data.
E_Choice
Choice variants.
TDdbj & SetDdbj(void)
Select the variant.
const TOther & GetOther(void) const
Get the variant data.
void SetRelease(const TRelease &value)
Assign a value to Release data member.
TLocal & SetLocal(void)
Select the variant.
const TDdbj & GetDdbj(void) const
Get the variant data.
const TLocal & GetLocal(void) const
Get the variant data.
bool IsGiim(void) const
Check if variant Giim is selected.
bool IsLocal(void) const
Check if variant Local is selected.
const TGpipe & GetGpipe(void) const
Get the variant data.
const TChain_id & GetChain_id(void) const
Get the Chain_id member data.
void ResetChain(void)
Reset Chain data member.
const TGeneral & GetGeneral(void) const
Get the variant data.
TGenbank & SetGenbank(void)
Select the variant.
bool IsSetVersion(void) const
Check if a value has been assigned to Version data member.
static string SelectionName(E_Choice index)
Retrieve selection name (for diagnostic purposes).
const TRel & GetRel(void) const
Get the Rel member data.
void SetChain_id(const TChain_id &value)
Assign a value to Chain_id data member.
const TCit & GetCit(void) const
Get the Cit member data.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
void SetVersion(TVersion value)
Assign a value to Version data member.
const TNamed_annot_track & GetNamed_annot_track(void) const
Get the variant data.
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
const TAccession & GetAccession(void) const
Get the Accession member data.
void SetChain(TChain value)
Assign a value to Chain data member.
TPdb & SetPdb(void)
Select the variant.
@ e_Gibbmt
Geninfo backbone moltype.
@ e_Giim
Geninfo import id.
@ e_Other
for historical reasons, 'other' = 'refseq'
@ e_Gpipe
Internal NCBI genome pipeline processing ID.
@ e_Tpe
Third Party Annot/Seq EMBL.
@ e_Tpd
Third Party Annot/Seq DDBJ.
@ e_Gibbsq
Geninfo backbone seqid.
@ e_General
for other databases
@ e_Gi
GenInfo Integrated Database.
@ e_Named_annot_track
Internal named annotation tracking ID.
@ e_not_set
No variant selected.
@ e_Tpg
Third Party Annot/Seq Genbank.
@ e_MaxChoice
== e_Named_annot_track+1
unsigned int
A callback function used to compare two keys in a database.
Definition of all error codes used in objects libraries.
constexpr bool empty(list< Ts... >) noexcept
const string version
version string
double value_type
The numeric datatype used by the parser.
const struct ncbi::grid::netcache::search::fields::SIZE size
const struct ncbi::grid::netcache::search::fields::KEY key
const GenericPointer< typename T::ValueType > T2 value
Common macro to detect used sanitizers and suppress memory leaks if run under LeakSanitizer.
#define NCBI_LSAN_DISABLE_GUARD
const CConstRef< CSeq_id > GetAccession(const CSeq_id_Handle &id_handle)
static bool x_InRange0(int value, int bits)
static void s_RestoreNumber(string &str, size_t pos, size_t len, TIntId number)
static TIntId s_ParseNumber(const string &str, size_t pos, size_t len)
static void s_AssignTextseq_id(CTextseq_id &new_tid, const CTextseq_id &old_tid)
static bool sx_ParseLocalStrId(const string &str, CObject_id::TId &id)
static const size_t kMallocOverhead
static const size_t kMinGeneralStrDigits
static pair< CSeq_id_Handle::TVariant, CSeq_id_Handle::TVariant > s_ParseCaseVariant(CTempString ref, const char *str, CSeq_id_Handle::TVariant bit)
static bool x_IsDefaultSwissprotRelease(const string &release)
static bool sx_AllDigits(const string &s)
static bool x_GetUnset1(int)
static bool s_PackTextidEnabled(void)
NCBI_PARAM_DECL(bool, OBJECTS, PACK_TEXTID)
static void s_AssignSeq_id(CSeq_id &new_id, const CSeq_id &old_id)
static bool x_InRange1(int value, int bits)
static void s_AssignObject_id(CObject_id &new_id, const CObject_id &old_id)
static CSeq_id_Handle::TVariant s_RestoreCaseVariant(string &str, size_t len, CSeq_id_Handle::TVariant variant)
static int x_GetUnset0(int bits)
static size_t sx_StringMemory(const string &s)
static void s_RestoreNumberAndCaseVariant(string &str, size_t pos, size_t len, TIntId number, CSeq_id_Handle::TVariant variant)
static void s_AssignDbtag(CDbtag &new_id, const CDbtag &old_id)
NCBI_PARAM_DEF_EX(bool, OBJECTS, PACK_TEXTID, true, eParam_NoThread, OBJECTS_PACK_TEXTID)
static bool s_PackGeneralEnabled(void)
TVariant ParseCaseVariant(const CDbtag &dbtag) const
size_t GetStrDigits(void) const
unordered_map< string, CSeq_id_General_PlainInfo *, PHashNocase, PEqualNocase > TByStr
CTempString GetAccPrefix(void) const
TVariant ParseCaseVariant(const string &acc) const
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