1 #ifndef CONNECT_SERVICES___NETICACHE_CLIENT__HPP
2 #define CONNECT_SERVICES___NETICACHE_CLIENT__HPP
101 const string& cache_name,
102 const string& client_name);
105 const string& cache_name,
106 const string& client_name);
109 void RegisterSession(
unsigned pid);
111 void UnRegisterSession(
unsigned pid);
118 unsigned int timeout,
119 unsigned int max_timeout = 0);
122 virtual bool IsOpen()
const;
125 virtual void Store(
const string&
key,
130 unsigned int time_to_live = 0,
152 typedef grid::netcache::search::CFields
CFields;
178 virtual bool Read(
const string&
key,
184 bool ReadPart(
const string&
key,
200 size_t* blob_size_ptr,
250 size_t* blob_size_ptr,
295 unsigned int time_to_live = 0,
310 bool HasBlob(
const string&
key,
const string&
subkey,
313 virtual void Purge(time_t access_timeout);
315 virtual void Purge(
const string&
key,
317 time_t access_timeout);
323 void SetCommunicationTimeout(
const STimeout& to);
324 STimeout GetCommunicationTimeout()
const;
Client to NetCache server (implements ICache interface)
definition of a Culling tree
BLOB cache read/write/maintenance interface.
virtual bool IsOpen() const =0
virtual EKeepVersions GetVersionRetention() const =0
Get version retention.
virtual void SetVersionRetention(EKeepVersions policy)=0
Set version retention policy.
virtual size_t GetSize(const string &key, TBlobVersion version, const string &subkey)=0
Check if BLOB exists, return BLOB size.
virtual void GetBlobOwner(const string &key, TBlobVersion version, const string &subkey, string *owner)=0
Retrieve BLOB owner.
virtual void Remove(const string &key, TBlobVersion version, const string &subkey)=0
Remove specific cache entry.
virtual TFlags GetFlags()=0
Retrieve the effective combination of flags from the underlying storage.
virtual IWriter * GetWriteStream(const string &key, TBlobVersion version, const string &subkey, unsigned int time_to_live=0, const string &owner=kEmptyStr)=0
Return sequential stream interface to write BLOB data.
virtual TTimeStampFlags GetTimeStampPolicy() const =0
Get timestamp policy.
virtual bool HasBlobs(const string &key, const string &subkey)=0
Check if any BLOB exists (any version)
virtual string GetCacheName(void) const =0
virtual void Purge(time_t access_timeout)=0
Delete all BLOBs older than specified.
virtual void SetTimeStampPolicy(TTimeStampFlags policy, unsigned int timeout, unsigned int max_timeout=0)=0
Set timestamp update policy.
virtual void SetFlags(TFlags flags)=0
Pass flags to the underlying storage.
virtual time_t GetAccessTime(const string &key, TBlobVersion version, const string &subkey)=0
Return last access time for the specified cache entry.
virtual bool Read(const string &key, TBlobVersion version, const string &subkey, void *buf, size_t buf_size)=0
Fetch the BLOB.
virtual void GetBlobAccess(const string &key, TBlobVersion version, const string &subkey, SBlobAccessDescr *blob_descr)=0
Get BLOB access using BlobAccessDescr.
EBlobVersionValidity
BLOB version existence and validity – from the point of view of the underlying cache implementation.
virtual void Store(const string &key, TBlobVersion version, const string &subkey, const void *data, size_t size, unsigned int time_to_live=0, const string &owner=kEmptyStr)=0
Add or replace BLOB.
virtual bool SameCacheParams(const TCacheParams *params) const =0
virtual int GetTimeout() const =0
Get expiration timeout.
virtual void SetBlobVersionAsCurrent(const string &key, const string &subkey, TBlobVersion version)=0
Set current valid version for a BLOB.
virtual IReader * GetReadStream(const string &key, TBlobVersion version, const string &subkey)=0
Return sequential stream interface to read BLOB data.
A very basic data-read interface.
A very basic data-write interface.
Include a standard set of the NCBI C++ Toolkit most basic headers.
list< string > GetSubkeyList(const string &key)
grid::netcache::search::CBlobInfo CBlobInfo
void Cache_RegisterDriver_NetCache(void)
grid::netcache::search::CExpression CExpression
const char *const kNetICacheDriverName
EAppRegistry
Defines how this object must be initialized.
void NCBI_EntryPoint_xcache_netcache(CPluginManager< ICache >::TDriverInfoList &info_list, CPluginManager< ICache >::EEntryPointRequest method)
grid::netcache::search::CFields CFields
list< SDriverInfo > TDriverInfoList
List of driver information.
EEntryPointRequest
Actions performed by the entry point.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_NET_CACHE_EXPORT
Interfaces for a local cache of versioned binary large objects (BLOBS).
const string version
version string
const struct ncbi::grid::netcache::search::fields::SIZE size
const struct ncbi::grid::netcache::search::fields::KEY key
const struct ncbi::grid::netcache::search::fields::SUBKEY subkey
Multi-threading – mutexes; rw-locks; semaphore.
#define NCBI_NET_COMPONENT_IMPL(component)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)