{
"", objects::CSeq_id::eSNPScaleLimit_Default},
80{
"Unit", objects::CSeq_id::eSNPScaleLimit_Unit},
81{
"Contig", objects::CSeq_id::eSNPScaleLimit_Contig},
82{
"Supercontig", objects::CSeq_id::eSNPScaleLimit_Supercontig},
83{
"Chromosome", objects::CSeq_id::eSNPScaleLimit_Chromosome},
87objects::CSeq_id::eSNPScaleLimit_Default,
103 # define DEFAULT_DEBUG_LEVEL CId2ReaderBase::eTraceError 105 # define DEFAULT_DEBUG_LEVEL 0 136 returnTGenbankVdbSnpParam::GetDefault();
142 returnTGenbankVdbSnpParam::SetDefault(enabled);
148 returnTGenbankVdbWgsParam::GetDefault();
154 returnTGenbankVdbWgsParam::SetDefault(enabled);
160 returnTGenbankVdbCddParam::GetDefault();
166 returnTGenbankVdbCddParam::SetDefault(enabled);
172 returnTID2SNP_Scale_Limit::GetDefault();
178TID2SNP_Scale_Limit::SetDefault(
value);
195 return(
size_t)
s_Value->Get();
202 return(
size_t)
s_Value->Get();
210 returnmax_request_size == 1;
218 returnmax_request_size > 0;
249: m_RequestSerialNumber(1),
252vector<string> proc_list;
253 stringproc_param =
NCBI_PARAM_TYPE(GENBANK, ID2_PROCESSOR)::GetDefault();
255 ITERATE( vector<string>, it, proc_list ) {
256 const string& proc_name = *it;
260CreateInstance(proc_name);
264 "cannot load ID2 processor "<<proc_name<<
": "<<exc);
266 if(
info.processor ) {
267 info.context =
info.processor->CreateContext();
273packet.
Set().push_back(
Ref(&req));
275 info.processor->ProcessPacket(
info.context, packet, replies);
293 #define MConnFormat MSerial_AsnBinary 300get_blob_id.
SetSeq_id().SetSeq_id().SetSeq_id().Assign(seq_id);
321 result.GetLoadedBlob_ids(idh, loaded_blob_ids);
322 if( loaded_blob_ids.empty() ) {
325CID2_Request_Get_Blob_Info::C_Blob_id::C_Resolve::TExclude_blobs&
327get_blob_info.
SetBlob_id().SetResolve().SetExclude_blobs();
331exclude_blobs.push_back(blob_id);
360 if( ids.IsLoaded() ) {
367get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
384get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
406get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
432get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
459get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
486get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
513get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
541get_id.SetSeq_id().SetSeq_id().Assign(*seq_id.
GetSeqId());
559 if( max_request_size <= 1 ) {
563 size_t count= ids.size();
565 size_tpacket_start = 0;
567 for(
size_t i= 0;
i<
count; ++
i) {
572 if( lock.IsLoaded() ) {
574 if(
data.IsFound() ) {
575ret[
i] =
data.Get();
584get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
586 if( packet.
Set().empty() ) {
589packet.
Set().push_back(req);
590 if( packet.
Set().size() == max_request_size ) {
593 for(
size_t i= packet_start;
i<
count; ++
i) {
598 if( lock.IsLoaded() ) {
600 if(
data.IsFound() ) {
601ret[
i] =
data.Get();
607packet.
Set().clear();
611 if( !packet.
Set().empty() ) {
614 for(
size_t i= packet_start;
i<
count; ++
i) {
619 if( lock.IsLoaded() ) {
621 if(
data.IsFound() ) {
622ret[
i] =
data.Get();
638 if( max_request_size <= 1 ) {
642 size_t count= ids.size();
644 size_tpacket_start = 0;
646 for(
size_t i= 0;
i<
count; ++
i) {
663get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
665 if( packet.
Set().empty() ) {
668packet.
Set().push_back(req);
669 if( packet.
Set().size() == max_request_size ) {
672 for(
size_t i= packet_start;
i<
count; ++
i) {
686packet.
Set().clear();
690 if( !packet.
Set().empty() ) {
693 for(
size_t i= packet_start;
i<
count; ++
i) {
717 if( max_request_size <= 1 ) {
721 size_t count= ids.size();
723 size_tpacket_start = 0;
725 for(
size_t i= 0;
i<
count; ++
i) {
742get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
744 if( packet.
Set().empty() ) {
747packet.
Set().push_back(req);
748 if( packet.
Set().size() == max_request_size ) {
751 for(
size_t i= packet_start;
i<
count; ++
i) {
765packet.
Set().clear();
769 if( !packet.
Set().empty() ) {
772 for(
size_t i= packet_start;
i<
count; ++
i) {
796 if( max_request_size <= 1 ) {
800 size_t count= ids.size();
802 size_tpacket_start = 0;
804 for(
size_t i= 0;
i<
count; ++
i) {
818get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
825 if( packet.
Set().empty() ) {
828packet.
Set().push_back(req);
829 if( packet.
Set().size() == max_request_size ) {
832 for(
size_t i= packet_start;
i<
count; ++
i) {
845 if( ids_lock.IsLoaded() ) {
848ids_lock.GetExpirationTime());
854packet.
Set().clear();
858 if( !packet.
Set().empty() ) {
861 for(
size_t i= packet_start;
i<
count; ++
i) {
874 if( ids_lock.IsLoaded() ) {
877ids_lock.GetExpirationTime());
893 if( max_request_size <= 1 ||
898 size_t count= ids.size();
900 size_tpacket_start = 0;
902 for(
size_t i= 0;
i<
count; ++
i) {
919get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
921 if( packet.
Set().empty() ) {
924packet.
Set().push_back(req);
925 if( packet.
Set().size() == max_request_size ) {
928 for(
size_t i= packet_start;
i<
count; ++
i) {
942packet.
Set().clear();
946 if( !packet.
Set().empty() ) {
949 for(
size_t i= packet_start;
i<
count; ++
i) {
974 if( max_request_size <= 1 ||
979 size_t count= ids.size();
981 size_tpacket_start = 0;
983 for(
size_t i= 0;
i<
count; ++
i) {
993 if(
hash.hash_known ) {
994ret[
i] =
hash.hash;
999 else if( !
hash.sequence_found ) {
1008get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
1010 if( packet.
Set().empty() ) {
1013packet.
Set().push_back(req);
1014 if( packet.
Set().size() == max_request_size ) {
1017 for(
size_t i= packet_start;
i<
count; ++
i) {
1024 if(
hash.hash_known ) {
1025ret[
i] =
hash.hash;
1026loaded[
i] =
true;
1030 else if( !
hash.sequence_found ) {
1039packet.
Set().clear();
1043 if( !packet.
Set().empty() ) {
1046 for(
size_t i= packet_start;
i<
count; ++
i) {
1052 if(
hash.hash_known ) {
1053ret[
i] =
hash.hash;
1054loaded[
i] =
true;
1058 else if( !
hash.sequence_found ) {
1076 if( max_request_size <= 1 ||
1081 size_t count= ids.size();
1083 size_tpacket_start = 0;
1085 for(
size_t i= 0;
i<
count; ++
i) {
1095loaded[
i] =
true;
1102get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
1105 if( packet.
Set().empty() ) {
1108packet.
Set().push_back(req);
1109 if( packet.
Set().size() == max_request_size ) {
1112 for(
size_t i= packet_start;
i<
count; ++
i) {
1119loaded[
i] =
true;
1126packet.
Set().clear();
1130 if( !packet.
Set().empty() ) {
1133 for(
size_t i= packet_start;
i<
count; ++
i) {
1140loaded[
i] =
true;
1157 if( max_request_size <= 1 ||
1162 size_t count= ids.size();
1164 size_tpacket_start = 0;
1166 for(
size_t i= 0;
i<
count; ++
i) {
1178loaded[
i] =
true;
1186get_id.SetSeq_id().SetSeq_id().Assign(*ids[
i].
GetSeqId());
1189 if( packet.
Set().empty() ) {
1192packet.
Set().push_back(req);
1193 if( packet.
Set().size() == max_request_size ) {
1196 for(
size_t i= packet_start;
i<
count; ++
i) {
1205loaded[
i] =
true;
1213packet.
Set().clear();
1217 if( !packet.
Set().empty() ) {
1220 for(
size_t i= packet_start;
i<
count; ++
i) {
1229loaded[
i] =
true;
1247 if( max_request_size <= 1 ) {
1251 size_t count= ids.size();
1253 size_tpacket_start = 0;
1255 for(
size_t i= 0;
i<
count; ++
i) {
1262 if( packet.
Set().empty() ) {
1265packet.
Set().push_back(req);
1266 if( packet.
Set().size() == max_request_size ) {
1269 for(
size_t i= packet_start;
i<
count; ++
i) {
1272packet.
Set().clear();
1276 if( !packet.
Set().empty() ) {
1279 for(
size_t i= packet_start;
i<
count; ++
i) {
1293 if( ids.IsLoaded() ) {
1303srcs.push_back(it->first);
1304 if(it->first ==
"SNP") {
1311param->SetName(
"snp:scale-limit");
1313req.
SetParams().Set().push_back(param);
1338 ERR_POST_X(5,
"ExtAnnot blob state is not loaded: "<<blob_id);
1339 result.SetLoadedBlobState(blob_id, 0);
1361 ERR_POST_X(9,
"ExtAnnot blob version is not loaded: "<<blob_id);
1362 result.SetLoadedBlobVersion(blob_id, 0);
1375 if( !ids.IsLoaded() ) {
1383 if( ids.IsLoaded() ) {
1398 returnids.IsLoaded();
1414 if( !
info.Matches(
mask, sel) ) {
1422 if(
info.IsSetAnnotInfo() ) {
1437packet.
Set().push_back(req);
1443packet.
Get().size() >= max_request_size ) {
1445packet.
Set().clear();
1448 if( !packet.
Get().empty() ) {
1498 ERR_POST_X(2,
"ExtAnnot chunk is not loaded: "<<blob_id);
1520vector<TChunkId>& chunks,
1529 ERR_POST_X(3,
"ExtAnnot chunk is not loaded: "<< blob_id);
1534packet.
Set().clear();
1543 for(
auto& blob_chunks : chunk_ids ) {
1546packet.
Set().clear();
1555 if( chunk_ids.size() == 1 ) {
1578vector<TChunkId> ext_chunks;
1590packet.
Set().push_back(ext_req);
1591ext_chunks.push_back(*
id);
1593packet.
Get().size() >= max_request_size ) {
1602chunks.size() >= max_request_size ) {
1609 if( !chunks.empty() ) {
1611packet.
Get().size() + chunks.size() > max_request_size ) {
1617packet.
Set().push_back(chunks_req);
1620 if( !packet.
Get().empty() ) {
1637 size_trequested_count = 0;
1638 for(
auto& blob_chunks : chunk_ids ) {
1639 const CBlob_id& blob_id = blob_chunks.first;
1644 for(
autochunk_id : blob_chunks.second ) {
1656packet.
Set().push_back(req);
1657requested_chunks.push_back(make_pair(blob_id,
TChunkIds()));
1661 if( !chunks_list ) {
1670packet.
Set().push_back(req);
1671chunks_list = &get_chunks.
SetChunks();
1672requested_chunks.push_back(make_pair(blob_id,
TChunkIds()));
1677requested_chunks.back().second.push_back(chunk_id);
1680requested_count >= max_request_size ) {
1684requested_count = 0;
1690 if( requested_count ) {
1693requested_count = 0;
1704 for(
auto&
info: blob_infos ) {
1711 if(
info.IsSetAnnotInfo() ) {
1726packet.
Set().push_back(req);
1731packet.
Get().size() >= max_request_size ) {
1733packet.
Set().clear();
1737 if( !packet.
Get().empty() ) {
1757 if( ids.IsLoaded() ) {
1763packet.
Set().push_back(req);
1765packet.
Get().size() >= max_request_size ) {
1768packet.
Set().clear();
1771 if( !packet.
Get().empty() ) {
1786 boolloaded_blob_ids =
false;
1787 size_tprocessed_requests = 0;
1792loaded_blob_ids =
true;
1798 if( !loaded_blob_ids &&
1803loaded_blob_ids =
true;
1806 if( ids && ids.IsLoaded() ) {
1819 if( !load_blob_ids.
insert(blob_id).second ) {
1827packet.
Set().push_back(req);
1829packet.
Get().size() >= max_request_size ) {
1830processed_requests += packet.
Set().size();
1832packet.
Set().clear();
1844packet.
Set().push_back(req);
1846packet.
Get().size() >= max_request_size ) {
1847processed_requests += packet.
Set().size();
1849packet.
Set().clear();
1853 if( !packet.
Get().empty() ) {
1854processed_requests += packet.
Get().size();
1857 if( !processed_requests && !loaded_blob_ids ) {
1869packet.
Set().push_back(
Ref(&req));
1899unique_ptr<CReaderAllocatedConnection>
conn;
1925param->SetName(
"log:client_name");
1927request.
SetParams().Set().push_back(param);
1930param->SetName(
"id2:allow");
1932param->SetValue().push_back(
"*.blob-state");
1935param->SetValue().push_back(
"vdb-wgs");
1939param->SetValue().push_back(
"vdb-snp");
1943param->SetValue().push_back(
"vdb-cdd");
1945request.
SetParams().Set().push_back(param);
1950param->SetName(
"snp:scale-limit");
1952request.
SetParams().Set().push_back(param);
1958param->SetName(
"session_id");
1960request.
SetParams().Set().push_back(param);
1964param->SetName(
"log:ncbi_phid");
1966request.
SetParams().Set().push_back(param);
1970param->SetName(
"log:client_ip");
1971param->SetValue().push_back(rctx.
GetClientIP());
1972request.
SetParams().Set().push_back(param);
1977 #define x_GetReaderName(conn) \ 1978 (x_ConnDescription((conn)).empty()? "CPubseq2Reader": "CId2Reader")
1992s <<
" ID2-Request-Packet";
2012 if( iter && iter->IsSetData() ) {
2014save.swap(iter->SetData());
2015 size_t size= 0,
count= 0, max_chunk = 0;
2018 size_tchunk = (*i)->size();
2020max_chunk =
max(max_chunk, chunk);
2023 "Data: "<<
size<<
" bytes in "<<
2024 count<<
" chunks with "<<
2025max_chunk <<
" bytes in chunk max";
2026save.swap(iter->SetData());
2034s <<
" ID2-Reply.";
2040 if( it->IsSetData() ) {
2045 ERR_POST_X(1,
"Exception while dumping data: " 2064 "failed to send request: "+
2069s <<
"Sent ID2-Request-Packet.";
2078s <<
"Receiving ID2-Reply...";
2086 "reply deserialization failed: "+
2102 state.stages.reserve(proc_count);
2103 for(
size_t i= 0;
i< proc_count; ++
i) {
2104 if( packet.
Get().empty() ) {
2107 state.stages.resize(
i+1);
2114 for(
auto& it : stage.
replies) {
2120 if( packet.
Get().empty() ) {
2128s <<
"Sending ID2-Request-Packet...";
2133s <<
"Sent ID2-Request-Packet.";
2138 "failed to send request: "+
2146 if( pos <
state.stages.size() ) {
2149 while( stage.
replies.empty() ) {
2154 x_DumpReply(0, *reply,
"Filtered by processor");
2155 for(
auto& it : stage.
replies) {
2171s <<
"Receiving ID2-Reply...";
2179 "reply deserialization failed: "+
2183 if( reply->IsSetDiscard() ) {
2204 if( !packet.
Get().empty() ) {
2209 for(
auto&
i: packet.
Get() ) {
2210 info.requests.push_back(
i.GetPointer());
2212 info.request_count =
static_cast<int>(
info.requests.size());
2213 info.remaining_count =
info.request_count;
2214 intend_serial_num =
2216 while( end_serial_num <=
info.request_count ) {
2222 if( num <=
info.request_count ) {
2229 info.start_serial_num = end_serial_num -
info.request_count;
2231 intcur_serial_num =
info.start_serial_num;
2233(*it)->SetSerial_number(cur_serial_num++);
2256descr =
" (processor)";
2264 "CId2ReaderBase: connection timed out"<<descr);
2268 "CId2ReaderBase: connection failed"<<descr);
2272 "CId2ReaderBase: failed command"<<descr);
2276 ERR_POST_X(8,
"CId2ReaderBase: bad reply serial number: "<<descr);
2280 "CId2ReaderBase: bad reply serial number: "<<descr);
2291 info.requests[num] = 0;
2292--
info.remaining_count;
2306vector<SId2LoadedSet> loaded_sets(packet_info.
request_count);
2327 "CId2ReaderBase: failed to process reply: "+
2336 if(
state.conn ) {
2340 catch( exception&
) {
2345(reply->IsSetSerial_number() ||
2346reply->IsSetParams() ||
2347reply->IsSetError() ||
2348reply->IsSetEnd_of_reply() ||
2349reply->IsSetReply()) ) {
2353 catch( exception&
) {
2359 if(
state.conn ) {
2360 state.conn->Release();
2390 data.m_Seq_ids.clear();
2393 if( ids.IsLoaded() ) {
2396 int state= it->second.first;
2400 CBlob_Infoblob_info(blob_id, it2->second.m_ContentMask);
2405 if( !blob_annot_info ) {
2410blob_annot_info->AddNamedAnnotName(annot_info.
GetName());
2413annot_info.
IsSetGraph() && ainfos.size() == 1 &&
2418s <<
"Adding zoom tracks for " 2421 for(
intzoom = 10; zoom < 1000000; zoom *= 10 ) {
2424zoom_info->ResetFeat();
2425zoom_info->ResetAlign();
2427blob_annot_info->AddAnnotInfo(*zoom_info);
2439blob_annot_info->AddAnnotInfo(annot_info);
2442 if( blob_annot_info &&
2443!(blob_annot_info->GetAnnotInfo().empty() &&
2444blob_annot_info->GetNamedAnnotNames().empty()) ) {
2447blob_ids.push_back(blob_info);
2459 const char* marker1,
2460 const char* marker2)
2462 if( !
error.IsSetMessage() ) {
2466 if( error_flags & test_flag ) {
2471 if( pos ==
NPOS) {
2480error_flags |= test_flag;
2489 switch(
error.GetSeverity() ) {
2492 if(
error.IsSetMessage() ) {
2493 const string&
msg=
error.GetMessage();
2494 if(
msg.find(
"PTIS_FAILURE") !=
NPOS) {
2510 if(
error.IsSetMessage() ) {
2532 if(
error.IsSetRetry_delay() ) {
2543 switch(
error.GetSeverity() ) {
2546 if(
error.IsSetMessage() ) {
2559 "Unknown satellite number 20 for bioseq info");
2579 if(
error.IsSetMessage() ) {
2674*errors_ptr = errors;
2706 "CId2ReaderBase: connection failed");
2709 ERR_POST_X(17,
"CId2ReaderBase: failed command reply: "<<
2713 "CId2ReaderBase: failed command");
2716 auto& reply = main_reply.
GetReply();
2717 switch( reply.Which() ) {
2720reply.GetGet_seq_id().GetRequest(),
2721&reply.GetGet_seq_id());
2725reply.GetGet_blob_id());
2729reply.GetGet_blob_seq_ids());
2733reply.GetGet_blob());
2737reply.GetGet_split_info());
2741reply.GetGet_chunk());
2759 auto& request = main_request.
GetRequest();
2760 switch( request.Which() ) {
2765 if( request.GetGet_blob_id().IsSetSeq_id() ) {
2766 auto& req_id = request.GetGet_blob_id().GetSeq_id().GetSeq_id();
2767 if( req_id.IsSeq_id() ) {
2774 if( request.GetGet_blob_info().GetBlob_id().IsResolve() ) {
2775 auto& req_id = request.GetGet_blob_info().GetBlob_id().GetResolve().GetRequest().GetSeq_id().GetSeq_id();
2776 if( req_id.IsSeq_id() ) {
2797 switch( req_id.
Which() ) {
2812 if( !
id.IsGeneral() ) {
2815 const string& db =
id.GetGeneral().GetDb();
2866 boolgot_no_ids =
false;
2877got_no_ids = seq_ids.empty();
2891 if( (**it).IsGi() ) {
2892ret.
gi= (**it).GetGi();
2902 if( (**it).GetTextseq_Id() ) {
2913 if(
id.IsGeneral() ) {
2914 const CDbtag& dbtag =
id.GetGeneral();
2927 if(
id.IsGeneral() ) {
2928 const CDbtag& dbtag =
id.GetGeneral();
2944 if(
id.IsGeneral() ) {
2945 const CDbtag& dbtag =
id.GetGeneral();
2949 hash.sequence_found =
true;
2950 hash.hash_known =
true;
2961 if(
id.IsGeneral() ) {
2962 const CDbtag& dbtag =
id.GetGeneral();
2978 if(
id.IsGeneral() ) {
2979 const CDbtag& dbtag =
id.GetGeneral();
2983 type.sequence_found =
true;
2988 if(
type.sequence_found || got_no_ids ) {
3012blob_state =
x_GetBlobState(blob_id, loaded_set, main_reply, &errors);
3023ids.first |= blob_state;
3037 if( obj_id.
IsId() &&
3057 if(
info.IsSetFeat() ) {
3060 if(
info.IsSetGraph() ) {
3063 if(
info.IsSetAlign() ) {
3126 if( !blob_version ) {
3145 if(
data.GetData().empty() ) {
3147 data.GetData_type() ==
data.eData_type_seq_entry ) {
3150 "no data in reply: "<<blob_id);
3153 ERR_POST_X(7,
"CId2ReaderBase: ID2-Reply-Get-Blob: " 3154 "no data in reply: "<<blob_id);
3175 "blob already loaded: "<<blob_id);
3181 result.SetAndSaveBlobState(blob_id, blob_state);
3191.ProcessData(
result, blob_id, blob_state, chunk_id,
data);
3212 ERR_POST_X(11,
"CId2ReaderBase: ID2S-Reply-Get-Split-Info: " 3213 "no data in reply: "<<blob_id);
3217 if( !blob_version ) {
3235 ERR_POST_X(10,
Info<<
"CId2ReaderBase: ID2S-Reply-Get-Split-Info: " 3236 "blob already loaded: "<< blob_id);
3259skel = iter->second;
3264 result.SetAndSaveBlobState(blob_id, blob_state);
3269.ProcessData(
result, blob_id, blob_state, chunk_id,
3285 ERR_POST_X(14,
"CId2ReaderBase: ID2S-Reply-Get-Chunk: " 3286 "no data in reply: "<<blob_id);
3291 ERR_POST_X(13,
"CId2ReaderBase: ID2S-Reply-Get-Chunk: " 3292 "blob is not loaded yet: "<< blob_id);
ncbi::TMaskedQueryRegions mask
void SetAnnotInfo(CRef< CBlob_Annot_Info > &annot_info)
void SetSubSat(TSubSat v)
TSatKey GetSatKey() const
void SetSatKey(TSatKey v)
TSubSat GetSubSat() const
vector< CRef< CID2_Reply > > TReplies
CID2S_Reply_Get_Chunk â.
CID2S_Reply_Get_Split_Info â.
CID2S_Request_Get_Chunks â.
CID2S_Seq_annot_Info â.
CID2_Get_Blob_Details â.
CID2_Reply_Get_Blob_Id â.
CID2_Reply_Get_Blob_Seq_ids â.
CID2_Reply_Get_Seq_id â.
CID2_Request_Get_Blob_Id â.
CID2_Request_Get_Blob_Info â.
CID2_Request_Get_Seq_id â.
virtual void x_ReceiveReply(TConn conn, CID2_Reply &reply)=0
TBlobState x_GetBlobStateFromID2(const CBlob_id &blob_id, SId2LoadedSet &loaded_set, int id2_state)
bool LoadLabels(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TLabels &ret)
void x_SetResolve(CID2_Request_Get_Blob_Id &get_blob_id, const CSeq_id &seq_id)
void x_SendID2Packet(CReaderRequestResult &result, SId2ProcessingState &state, CID2_Request_Packet &packet)
static void SetVDB_CDD_Enabled(bool enabled=true)
bool LoadHashes(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, THashes &ret, TKnown &known)
bool LoadSeq_idLabel(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
static bool GetVDB_SNP_Enabled()
bool LoadSeq_idTaxId(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
bool LoadChunk(CReaderRequestResult &result, const TBlobId &blob_id, TChunkId chunk_id)
void x_AssignSerialNumbers(SId2PacketInfo &info, CID2_Request_Packet &packet)
bool LoadBulkIds(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TBulkIds &ret)
bool LoadTaxIds(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TTaxIds &ret)
bool LoadChunks(CReaderRequestResult &result, const TBlobId &blob_id, const TChunkIds &chunk_ids)
bool x_LoadSeq_idBlob_idsSet(CReaderRequestResult &result, const TSeqIds &seq_ids)
static TBlobId GetBlobId(const CID2_Blob_Id &blob_id)
bool LoadSequenceHash(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
bool LoadLengths(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TLengths &ret)
void x_ProcessGetBlobSeqIds(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Reply_Get_Blob_Seq_ids &reply)
virtual void x_SendPacket(TConn conn, const CID2_Request_Packet &packet)=0
TErrorFlags x_GetMessageError(const CID2_Error &error)
void x_SetContextData(CID2_Request &request)
TErrorFlags x_GetError(CReaderRequestResult &result, const CID2_Error &error)
void x_DisableProcessors()
void x_ProcessGetChunk(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2S_Reply_Get_Chunk &reply)
bool LoadAccVers(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TIds &ret)
bool LoadTypes(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TTypes &ret)
bool LoadBlobs(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, TContentsMask mask, const SAnnotSelector *sel)
bool x_DoneReply(SId2PacketInfo &info, int num, const CID2_Reply &reply)
atomic< TAvoidRequests > m_AvoidRequest
void x_ProcessGetSplitInfo(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2S_Reply_Get_Split_Info &reply)
static bool GetVDB_CDD_Enabled()
bool LoadBlobVersion(CReaderRequestResult &result, const TBlobId &blob_id)
static int GetDebugLevel(void)
TBlobState x_GetBlobState(const CBlob_id &blob_id, SId2LoadedSet &loaded_set, const CID2_Reply &reply, TErrorFlags *errors_ptr=0)
void x_DumpPacket(TConn conn, const CID2_Request_Packet &packet, const char *msg="Sending")
void x_ProcessGetBlob(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Reply_Get_Blob &reply)
static void SetSNP_Scale_Limit(CSeq_id::ESNPScaleLimit value)
void x_ProcessGetSeqId(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Request_Get_Seq_id &request, const CID2_Reply_Get_Seq_id *reply)
static void SetVDB_SNP_Enabled(bool enabled=true)
void x_SetExclude_blobs(CID2_Request_Get_Blob_Info &get_blob_info, const CSeq_id_Handle &idh, CReaderRequestResult &result)
void x_UpdateLoadedSet(CReaderRequestResult &result, SId2LoadedSet &data, const SAnnotSelector *sel)
void x_SetDetails(CID2_Get_Blob_Details &details, TContentsMask mask)
bool LoadBlobSet(CReaderRequestResult &result, const TSeqIds &seq_ids)
CRef< CID2_Reply > x_ReceiveID2ReplyStage(SId2ProcessingState &state, size_t pos)
void x_ProcessRequest(CReaderRequestResult &result, CID2_Request &req, const SAnnotSelector *sel)
virtual void SetParams(const CReaderParams ¶ms)
void x_ProcessEmptyReply(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Request &main_request)
void x_DumpReply(TConn conn, CID2_Reply &reply, const char *msg="Received")
bool LoadBlobState(CReaderRequestResult &result, const TBlobId &blob_id)
virtual string x_ConnDescription(TConn conn) const =0
bool LoadSequenceType(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
bool LoadSeq_idSeq_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
CRef< CID2_Reply > x_ReceiveFromConnection(TConn conn)
virtual void x_EndOfPacket(TConn conn)
static void sx_CheckErrorFlag(const CID2_Error &error, TErrorFlags &error_flags, EErrorFlags test_flag, const char *marker1, const char *marker2=0)
@ fAvoidRequest_for_Seq_id_type
@ fAvoidRequest_nested_get_blob_info
@ fAvoidRequest_for_Seq_id_taxid
@ fAvoidRequest_for_Seq_id_length
@ fAvoidRequest_for_Seq_id_label
@ fAvoidRequest_for_Seq_id_hash
CRef< CID2_Reply > x_ReceiveID2Reply(SId2ProcessingState &state)
CAtomicCounter_WithAutoInit m_RequestSerialNumber
static void SetVDB_WGS_Enabled(bool enabled=true)
bool LoadSequenceLength(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
static bool GetVDB_WGS_Enabled()
void x_ProcessGetBlobId(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Reply_Get_Blob_Id &reply)
void x_ProcessReply(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CID2_Request &main_request)
bool LoadGis(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TGis &ret)
void x_ProcessPacket(CReaderRequestResult &result, CID2_Request_Packet &packet, const SAnnotSelector *sel)
void x_ProcessGetSeqIdSeqId(CReaderRequestResult &result, SId2LoadedSet &loaded_set, const CID2_Reply &main_reply, const CSeq_id_Handle &seq_id, const CID2_Request_Get_Seq_id &request, const CID2_Reply_Get_Seq_id *reply)
@ fError_inactivity_timeout
int x_GetReplyIndex(CReaderRequestResult &result, CConn *conn, SId2PacketInfo &packet, const CID2_Reply &reply)
bool LoadSeq_idBlob_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const SAnnotSelector *sel)
All LoadXxx() methods should return false if there is no requested data in the reader.
bool LoadStates(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TStates &ret)
bool LoadSeq_idAccVer(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
bool LoadSeq_idGi(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
static CSeq_id::ESNPScaleLimit GetSNP_Scale_Limit(void)
bool LoadBlob(CReaderRequestResult &result, const TBlobId &blob_id)
void x_SendToConnection(TConn conn, CID2_Request_Packet &packet)
static bool IsFound(const TData &data)
TData GetAccVer(void) const
static const CSeq_id_Handle & GetAcc(const TData &data)
bool IsLoadedAccVer(void) const
TData GetBlob_ids(void) const
bool IsLoadedBlobState(void) const
bool IsLoadedBlobVersion(void) const
void SelectChunk(TChunkId chunk_id)
bool NeedsDelayedMainChunk(void) const
bool IsLoadedChunk(void) const
const CTSE_Split_Info & GetSplitInfo(void) const
bool IsLoadedBlob(void) const
TBlobVersion GetKnownBlobVersion(void) const
bool IsLoadedGi(void) const
static bool IsFound(const TData &data)
static TGi GetGi(const TData &data)
bool IsLoadedHash(void) const
static int GetHash(const TData &data)
bool IsLoadedLabel(void) const
bool SetLoadedLabel(const TData &data)
TData GetLabel(void) const
TData GetLength(void) const
bool IsLoadedLength(void) const
TData GetSeq_ids(void) const
bool IsLoaded(void) const
bool IsLoadedTaxId(void) const
TData GetTaxId(void) const
static bool IsFound(const TData &data)
static CSeq_inst::TMol GetType(const TData &data)
bool IsLoadedType(void) const
Data loader exceptions, used by GenBank loader.
static TPluginManager * Get(void)
static void LoadBlob(CReaderRequestResult &result, const CBlob_Info &blob_info)
static bool IsExtAnnot(const TBlobId &blob_id)
static void DumpDataAsText(const CID2_Reply_Data &data, CNcbiOstream &out)
static void OffsetAllGisToOM(CBeginInfo obj, CTSE_SetObjectInfo *set_info=0)
void ProcessBlobFromID2Data(CReaderRequestResult &result, const TBlobId &blob_id, TChunkId chunk_id, const CID2_Reply_Data &data) const
static void OffsetAllGisFromOM(CBeginInfo obj)
const CProcessor & GetProcessor(CProcessor::EType type) const
static bool SetBlobState(size_t i, CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TStates &ret)
CWriter * GetWriter(const CReaderRequestResult &result, CWriter::EType type) const
static bool CannotProcess(const CSeq_id_Handle &sih)
bool GetEnableSNP(void) const
bool GetEnableCDD(void) const
bool GetEnableWGS(void) const
bool IsSetEnableCDD(void) const
bool IsSetEnableSNP(void) const
bool IsSetEnableWGS(void) const
vector< CBlob_id > TLoadedBlob_ids
CDataLoader::STypeFound TSequenceType
vector< CSeq_id_Handle > TSeqIds
virtual bool LoadBlobSet(CReaderRequestResult &result, const TSeqIds &seq_ids)
virtual bool LoadHashes(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, THashes &ret, TKnown &known)
CReadDispatcher * m_Dispatcher
void SetAndSaveSeq_idAccVer(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const TSequenceAcc &acc_id) const
virtual bool LoadStates(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TStates &ret)
virtual bool LoadSequenceHash(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
virtual bool LoadSeq_idTaxId(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
CReaderAllocatedConnection CConn
void SetAndSaveNoSeq_idBlob_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const SAnnotSelector *sel, const CLoadLockGi &gi_lock) const
virtual bool LoadLabels(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TLabels &ret)
void SetAndSaveSequenceType(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const TSequenceType &type) const
virtual bool LoadTypes(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TTypes &ret)
void SetAndSaveSeq_idGi(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const TSequenceGi &gi) const
void SetAndSaveBlobVersion(CReaderRequestResult &result, const TBlobId &blob_id, TBlobVersion version) const
vector< CBlob_Info > TBlobIds
virtual bool LoadTaxIds(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TTaxIds &ret)
void SetAndSaveNoBlob(CReaderRequestResult &result, const TBlobId &blob_id, TChunkId chunk_id, TBlobState blob_state)
virtual bool LoadSequenceType(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
void SetAndSaveSeq_idSeq_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const CFixedSeq_ids &seq_ids) const
virtual bool LoadBulkIds(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TBulkIds &ret)
virtual bool LoadSequenceLength(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
virtual bool LoadChunks(CReaderRequestResult &result, const TBlobId &blob_id, const TChunkIds &chunk_ids)
void SetAndSaveSequenceLength(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, TSeqPos length) const
void SetAndSaveSeq_idTaxId(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, TTaxId taxid) const
vector< TSeqPos > TLengths
vector< pair< TBlobId, TChunkIds > > TBlobChunkIds
virtual bool LoadGis(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TGis &ret)
void SetAndSaveSeq_idLabel(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const string &label) const
virtual bool LoadAccVers(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TIds &ret)
vector< CSeq_inst::EMol > TTypes
virtual bool LoadSeq_idGi(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
vector< CSeq_id_Handle > TIds
CDataLoader::SAccVerFound TSequenceAcc
virtual bool LoadSeq_idAccVer(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
CDataLoader::SHashFound TSequenceHash
void SetAndSaveSeq_idBlob_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const SAnnotSelector *sel, CLoadLockBlobIds &lock, const CLoadLockBlobIds &blob_ids) const
void SetAndSaveSequenceHash(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, const TSequenceHash &hash) const
vector< TChunkId > TChunkIds
virtual bool LoadLengths(CReaderRequestResult &result, const TIds &ids, TLoaded &loaded, TLengths &ret)
virtual bool LoadBlobs(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, TContentsMask mask, const SAnnotSelector *sel)
void SetAndSaveNoSeq_idSeq_ids(CReaderRequestResult &result, const CSeq_id_Handle &seq_id, TState state) const
virtual bool LoadSeq_idLabel(CReaderRequestResult &result, const CSeq_id_Handle &seq_id)
CDataLoader::SGiFound TSequenceGi
TSplitVersion GetSplitVersion(void) const
Template class for iteration on objects of class C (non-medifiable version)
Template class for iteration on objects of class C.
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator end() const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
static CS_CONNECTION * conn
unsigned int TSeqPos
Type for sequence locations and lengths.
#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.
SStrictId_Tax::TId TTaxId
Taxon id type.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define TAX_ID_FROM(T, value)
@ eTakeOwnership
An object can take ownership of another.
void Set(TValue new_value) THROWS_NONE
Set atomic counter value.
TValue Add(int delta) THROWS_NONE
Atomically add value (=delta), and return new counter value.
TValue Get(void) const THROWS_NONE
Get atomic counter value.
CDiagContext & GetDiagContext(void)
Get diag context instance.
string GetSessionID(void) const
Session ID.
const string & GetNextSubHitID(CTempString prefix=CTempString())
Get current hit id appended with auto-incremented sub-hit id.
bool IsSetSessionID(void) const
static CRequestContext & GetRequestContext(void)
Shortcut to CDiagContextThreadData::GetThreadData().GetRequestContext()
string GetClientIP(void) const
Client IP/hostname.
bool IsSetHitID(EHitIDSource src=eHitID_Any) const
Check if there's an explicit hit id or the default one.
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
bool IsSetClientIP(void) const
#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)
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
#define NCBI_RETHROW(prev_exception, exception_class, err_code, message)
Generic macro to re-throw an exception.
void Info(CExceptionArgs_Base &args)
C * SerialClone(const C &src)
Create on heap a clone of the source object.
#define MSerial_AsnText
I/O stream manipulators â.
CConstRef< CSeq_id > GetSeqId(void) const
static const char * GetSNPScaleLimit_Name(ESNPScaleLimit value)
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
ESNPScaleLimit
SNP annotation scale limits.
CBeginInfo Begin(C &obj)
Get starting point of object hierarchy.
bool IsIncludedAnyNamedAnnotAccession(void) const
check if any named annot accession is included in the search
string CombineWithZoomLevel(const string &acc, int zoom_level)
Combine accession string and zoom level into a string with separator.
TSNPScaleLimit GetSNPScaleLimit(void) const
bool ExtractZoomLevel(const string &full_name, string *acc_ptr, int *zoom_level_ptr)
Extract optional zoom level suffix from named annotation string.
const TNamedAnnotAccessions & GetNamedAnnotAccessions(void) const
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
@ eParam_NoThread
Do not use per-thread values.
uint32_t Uint4
4-byte (32-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.
NCBI_NS_STD::string::size_type SIZE_TYPE
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case insensitive search.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
virtual void Process(SOCK sock)=0
Runs asynchronously (from a separate thread) for each request.
#define DEFINE_STATIC_FAST_MUTEX(id)
Define static fast mutex and initialize it.
static const char label[]
bool IsStr(void) const
Check if variant Str is selected.
const TTag & GetTag(void) const
Get the Tag member data.
bool IsId(void) const
Check if variant Id is selected.
const TDb & GetDb(void) const
Get the Db member data.
const TStr & GetStr(void) const
Get the variant data.
TId GetId(void) const
Get the variant data.
bool IsSetAnnot_info(void) const
annotation types in this blob annotation are unknown if this field is omitted Check if a value has be...
TVersion GetVersion(void) const
Get the Version member data.
TSat_key GetSat_key(void) const
Get the Sat_key member data.
const TError & GetError(void) const
Get the Error member data.
void SetBlob_id(TBlob_id &value)
Assign a value to Blob_id data member.
bool IsSetBlob_state(void) const
state bits of the blob, 0 or missing means regular live data Check if a value has been assigned to Bl...
void SetSplit_version(TSplit_version value)
Assign a value to Split_version data member.
bool IsSetBlob_state(void) const
state bits of the blob, 0 or missing means regular live data Check if a value has been assigned to Bl...
TSeq_id_type GetSeq_id_type(void) const
Get the Seq_id_type member data.
TChunks & SetChunks(void)
Assign a value to Chunks data member.
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
list< CRef< CID2_Error > > TError
const TBlob_id & GetBlob_id(void) const
Get the Blob_id member data.
void SetGet_data(TGet_data &value)
Assign a value to Get_data data member.
bool IsSetDiscard(void) const
Check if a value has been assigned to Discard data member.
bool IsSetBlob_state(void) const
state bits of the blob, 0 or missing means regular live data Check if a value has been assigned to Bl...
TSources & SetSources(void)
Assign a value to Sources data member.
bool IsEmpty(void) const
Check if variant Empty is selected.
bool IsSetVersion(void) const
version of blob, optional in some requests Check if a value has been assigned to Version data member.
const TAnnot_info & GetAnnot_info(void) const
Get the Annot_info member data.
void SetParams(TParams &value)
Assign a value to Params data member.
TBlob_state GetBlob_state(void) const
Get the Blob_state member data.
const TBlob_id & GetBlob_id(void) const
Get the Blob_id member data.
const TSeq_id & GetSeq_id(void) const
Get the variant data.
bool IsSetData(void) const
chunk data not set if error occurred Check if a value has been assigned to Data data member.
const TChunk_id & GetChunk_id(void) const
Get the Chunk_id member data.
void SetSat_key(TSat_key value)
Assign a value to Sat_key data member.
TBlob_state GetBlob_state(void) const
Get the Blob_state member data.
list< vector< char > * > TData
TBlob_state GetBlob_state(void) const
Get the Blob_state member data.
const TReply & GetReply(void) const
Get the Reply member data.
E_Choice Which(void) const
Which variant is currently selected.
const TBlob_id & GetBlob_id(void) const
Get the Blob_id member data.
TSplit_version GetSplit_version(void) const
Get the Split_version member data.
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
list< CID2S_Chunk_Id > TChunks
CID2_Request_Get_Seq_id TGet_seq_id
Tdata & Set(void)
Assign a value to data member.
TSub_sat GetSub_sat(void) const
Get the Sub_sat member data.
TSerial_number GetSerial_number(void) const
Get the Serial_number member data.
bool IsSetEnd_of_reply(void) const
this Seq-id is the last one in the request Check if a value has been assigned to End_of_reply data me...
const TSeq_id & GetSeq_id(void) const
Get the Seq_id member data.
const TData & GetData(void) const
Get the Data member data.
list< CRef< CID2_Request > > Tdata
bool IsSetSerial_number(void) const
request's serial number, copy from request Check if a value has been assigned to Serial_number data m...
bool IsSetError(void) const
Check if a value has been assigned to Error data member.
void SetSat(TSat value)
Assign a value to Sat data member.
const TRequest & GetRequest(void) const
Get the Request member data.
const TData & GetData(void) const
Get the Data member data.
bool IsInit(void) const
Check if variant Init is selected.
void SetRequest(TRequest &value)
Assign a value to Request data member.
bool IsSetData(void) const
blob split info not set if error occurred Check if a value has been assigned to Data data member.
void SetBlob_id(TBlob_id &value)
Assign a value to Blob_id data member.
TSat GetSat(void) const
Get the Sat member data.
void SetSub_sat(TSub_sat value)
Assign a value to Sub_sat data member.
const TBlob_id & GetBlob_id(void) const
Get the Blob_id member data.
list< CRef< CSeq_id > > TSeq_id
bool IsSetEnd_of_reply(void) const
true if this reply is the last one for the request false if more replies will follow Check if a value...
void SetSeq_id(TSeq_id &value)
Assign a value to Seq_id data member.
void SetExternal(void)
Set NULL data member (assign 'NULL' value to External data member).
TSplit_version GetSplit_version(void) const
Get the Split_version member data.
bool IsSetData(void) const
whole blob or blob skeleton not set if error occurred Check if a value has been assigned to Data data...
const TData & GetData(void) const
Get the Data member data.
const Tdata & Get(void) const
Get the member data.
@ eSeq_id_type_hash
return a sequence hash as integer in general id with db "HASH"
@ eSeq_id_type_any
return any qualified Seq-id
@ eSeq_id_type_taxid
return a sequence taxonomy ID as integer in general id with db "TAXID"
@ eSeq_id_type_seq_length
return a sequence Seq-inst.length as int in general id with db "Seq-inst.length"
@ eSeq_id_type_seq_mol
return a sequence Seq-inst.mol as int in general id with db "Seq-inst.mol"
@ eSeq_id_type_text
text Seq-id (accession etc) is preferred
@ eSeq_id_type_gi
gi is preferred
@ eSeq_id_type_label
return a sequence string label as string in general id with db "LABEL"
@ eSeq_id_type_all
return all qualified Seq-ids of the sequence
@ eSeverity_no_data
resolve request gives no data probably temporarily (see retry-delay field)
@ eSeverity_restricted_data
data exists but client doesn't have permission to get it
@ eSeverity_failed_command
command cannot be completed this time
@ eSeverity_failed_server
server cannot be used for a while
@ eSeverity_warning
nothing harmful happened
@ eSeverity_unsupported_command
this request type is not supported by server
@ eSeverity_invalid_arguments
error in request packet, cannot retry
@ eSeverity_failed_connection
connection cannot be reused, reconnect is required
@ eID2_Blob_State_suppressed
@ eID2_Blob_State_protected
@ eID2_Blob_State_suppressed_temp
@ eID2_Blob_State_withdrawn
bool IsSetSeq_loc(void) const
Check if a value has been assigned to Seq_loc data member.
bool IsSetName(void) const
name is set if this is named annot name may be empty which differ from unnamed annot Check if a value...
bool IsSetGraph(void) const
Check if a value has been assigned to Graph data member.
bool IsSetAlign(void) const
Check if a value has been assigned to Align data member.
const TName & GetName(void) const
Get the Name member data.
bool IsSetFeat(void) const
Check if a value has been assigned to Feat data member.
void ResetGraph(void)
Reset Graph data member.
bool IsGeneral(void) const
Check if variant General is selected.
E_Choice Which(void) const
Which variant is currently selected.
const TGeneral & GetGeneral(void) const
Get the variant data.
@ e_not_set
No variant selected.
EMol
molecule class in living organism
const struct ncbi::grid::netcache::search::fields::SIZE size
string s_Value(TValue value)
const GenericPointer< typename T::ValueType > T2 value
Static variables safety - create on demand, destroy on application termination.
Multi-threading â mutexes; rw-locks; semaphore.
Helper classes and templates to implement plugins.
#define DEFAULT_DEBUG_LEVEL
static const char kSpecialId_type[]
static void LoadedChunksPacket(CReaderRequestResult &result, CID2_Request_Packet &packet, vector< TChunkId > &chunks, const CBlob_id &blob_id)
NCBI_PARAM_ENUM_DEF_EX(objects::CSeq_id::ESNPScaleLimit, GENBANK, ID2SNP_SCALE_LIMIT, objects::CSeq_id::eSNPScaleLimit_Default, eParam_NoThread, GENBANK_ID2SNP_SCALE_LIMIT)
static const char kSpecialId_taxid[]
#define x_GetReaderName(conn)
static size_t GetMaxIdsRequestSize(void)
static size_t GetMaxChunksRequestSize(void)
typedef NCBI_PARAM_TYPE(GENBANK, ID2SNP_SCALE_LIMIT) TID2SNP_Scale_Limit
static const char kSpecialId_length[]
static const char kSpecialId_label[]
NCBI_PARAM_DECL(int, GENBANK, ID2_DEBUG)
static bool sx_IsSpecialId(const CSeq_id &id)
static bool LimitChunksRequests(size_t max_request_size=GetMaxChunksRequestSize())
NCBI_PARAM_ENUM_DECL(objects::CSeq_id::ESNPScaleLimit, GENBANK, ID2SNP_SCALE_LIMIT)
NCBI_DEFINE_ERR_SUBCODE_X(17)
NCBI_PARAM_ENUM_ARRAY(objects::CSeq_id::ESNPScaleLimit, GENBANK, ID2SNP_SCALE_LIMIT)
static bool SeparateChunksRequests(size_t max_request_size=GetMaxChunksRequestSize())
static const char kSpecialId_hash[]
NCBI_PARAM_DEF_EX(int, GENBANK, ID2_DEBUG, CId2ReaderBase::eTraceError, eParam_NoThread, GENBANK_ID2_DEBUG)
static bool GetSeqId(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
Defines CRequestContext class for NCBI C++ diagnostic API.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Better replacement of GetAccVer(), this method should be defined in data loaders, GetAccVer() is left...
Better replacement of GetGi(), this method should be defined in data loaders, GetGi() is left for com...
Better replacement of GetSequenceHash(), this method should be defined in data loaders,...
Better replacement of GetSequenceType(), this method should be defined in data loaders,...
CId2ReaderBase::TContentsMask m_ContentMask
list< CRef< CID2S_Seq_annot_Info > > TAnnotInfo
map< CSeq_id_Handle, TSeq_idsInfo > TSeq_idSeq_idsSet
pair< int, CReader::TSeqIds > TSeq_idsInfo
map< CBlob_id, CConstRef< CID2_Reply_Data > > TSkeletons
TSeq_idSeq_idsSet m_Seq_ids
map< string, TSeq_idsInfo > TStringSeq_idsSet
pair< int, TBlob_ids > TBlob_idsInfo
map< CSeq_id_Handle, TBlob_idsInfo > TBlob_idSet
map< CBlob_id, SId2BlobInfo > TBlob_ids
map< CBlob_id, int > TBlobStates
vector< const CID2_Request * > requests
CReader::TConn GetConn() const
vector< SId2ProcessorStage > stages
unique_ptr< CReaderAllocatedConnection > conn
CRef< CID2ProcessorPacketContext > packet_context
CID2Processor::TReplies replies
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