#include <Storage.h>
Public Member Functions | |
~Storage () override | |
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 Fs::Ufs::UFSSwapDir, Store::Controller, Store::Disks, and StoreControllerStub.
◆ create()
|
pure virtual |
Implemented in Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disk, Store::Disks, and Transients.
◆ currentCount()
|
pure virtual |
Implemented in Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disks, StoreControllerStub, TestSwapDir, and Transients.
◆ currentSize()
|
pure virtual |
Implemented in Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disks, StoreControllerStub, TestSwapDir, and Transients.
◆ 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 Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disks, TestSwapDir, and Transients.
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 Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disks, TestSwapDir, and Transients.
◆ getStats()
|
pure virtual |
Implemented in StoreControllerStub, MemStore, Store::Controller, Store::Disk, Store::Disks, and Transients.
◆ init()
|
pure virtual |
Start preparing the store for use. To check readiness, callers should use readable() and writable() methods.
Implemented in Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disks, StoreControllerStub, TestSwapDir, and Transients.
◆ maintain()
|
pure virtual |
Implemented in Rock::SwapDir, Fs::Ufs::UFSSwapDir, MemStore, Store::Controller, Store::Disk, Store::Disks, StoreControllerStub, and Transients.
◆ maxObjectSize()
|
pure virtual |
Implemented in MemStore, Store::Controller, Store::Disk, Store::Disks, StoreControllerStub, and Transients.
◆ 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 MemStore, Store::Controller, Store::Disk, Store::Disks, StoreControllerStub, TestSwapDir, and Transients.
◆ minSize()
|
pure virtual |
Implemented in MemStore, Store::Controller, Store::Disk, Store::Disks, StoreControllerStub, and Transients.
◆ stat()
|
pure virtual |
Output stats to the provided store entry. TODO: make these calls asynchronous
Implemented in Store::Controller, Store::Disk, Store::Disks, StoreControllerStub, TestSwapDir, MemStore, and Transients.
◆ sync()
|
inlinevirtual |
Reimplemented in Fs::Ufs::UFSSwapDir, Store::Controller, and Store::Disks.
The documentation for this class was generated from the following file:
- src/store/Storage.h