#pragma once #ifndef BLOCKSTORE_IMPLEMENTATIONS_INMEMORY_INMEMORYBLOCK_H_ #define BLOCKSTORE_IMPLEMENTATIONS_INMEMORY_INMEMORYBLOCK_H_ #include #include "../../utils/Data.h" #include "messmer/cpp-utils/macros.h" namespace blockstore { namespace testfake { class FakeBlockStore; class FakeBlock: public Block { public: FakeBlock(FakeBlockStore *store, const Key &key, std::shared_ptr data); virtual ~FakeBlock(); void *data() override; const void *data() const override; void flush() override; size_t size() const override; private: FakeBlockStore *_store; std::shared_ptr _data; DISALLOW_COPY_AND_ASSIGN(FakeBlock); }; } } #endif