#pragma once #include "rocksdb.h" class RocksDBStorageFactory : public IStorageFactory { std::shared_ptr m_spdb; // Note: This must be first so it is deleted last std::vector> m_vecspcols; std::shared_ptr m_pfilemanager; std::string m_path; bool m_fCreatedTempFolder = false; public: RocksDBStorageFactory(const char *dbfile, int dbnum, const char *rgchConfig, size_t cchConfig); ~RocksDBStorageFactory(); virtual IStorage *create(int db, key_load_iterator iter, void *privdata) override; virtual const char *name() const override; virtual size_t totalDiskspaceUsed() const override; virtual bool FSlow() const override { return true; } virtual size_t filedsRequired() const override; std::string getTempFolder(); private: void setVersion(rocksdb::ColumnFamilyHandle*); };