acceptable =
true;
131acceptable = acceptable && (gi == request.
GetGI());
137acceptable = acceptable && (seq_id_type == request.
GetSeqIdType());
144::psg::retrieval::BioseqInfoValue
info;
149 for(
auto const& item :
info.seq_ids()) {
150seq_ids.
insert(make_tuple(
static_cast<int16_t>(item.sec_seq_id_type()), item.sec_seq_id()));
169vector<CBioseqInfoRecord> response;
183 while(has_current) {
184 intseq_id_type{-1},
version{-1};
188|| accession.compare(
key.data<
const char>()) != 0
195response.resize(response.size() + 1);
196 auto& last_record = response[response.size() - 1];
198.SetAccession(accession)
200.SetSeqIdType(seq_id_type)
204response.resize(response.size() - 1);
217vector<CBioseqInfoRecord> response;
224 intseq_id_type{-1},
version{-1};
228response.resize(response.size() + 1);
229 auto& last_record = response[response.size() - 1];
231.SetAccession(accession)
233.SetSeqIdType(seq_id_type)
237response.resize(response.size() - 1);
285 const char*
key,
size_tkey_sz,
int&
version,
int& seq_id_type,
int64_t& gi)
303 const char*
key,
size_tkey_sz,
string& accession,
int&
version,
int& seq_id_type,
int64_t& gi
308accession.assign(
key, ofs);
#define BEGIN_IDBLOB_SCOPE
CBioseqInfoRecord::TSeqIdType GetSeqIdType() const
CBioseqInfoRecord::TAccession GetAccession() const
CBioseqInfoRecord::TVersion GetVersion() const
CBioseqInfoRecord::TGI GetGI() const
bool HasField(EFields field) const
CBioseqInfoRecord & SetDateChanged(TDateChanged value)
CBioseqInfoRecord & SetSat(TSat value)
CBioseqInfoRecord & SetName(TName value)
CBioseqInfoRecord & SetLength(TLength value)
CBioseqInfoRecord & SetTaxId(TTaxId value)
CBioseqInfoRecord & SetSatKey(TSatKey value)
CBioseqInfoRecord & SetSeqIds(TSeqIds const &value)
CBioseqInfoRecord & SetState(TState value)
CBioseqInfoRecord & SetMol(TMol value)
CBioseqInfoRecord & SetSeqState(TSeqState value)
CBioseqInfoRecord & SetHash(THash value)
unique_ptr< lmdb::env > m_Env
CLMDBReadOnlyTxn BeginReadTxn()
unique_ptr< lmdb::dbi, function< void(lmdb::dbi *)> > m_Dbi
~CPubseqGatewayCacheBioseqInfo() override
vector< CBioseqInfoRecord > Fetch(CBioseqInfoFetchRequest const &request)
string x_MakeLookupKey(CBioseqInfoFetchRequest const &request) const
bool x_ExtractRecord(CBioseqInfoRecord &record, lmdb::val const &value) const
static string PackKey(const string &accession, int version)
bool x_IsMatchingRecord(CBioseqInfoFetchRequest const &request, int version, int seq_id_type, int64_t gi) const
static bool UnpackKey(const char *key, size_t key_sz, int &version, int &seq_id_type, int64_t &gi)
vector< CBioseqInfoRecord > FetchLast(void)
void Pack(string &value, TInt bytes) const
TInt Unpack(const char *key) const
static cursor open(MDB_txn *const txn, const MDB_dbi dbi)
Creates an LMDB cursor.
Resource class for `MDB_dbi` handles.
void close(MDB_env *const env)
Closes DB handle.
static dbi open(MDB_txn *const txn, const char *const name=nullptr, const unsigned int flags=default_flags)
Opens a database handle.
Wrapper class for `MDB_val` structures.
iterator_bool insert(const value_type &val)
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
@ MDB_LAST
Position at last key/data item.
@ MDB_NEXT
Position at next data item.
@ MDB_SET_RANGE
Position at first key greater than or equal to specified key.
@ MDB_GET_CURRENT
Return key/data at current cursor position.
const string version
version string
const struct ncbi::grid::netcache::search::fields::KEY key
const GenericPointer< typename T::ValueType > T2 value
static const unsigned kPackedZeroSz
static const unsigned kPackedVersionSz
static const unsigned kPackedSeqIdTypeSz
CPubseqGatewayCacheUnpackBytes TUnpackBytes
size_t PackedKeySize(size_t acc_sz)
static const unsigned kPackedGISz
CPubseqGatewayCachePackBytes TPackBytes
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