#include <Storage.h>


Public Member Functions | |
virtual | ~Storage () |
virtual void | create ()=0 |
create system resources needed for this store to operate in the future More... | |
virtual void | init ()=0 |
virtual uint64_t | maxSize () const =0 |
virtual uint64_t | minSize () const =0 |
the minimum size the store will shrink to via normal housekeeping More... | |
virtual uint64_t | currentSize () const =0 |
current size More... | |
virtual uint64_t | currentCount () const =0 |
the total number of objects stored right now More... | |
virtual int64_t | maxObjectSize () const =0 |
the maximum size of a storable object; -1 if unlimited More... | |
virtual void | getStats (StoreInfoStats &stats) const =0 |
collect statistics More... | |
virtual void | stat (StoreEntry &e) const =0 |
virtual void | evictCached (StoreEntry &e)=0 |
virtual void | evictIfFound (const cache_key *)=0 |
virtual int | callback () |
called once every main loop iteration; TODO: Move to UFS code. More... | |
virtual void | maintain ()=0 |
perform regular periodic maintenance; TODO: move to UFSSwapDir::Maintain More... | |
virtual void | sync () |
prepare for shutdown More... | |
Detailed Description
A "response storage" abstraction. This API is shared among Controller and Controlled classes.
Constructor & Destructor Documentation
◆ ~Storage()
Member Function Documentation
◆ callback()
|
inlinevirtual |
Reimplemented in Store::Disks, Store::Controller, Fs::Ufs::UFSSwapDir, and TestStore.
◆ create()
|
pure virtual |
Implemented in Transients, Store::Disks, Store::Disk, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, and Rock::SwapDir.
◆ currentCount()
|
pure virtual |
Implemented in Transients, TestSwapDir, Store::Disks, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, TestStore, and Rock::SwapDir.
◆ currentSize()
|
pure virtual |
Implemented in Transients, TestSwapDir, Store::Disks, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, TestStore, and Rock::SwapDir.
◆ evictCached()
|
pure virtual |
Prevent new get() calls from returning the matching entry. If the matching entry is unused, it may be removed from the store now. The store entry is matched using either e
attachment info or e.key
.
Implemented in Transients, TestSwapDir, Store::Disks, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, and Rock::SwapDir.
Referenced by Store::Disks::evictCached().
◆ evictIfFound()
|
pure virtual |
An evictCached() equivalent for callers that did not get() a StoreEntry. Callers with StoreEntry objects must use evictCached() instead.
Implemented in Transients, TestSwapDir, Store::Disks, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, and Rock::SwapDir.
◆ getStats()
|
pure virtual |
Implemented in Transients, Store::Disks, Store::Disk, Store::Controller, MemStore, and TestStore.
◆ init()
|
pure virtual |
Start preparing the store for use. To check readiness, callers should use readable() and writable() methods.
Implemented in Transients, TestSwapDir, Store::Disks, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, TestStore, and Rock::SwapDir.
◆ maintain()
|
pure virtual |
Implemented in Transients, Store::Disks, Store::Disk, Store::Controller, MemStore, Fs::Ufs::UFSSwapDir, TestStore, and Rock::SwapDir.
◆ maxObjectSize()
|
pure virtual |
Implemented in Transients, Store::Disks, Store::Disk, Store::Controller, MemStore, and TestStore.
◆ maxSize()
|
pure virtual |
The maximum size the store will support in normal use. Inaccuracy is permitted, but may throw estimates for memory etc out of whack.
Implemented in Transients, TestSwapDir, Store::Disks, Store::Disk, Store::Controller, MemStore, and TestStore.
◆ minSize()
|
pure virtual |
Implemented in Transients, Store::Disks, Store::Disk, Store::Controller, MemStore, and TestStore.
◆ stat()
|
pure virtual |
Output stats to the provided store entry. TODO: make these calls asynchronous
Implemented in Transients, MemStore, TestSwapDir, Store::Disks, Store::Disk, Store::Controller, and TestStore.
◆ sync()
|
inlinevirtual |
Reimplemented in Store::Disks, Store::Controller, and Fs::Ufs::UFSSwapDir.
The documentation for this class was generated from the following file:
- src/store/Storage.h