#pragma once #ifndef BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_DATATREESTORE_DATATREESTORE_H_ #define BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_DATATREESTORE_DATATREESTORE_H_ #include #include #include #include #include namespace blobstore { namespace onblocks { namespace datanodestore { class DataNodeStore; } namespace datatreestore { class DataTree; class DataTreeStore { public: DataTreeStore(cpputils::unique_ref nodeStore); virtual ~DataTreeStore(); boost::optional> load(const blockstore::Key &key); cpputils::unique_ref createNewTree(); void remove(cpputils::unique_ref tree); private: cpputils::unique_ref _nodeStore; DISALLOW_COPY_AND_ASSIGN(DataTreeStore); }; } } } #endif