#endif
}
+ Status RegisterDbPaths(const std::vector<std::string>& paths) override {
+ std::vector<std::string> encoded_paths;
+ encoded_paths.reserve(paths.size());
+ for (auto& path : paths) {
+ auto status_and_enc_path = EncodePathWithNewBasename(path);
+ if (!status_and_enc_path.first.ok()) {
+ return status_and_enc_path.first;
+ }
+ encoded_paths.emplace_back(status_and_enc_path.second);
+ }
+ return EnvWrapper::Env::RegisterDbPaths(encoded_paths);
+ }
+
+ Status UnregisterDbPaths(const std::vector<std::string>& paths) override {
+ std::vector<std::string> encoded_paths;
+ encoded_paths.reserve(paths.size());
+ for (auto& path : paths) {
+ auto status_and_enc_path = EncodePathWithNewBasename(path);
+ if (!status_and_enc_path.first.ok()) {
+ return status_and_enc_path.first;
+ }
+ encoded_paths.emplace_back(status_and_enc_path.second);
+ }
+ return EnvWrapper::Env::UnregisterDbPaths(encoded_paths);
+ }
+
Status NewSequentialFile(const std::string& fname,
std::unique_ptr<SequentialFile>* result,
const EnvOptions& options) override {
*path = buf;
// Directory may already exist, so ignore return
- CreateDir(*path);
- return Status::OK();
+ return CreateDirIfMissing(*path);
}
Status NewLogger(const std::string& fname,