#pragma once #ifndef BLOBSTORE_IMPLEMENTATIONS_ONBLOCKS_PARALLELACCESSDATATREESTORE_PARALLELACCESSDATATREESTORE_H_ #define 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 { public: ParallelAccessDataTreeStore(std::unique_ptr dataTreeStore); virtual ~ParallelAccessDataTreeStore(); std::unique_ptr load(const blockstore::Key &key); std::unique_ptr createNewTree(); void remove(std::unique_ptr tree); private: std::unique_ptr _dataTreeStore; parallelaccessstore::ParallelAccessStore _parallelAccessStore; DISALLOW_COPY_AND_ASSIGN(ParallelAccessDataTreeStore); }; } } } #endif