From 4fd23fb130a9f4d340517fcb20e8b0b4bc3f6513 Mon Sep 17 00:00:00 2001 From: Shu Zhang Date: Wed, 23 Dec 2015 17:26:50 -0800 Subject: [PATCH] add a factory method for creating hdfs env --- include/rocksdb/env.h | 4 ++++ util/env_hdfs.cc | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/rocksdb/env.h b/include/rocksdb/env.h index e17ae3eae..e5f892a75 100644 --- a/include/rocksdb/env.h +++ b/include/rocksdb/env.h @@ -947,6 +947,10 @@ class WritableFileWrapper : public WritableFile { // *base_env must remain live while the result is in use. 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 #endif // STORAGE_ROCKSDB_INCLUDE_ENV_H_ diff --git a/util/env_hdfs.cc b/util/env_hdfs.cc index e7844e8dc..21035e18f 100644 --- a/util/env_hdfs.cc +++ b/util/env_hdfs.cc @@ -594,6 +594,11 @@ Status HdfsEnv::NewLogger(const std::string& fname, 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 #endif // ROCKSDB_HDFS_FILE_C @@ -607,6 +612,11 @@ namespace rocksdb { const EnvOptions& options) { 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