#include "../IStorage.h" #include #include class TestStorageFactory : public IStorageFactory { virtual class IStorage *create(int db, key_load_iterator itr) override; virtual const char *name() const override; }; class TestStorageProvider final : public IStorage { std::unordered_map m_map; public: TestStorageProvider(); virtual ~TestStorageProvider(); virtual void insert(const char *key, size_t cchKey, void *data, size_t cb, bool fHintOverwrite) override; virtual bool erase(const char *key, size_t cchKey) override; virtual void retrieve(const char *key, size_t cchKey, callbackSingle fn) const override; virtual size_t clear() override; virtual bool enumerate(callback fn) const override; virtual size_t count() const override; virtual void flush() override; /* This is permitted to be a shallow clone */ virtual const IStorage *clone() const override; };