24 size_t pos = fname.rfind(
'/');
26 if (pos == std::string::npos) {
29 basename = std::string(fname.data() + pos + 1, fname.size() - pos - 1);
40 std::string r =
"corruption: ";
75 std::string r =
" put '";
83 std::string r =
" del '";
94 std::string r =
"--- offset ";
97 if (record.
size() < 12) {
98 r +=
"log record length ";
100 r +=
" is too small\n";
111 batch_item_printer.
dst_ = dst;
125 std::string r =
"--- offset ";
virtual Status status() const =0
virtual void Delete(const Slice &key)
bool ParseFileName(const std::string &fname, uint64_t *number, FileType *type)
Iterator * NewIterator(const ReadOptions &) const
virtual Slice key() const =0
virtual Slice value() const =0
std::string DebugString() const
static Status Open(const Options &options, RandomAccessFile *file, uint64_t file_size, Table **table)
Status Iterate(Handler *handler) const
virtual void SeekToFirst()=0
virtual Status GetFileSize(const std::string &fname, uint64_t *file_size)=0
bool ParseInternalKey(const Slice &internal_key, ParsedInternalKey *result)
virtual Status NewRandomAccessFile(const std::string &fname, RandomAccessFile **result)=0
std::string ToString() const
bool ReadRecord(Slice *record, std::string *scratch)
Status DumpLog(Env *env, const std::string &fname, WritableFile *dst)
bool GuessType(const std::string &fname, FileType *type)
Status DumpTable(Env *env, const std::string &fname, WritableFile *dst)
static void SetContents(WriteBatch *batch, const Slice &contents)
virtual void Put(const Slice &key, const Slice &value)
static void WriteBatchPrinter(uint64_t pos, Slice record, WritableFile *dst)
static Status InvalidArgument(const Slice &msg, const Slice &msg2=Slice())
virtual Status NewSequentialFile(const std::string &fname, SequentialFile **result)=0
Status DecodeFrom(const Slice &src)
virtual Status Append(const Slice &data)=0
Status PrintLogContents(Env *env, const std::string &fname, void(*func)(uint64_t, Slice, WritableFile *), WritableFile *dst)
uint64_t LastRecordOffset()
virtual void Corruption(size_t bytes, const Status &status)
virtual bool Valid() const =0
static void VersionEditPrinter(uint64_t pos, Slice record, WritableFile *dst)
Status DumpDescriptor(Env *env, const std::string &fname, WritableFile *dst)
static SequenceNumber Sequence(const WriteBatch *batch)
Status DumpFile(Env *env, const std::string &fname, WritableFile *dst)
void AppendNumberTo(std::string *str, uint64_t num)
void AppendEscapedStringTo(std::string *str, const Slice &value)