futriix/src/storage/teststorageprovider.h
John Sully b752ad4ceb Fix failure to count keys in cluster slots when reloading a FLASH database
Former-commit-id: f6dd863e51f91620f184ff80f08cfe518d29c87f
2020-04-28 20:48:46 -04:00

31 lines
975 B
C++

#include "../IStorage.h"
#include <string>
#include <unordered_map>
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<std::string, std::string> 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;
};