19 static void DeleteEntry(
const Slice& key,
void*
value) {
26 static void UnrefEntry(
void* arg1,
void* arg2) {
27 Cache* cache =
reinterpret_cast<Cache*
>(arg1);
28 Cache::Handle* h =
reinterpret_cast<Cache::Handle*
>(arg2);
48 char buf[
sizeof(file_number)];
50 Slice key(buf,
sizeof(buf));
52 if (*handle == NULL) {
62 assert(table == NULL);
80 if (tableptr != NULL) {
93 if (tableptr != NULL) {
104 void (*saver)(
void*,
const Slice&,
const Slice&)) {
116 char buf[
sizeof(file_number)];
virtual void * Value(Handle *handle)=0
void Evict(uint64_t file_number)
virtual void Release(Handle *handle)=0
virtual void Erase(const Slice &key)=0
virtual Status NewRandomAccessFile(const std::string &fname, RandomAccessFile **result)=0
virtual Handle * Insert(const Slice &key, void *value, size_t charge, void(*deleter)(const Slice &key, void *value))=0
Status InternalGet(const ReadOptions &, const Slice &key, void *arg, void(*handle_result)(void *arg, const Slice &k, const Slice &v))
const std::string dbname_
Status FindTable(uint64_t file_number, uint64_t file_size, Cache::Handle **)
Iterator * NewIterator(const ReadOptions &) const
std::string TableFileName(const std::string &name, uint64_t number)
virtual Handle * Lookup(const Slice &key)=0
void EncodeFixed64(char *buf, uint64_t value)
unsigned long long uint64_t
Iterator * NewErrorIterator(const Status &status)
std::string const dbname_
void RegisterCleanup(CleanupFunction function, void *arg1, void *arg2)
Cache * NewLRUCache(size_t capacity)
Status Get(const ReadOptions &options, uint64_t file_number, uint64_t file_size, const Slice &k, void *arg, void(*handle_result)(void *, const Slice &, const Slice &))
static Status Open(const Options &options, RandomAccessFile *file, uint64_t file_size, Table **table)
Iterator * NewIterator(const ReadOptions &options, uint64_t file_number, uint64_t file_size, Table **tableptr=NULL)
TableCache(const std::string &dbname, const Options *options, int entries)