18 return "Tiered Cache\n"
53 if ((fd >= 0) || (fd != -ENOENT)) {
76 std::vector<char> m_buffer;
78 uint64_t remaining =
size;
80 while (remaining > 0) {
82 int64_t result =
lower_->
Pread(fd2, &m_buffer[0], nbytes, offset);
84 if ((result < 0) || (result != nbytes)) {
122 if (lower_result < 0) {
165 int lower_result = upper_result;
171 return (upper_result < 0) ? upper_result : lower_result;
178 int lower_result = upper_result;
184 return (upper_result < 0) ? upper_result : lower_result;
191 int lower_result = upper_result;
197 return (upper_result < 0) ? upper_result : lower_result;
202 const std::string &fqrn) {
212 bool lower_success =
true;
215 return upper_success && lower_success;
const manifest::Manifest * manifest() const
virtual int64_t GetSize(int fd)=0
virtual int AbortTxn(void *txn)
int RestoreState(const int fd_progress, void *state)
virtual manifest::Breadcrumb LoadBreadcrumb(const std::string &)
void * SaveState(const int fd_progress)
assert((mem||(size==0))&&"Out Of Memory")
virtual int AbortTxn(void *txn)=0
virtual bool StoreBreadcrumb(const manifest::Manifest &)
virtual bool DoFreeState(void *data)
virtual void * DoSaveState()
virtual std::string Describe()
TieredCacheManager(CacheManager *upper_cache, CacheManager *lower_cache)
virtual int Open(const LabeledObject &object)=0
virtual int Reset(void *txn)
static CacheManager * Create(CacheManager *upper_cache, CacheManager *lower_cache)
virtual int CommitTxn(void *txn)=0
virtual int Open(const LabeledObject &object)
virtual int OpenFromTxn(void *txn)=0
virtual int CommitTxn(void *txn)
virtual void CtrlTxn(const Label &label, const int flags, void *txn)
virtual int DoRestoreState(void *data)
virtual int Close(int fd)=0
virtual int64_t Write(const void *buf, uint64_t size, void *txn)
virtual int Reset(void *txn)=0
void FreeState(const int fd_progress, void *state)
virtual void CtrlTxn(const Label &label, const int flags, void *txn)=0
QuotaManager * quota_mgr()
static const unsigned kCopyBufferSize
virtual int StartTxn(const shash::Any &id, uint64_t size, void *txn)
QuotaManager * quota_mgr_
virtual uint32_t SizeOfTxn()=0
virtual manifest::Breadcrumb LoadBreadcrumb(const std::string &fqrn)
virtual ~TieredCacheManager()
virtual int StartTxn(const shash::Any &id, uint64_t size, void *txn)=0
virtual int64_t Pread(int fd, void *buf, uint64_t size, uint64_t offset)=0
virtual bool StoreBreadcrumb(const manifest::Manifest &manifest)
virtual std::string Describe()=0
virtual int64_t Write(const void *buf, uint64_t sz, void *txn)=0