5 #ifndef CVMFS_CACHE_STREAM_H_
6 #define CVMFS_CACHE_STREAM_H_
20 class DownloadManager;
70 virtual int Open(
const LabeledObject &
object);
71 virtual int64_t
GetSize(
int fd);
72 virtual int Close(
int fd);
73 virtual int64_t
Pread(
int fd,
void *buf, uint64_t
size, uint64_t offset);
74 virtual int Dup(
int fd);
83 virtual void CtrlTxn(
const Label &label,
const int flags,
void *txn) {
86 virtual int64_t
Write(
const void *buf, uint64_t
size,
void *txn)
111 int PlantFd(
int fd_in_cache_mgr);
136 return !(*
this == other);
157 int64_t
Stream(
const FdInfo &info,
void *buf, uint64_t
size, uint64_t offset);
175 #endif // CVMFS_CACHE_STREAM_H_
Counters(perf::Statistics *statistics)
virtual int Close(int fd)
const manifest::Manifest * manifest() const
virtual uint32_t SizeOfTxn()
int PlantFd(int fd_in_cache_mgr)
virtual bool AcquireQuotaManager(QuotaManager *quota_mgr)
perf::Counter * n_buffer_hits
UniquePtr< Counters > counters_
perf::Counter * sz_transfer_ms
void * state_backing_cachemgr
perf::Counter * n_downloads
pthread_mutex_t * lock_fd_table_
virtual int Reset(void *txn)
virtual int CommitTxn(void *txn)
static const size_t kDefaultBufferSize
perf::Counter * sz_transferred_bytes
virtual CacheManagerIds id()
FdInfo(const CacheManager::LabeledObject &object)
SmallHashDynamic< shash::Any, RingBuffer::ObjectHandle_t > buffered_objects_
StreamingCacheManager(unsigned max_open_fds, CacheManager *cache_mgr, download::DownloadManager *regular_download_mgr, download::DownloadManager *external_download_mgr, size_t buffer_size, perf::Statistics *statistics)
download::DownloadManager * external_download_mgr_
virtual int64_t GetSize(int fd)
download::DownloadManager * regular_download_mgr_
FdTable< FdInfo > fd_table_
CacheManager * MoveOutBackingCacheMgr(int *root_fd)
virtual int OpenFromTxn(void *txn)
const Counters & counters() const
virtual bool StoreBreadcrumb(const manifest::Manifest &manifest)
bool operator==(const FdInfo &other) const
virtual int64_t Pread(int fd, void *buf, uint64_t size, uint64_t offset)
bool operator!=(const FdInfo &other) const
UniquePtr< RingBuffer > buffer_
perf::Counter * n_buffer_objects
virtual void CtrlTxn(const Label &label, const int flags, void *txn)
virtual int AbortTxn(void *txn)
UniquePtr< CacheManager > cache_mgr_
void SetExternalDownloadManager(download::DownloadManager *download_mgr)
download::DownloadManager * SelectDownloadManager(const FdInfo &info)
FdTable< FdInfo > * fd_table
virtual int StartTxn(const shash::Any &id, uint64_t size, void *txn)
pthread_mutex_t * lock_buffer_
perf::Counter * n_buffer_evicts
virtual int64_t Write(const void *buf, uint64_t size, void *txn)
virtual ~StreamingCacheManager()
CacheManager::Label label
perf::Counter * n_buffer_obstacles
QuotaManager * quota_mgr()
virtual std::string Describe()
virtual int Readahead(int fd)
void SetRegularDownloadManager(download::DownloadManager *download_mgr)
virtual manifest::Breadcrumb LoadBreadcrumb(const std::string &fqrn)
virtual int Open(const LabeledObject &object)
virtual bool DoFreeState(void *data)
virtual int DoRestoreState(void *data)
int64_t Stream(const FdInfo &info, void *buf, uint64_t size, uint64_t offset)
virtual void * DoSaveState()