#pragma once #ifndef BLOCKSTORE_IMPLEMENTATIONS_ONDISK_ONDISKBLOCKSTORE_H_ #define BLOCKSTORE_IMPLEMENTATIONS_ONDISK_ONDISKBLOCKSTORE_H_ #include #include "../../interface/helpers/BlockStoreWithRandomKeys.h" #include "messmer/cpp-utils/macros.h" namespace blockstore { namespace ondisk { class OnDiskBlockStore: public BlockStoreWithRandomKeys { public: explicit OnDiskBlockStore(const boost::filesystem::path &rootdir); boost::optional> tryCreate(const Key &key, cpputils::Data data) override; boost::optional> load(const Key &key) override; void remove(cpputils::unique_ref block) override; uint64_t numBlocks() const override; private: const boost::filesystem::path _rootdir; DISALLOW_COPY_AND_ASSIGN(OnDiskBlockStore); }; } } #endif