27 void Log(
Logger* info_log,
const char* format, ...) {
28 if (info_log != NULL) {
31 info_log->
Logv(format, ap);
36 static Status DoWriteStringToFile(Env* env,
const Slice& data,
37 const std::string& fname,
40 Status s = env->NewWritableFile(fname, &file);
44 s = file->Append(data);
45 if (s.ok() && should_sync) {
53 env->DeleteFile(fname);
59 const std::string& fname) {
60 return DoWriteStringToFile(env, data, fname,
false);
64 const std::string& fname) {
65 return DoWriteStringToFile(env, data, fname,
true);
75 static const int kBufferSize = 8192;
76 char* space =
new char[kBufferSize];
79 s = file->
Read(kBufferSize, &fragment, space);
83 data->append(fragment.
data(), fragment.
size());
84 if (fragment.
empty()) {
Status WriteStringToFileSync(Env *env, const Slice &data, const std::string &fname)
virtual ~SequentialFile()
Status WriteStringToFile(Env *env, const Slice &data, const std::string &fname)
const char * data() const
void Log(Logger *info_log, const char *format,...)
virtual void Logv(const char *format, va_list ap)=0
virtual ~RandomAccessFile()
virtual Status NewSequentialFile(const std::string &fname, SequentialFile **result)=0
virtual Status Read(size_t n, Slice *result, char *scratch)=0
Status ReadFileToString(Env *env, const std::string &fname, std::string *data)