50 #define NCBI_USE_ERRCODE_X Objtools_AsnCache_Loader
70 const string& db_path,
82 return "AsnCache_dataloader";
88 return string(
"AsnCache_dataloader:") + db_path;
106 const string& db_path)
160 time_t timestamp = 0;
175 time_t timestamp = 0;
176 Uint4 sequence_length = 0;
180 timestamp, sequence_length, tax_id)) {
181 return sequence_length;
202 vector<CSeq_id_Handle> bioseq_ids;
206 ids.swap(bioseq_ids);
217 time_t timestamp = 0;
218 Uint4 sequence_length = 0;
222 timestamp, sequence_length, tax_id)) {
229 #if NCBI_PRODUCTION_VER > 20110000
237 ret.resize(ids.size());
240 loaded.resize(ids.size());
241 for (
size_t i = 0;
i < ids.size(); ++
i) {
243 time_t timestamp = 0;
244 if (index.cache->GetIdInfo(ids[
i], gi, timestamp)) {
272 "CAsnCache_DataLoader::GetBlobById(): blob for " +
312 "setup failure: no cache objects available");
321 TIndexMap::iterator iter =
m_IndexMap.begin() + id;
322 if ( !iter->get() ) {
Contains the class definiton for CAsnCache, the main client class for accessing the ASN cache data.
void NCBI_EntryPoint_DataLoader_AsnCache(CPluginManager< CDataLoader >::TDriverInfoList &info_list, CPluginManager< CDataLoader >::EEntryPointRequest method)
void NCBI_EntryPoint_xloader_asncache(CPluginManager< objects::CDataLoader >::TDriverInfoList &info_list, CPluginManager< objects::CDataLoader >::EEntryPointRequest method)
void DataLoaders_Register_AsnCache(void)
const string kDataLoader_AsnCache_DriverName("asncache")
virtual ~CAsnCache_DataLoaderCF(void)
CAsnCache_DataLoaderCF(void)
virtual CDataLoader * CreateAndRegister(CObjectManager &om, const TPluginManagerParamTree *params) const
virtual TBlobId GetBlobId(const CSeq_id_Handle &idh)
static string GetLoaderNameFromArgs(void)
virtual TTaxId GetTaxId(const CSeq_id_Handle &idh)
Request for a taxonomy id of a sequence.
SCacheInfo & x_GetIndex()
virtual void GetIds(const CSeq_id_Handle &idh, TIds &ids)
virtual TTSE_Lock GetBlobById(const TBlobId &blob_id)
virtual TTSE_LockSet GetRecords(const CSeq_id_Handle &idh, EChoice choice)
Request from a datasource using handles and ranges instead of seq-loc The TSEs loaded in this call wi...
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, const string &db_path, CObjectManager::EIsDefault is_default=CObjectManager::eNonDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
virtual TGi GetGi(const CSeq_id_Handle &idh)
Request for a gi of a sequence.
virtual TSeqPos GetSequenceLength(const CSeq_id_Handle &idh)
Request for a length of a sequence.
CAsnCache_DataLoader(void)
virtual ~CAsnCache_DataLoader(void)
virtual bool CanGetBlobById() const
CAsnCache is used by clients to access the ASN cache data.
bool GetIdInfo(const objects::CSeq_id_Handle &id, CAsnIndex::TGi &gi, time_t ×tamp)
Return the GI and timestamp for a given seq_id.
bool GetIndexEntry(const objects::CSeq_id_Handle &id, CAsnIndex::SIndexInfo &info)
Get the full ASN cache index entry.
CRef< objects::CSeq_entry > GetEntry(const objects::CSeq_id_Handle &id)
Return a blob as a CSeq_entry object.
bool GetSeqIds(const objects::CSeq_id_Handle &id, vector< objects::CSeq_id_Handle > &all_ids, bool cheap_only=true)
Return the set of seq-ids associated with a given ID.
const string & GetDriverName(void) const
CTSE_LoadLock GetTSE_LoadLock(const TBlobId &blob_id)
void SetSeq_entry(CSeq_entry &entry, CTSE_SetObjectInfo *set_info=0)
bool IsLoaded(void) const
definition of a Culling tree
iterator_bool insert(const value_type &val)
#define GI_FROM(T, value)
unsigned int TSeqPos
Type for sequence locations and lengths.
SStrictId_Tax::TId TTaxId
Taxon id type.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define TAX_ID_FROM(T, value)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
string AsString(void) const
const value_type & GetValue(void) const
CBlobIdFor< CSeq_id_Handle > CBlobIdSeq_id
TLoader * GetLoader(void) const
Get pointer to the loader.
vector< CSeq_id_Handle > TIds
CDataSource * GetDataSource(void) const
EChoice
main blob is blob with sequence all other blobs are external and contain external annotations
EIsDefault
Flag defining if the data loader is included in the "default" group.
TRegisterInfo GetRegisterInfo(void)
virtual void GetGis(const TIds &ids, TLoaded &loaded, TGis &ret)
Bulk request for gis of a set of sequences.
static void RegisterInObjectManager(CObjectManager &om, CLoaderMaker_Base &loader_maker, CObjectManager::EIsDefault is_default, CObjectManager::TPriority priority)
Register the loader only if the name is not yet registered in the object manager.
@ eAll
all blobs (main and external)
@ eCore
?only seq-entry core?
@ eBioseq
main blob with complete bioseq
@ eBioseqCore
main blob with bioseq core (no seqdata and annots)
static void NCBI_EntryPointImpl(TDriverInfoList &info_list, EEntryPointRequest method)
Entry point implementation.
string GetParam(const string &driver_name, const TPluginManagerParamTree *params, const string ¶m_name, bool mandatory, const string &default_value) const
Utility function to get an element of parameter tree Throws an exception when mandatory parameter is ...
list< SDriverInfo > TDriverInfoList
List of driver information.
EEntryPointRequest
Actions performed by the entry point.
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.
Plugin manager (using class factory paradigm).
Helper classes and templates to implement plugins.
CRef< objects::CObjectManager > om
structure for common cache reader&writer implementation