#pragma once #ifndef BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_DATATREESTORE_DATATREESTORE_H_ #define BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_DATATREESTORE_DATATREESTORE_H_ #include #include "messmer/cpp-utils/macros.h" namespace blockstore{ class Key; } namespace blobstore { namespace onblocks { namespace datanodestore { class DataNodeStore; } namespace datatreestore { class DataTree; class DataTreeStore { public: DataTreeStore(std::unique_ptr nodeStore); virtual ~DataTreeStore(); std::unique_ptr load(const blockstore::Key &key); std::unique_ptr createNewTree(); void remove(std::unique_ptr tree); private: std::unique_ptr _nodeStore; DISALLOW_COPY_AND_ASSIGN(DataTreeStore); }; } } } #endif