futriix-old/src/IStorage.h
John Sully 130589d8d1 Initial RocksDB integration
Former-commit-id: 0de9e5b692c02e779e538ddd0a56d10215e501bb
2019-12-06 20:39:32 -05:00

20 lines
586 B
C++

#pragma once
#include <functional>
class IStorage
{
public:
typedef std::function<void(const char *, size_t, const void *, size_t)> callback;
virtual ~IStorage() {}
virtual void insert(const char *key, size_t cchKey, void *data, size_t cb) = 0;
virtual void erase(const char *key, size_t cchKey) = 0;
virtual void retrieve(const char *key, size_t cchKey, callback fn) const = 0;
virtual size_t clear() = 0;
virtual void enumerate(callback fn) const = 0;
/* This is permitted to be a shallow clone */
virtual const IStorage *clone() const = 0;
};