#pragma once #ifndef MESSMER_BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_PARALLELACCESSDATATREESTORE_PARALLELACCESSDATATREESTORE_H_ #define MESSMER_BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_PARALLELACCESSDATATREESTORE_PARALLELACCESSDATATREESTORE_H_ #include #include #include #include namespace blobstore { namespace onblocks { namespace datatreestore { class DataTreeStore; class DataTree; } namespace parallelaccessdatatreestore { class DataTreeRef; //TODO Test CachingDataTreeStore class ParallelAccessDataTreeStore final { public: ParallelAccessDataTreeStore(cpputils::unique_ref dataTreeStore); ~ParallelAccessDataTreeStore(); boost::optional> load(const blockstore::Key &key); cpputils::unique_ref createNewTree(); void remove(cpputils::unique_ref tree); private: cpputils::unique_ref _dataTreeStore; parallelaccessstore::ParallelAccessStore _parallelAccessStore; DISALLOW_COPY_AND_ASSIGN(ParallelAccessDataTreeStore); }; } } } #endif