18 return "Tiered Cache\n"
53 if ((fd >= 0) || (fd != -ENOENT)) {
return fd;}
56 if (fd2 < 0) {
return fd;}
72 std::vector<char> m_buffer;
74 uint64_t remaining =
size;
76 while (remaining > 0) {
78 int64_t result =
lower_->
Pread(fd2, &m_buffer[0], nbytes, offset);
80 if ((result < 0) || (result != nbytes)) {
117 if (lower_result < 0) {
159 int lower_result = upper_result;
165 return (upper_result < 0) ? upper_result : lower_result;
172 int lower_result = upper_result;
178 return (upper_result < 0) ? upper_result : lower_result;
185 int lower_result = upper_result;
191 return (upper_result < 0) ? upper_result : lower_result;
206 bool lower_success =
true;
209 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