16 const std::string& fname);
18 static std::string MakeFileName(
const std::string&
name,
uint64_t number,
21 snprintf(buf,
sizeof(buf),
"/%06llu.%s",
22 static_cast<unsigned long long>(number),
29 return MakeFileName(name, number,
"log");
34 return MakeFileName(name, number,
"sst");
40 snprintf(buf,
sizeof(buf),
"/MANIFEST-%06llu",
41 static_cast<unsigned long long>(number));
46 return dbname +
"/CURRENT";
50 return dbname +
"/LOCK";
55 return MakeFileName(dbname, number,
"dbtmp");
59 return dbname +
"/LOG";
64 return dbname +
"/LOG.old";
79 if (rest ==
"CURRENT") {
82 }
else if (rest ==
"LOCK") {
85 }
else if (rest ==
"LOG" || rest ==
"LOG.old") {
107 if (suffix ==
Slice(
".log")) {
109 }
else if (suffix ==
Slice(
".sst")) {
111 }
else if (suffix ==
Slice(
".dbtmp")) {
125 Slice contents = manifest;
128 std::string tmp =
TempFileName(dbname, descriptor_number);
virtual Status DeleteFile(const std::string &fname)=0
Status WriteStringToFileSync(Env *env, const Slice &data, const std::string &fname)
bool ParseFileName(const std::string &fname, uint64_t *number, FileType *type)
bool starts_with(const Slice &x) const
std::string OldInfoLogFileName(const std::string &dbname)
virtual Status RenameFile(const std::string &src, const std::string &target)=0
std::string TempFileName(const std::string &dbname, uint64_t number)
std::string InfoLogFileName(const std::string &dbname)
std::string TableFileName(const std::string &name, uint64_t number)
void remove_prefix(size_t n)
bool ConsumeDecimalNumber(Slice *in, uint64_t *val)
std::string DescriptorFileName(const std::string &dbname, uint64_t number)
unsigned long long uint64_t
Status SetCurrentFile(Env *env, const std::string &dbname, uint64_t descriptor_number)
std::string CurrentFileName(const std::string &dbname)
std::string LogFileName(const std::string &name, uint64_t number)
std::string ToString() const
std::string LockFileName(const std::string &dbname)