48 char buf[
sizeof(file_number)];
50 Slice key(buf,
sizeof(buf));
52 if (*handle == NULL) {
68 assert(table == NULL);
86 if (tableptr != NULL) {
99 if (tableptr != NULL) {
106 uint64_t file_number,
110 void (*saver)(
void*,
const Slice&,
const Slice&)) {
122 char buf[
sizeof(file_number)];
virtual Handle * Insert(const Slice &key, void *value, size_t charge, void(*deleter)(const Slice &key, void *value))=0
Iterator * NewIterator(const ReadOptions &) const
static void DeleteEntry(const Slice &key, void *value)
virtual void Release(Handle *handle)=0
virtual void * Value(Handle *handle)=0
static Status Open(const Options &options, RandomAccessFile *file, uint64_t file_size, Table **table)
virtual Handle * Lookup(const Slice &key)=0
std::string TableFileName(const std::string &name, uint64_t number)
void Evict(uint64_t file_number)
virtual Status NewRandomAccessFile(const std::string &fname, RandomAccessFile **result)=0
void EncodeFixed64(char *buf, uint64_t value)
Status InternalGet(const ReadOptions &, const Slice &key, void *arg, void(*handle_result)(void *arg, const Slice &k, const Slice &v))
Status FindTable(uint64_t file_number, uint64_t file_size, Cache::Handle **)
Iterator * NewErrorIterator(const Status &status)
static void UnrefEntry(void *arg1, void *arg2)
std::string SSTTableFileName(const std::string &name, uint64_t number)
Iterator * NewIterator(const ReadOptions &options, uint64_t file_number, uint64_t file_size, Table **tableptr=NULL)
Cache * NewLRUCache(size_t capacity)
void RegisterCleanup(CleanupFunction function, void *arg1, void *arg2)
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 &))
virtual void Erase(const Slice &key)=0
const std::string dbname_
TableCache(const std::string &dbname, const Options *options, int entries)