add a factory method for creating hdfs env

main
Shu Zhang 9 years ago
parent b9f77ba12b
commit 4fd23fb130
  1. 4
      include/rocksdb/env.h
  2. 10
      util/env_hdfs.cc

@ -947,6 +947,10 @@ class WritableFileWrapper : public WritableFile {
// *base_env must remain live while the result is in use. // *base_env must remain live while the result is in use.
Env* NewMemEnv(Env* base_env); Env* NewMemEnv(Env* base_env);
// Returns a new environment that is used for HDFS environment.
// This is a factory method for HdfsEnv declared in hdfs/env_hdfs.h
Status NewHdfsEnv(Env** hdfs_env, const std::string& fsname);
} // namespace rocksdb } // namespace rocksdb
#endif // STORAGE_ROCKSDB_INCLUDE_ENV_H_ #endif // STORAGE_ROCKSDB_INCLUDE_ENV_H_

@ -594,6 +594,11 @@ Status HdfsEnv::NewLogger(const std::string& fname,
return Status::OK(); return Status::OK();
} }
// The factory method for creating an HDFS Env
Status NewHdfsEnv(Env** hdfs_env, const std::string& fsname) {
*hdfs_env = new HdfsEnv(fsname);
return Status::OK();
}
} // namespace rocksdb } // namespace rocksdb
#endif // ROCKSDB_HDFS_FILE_C #endif // ROCKSDB_HDFS_FILE_C
@ -607,6 +612,11 @@ namespace rocksdb {
const EnvOptions& options) { const EnvOptions& options) {
return Status::NotSupported("Not compiled with hdfs support"); return Status::NotSupported("Not compiled with hdfs support");
} }
Status NewHdfsEnv(Env** hdfs_env, const std::string& fsname) {
return Status::NotSupported("Not compiled with hdfs support");
}
} }
#endif #endif

Loading…
Cancel
Save