diff options
author | Sara Golemon <sara.golemon@mongodb.com> | 2017-06-21 17:01:55 +0000 |
---|---|---|
committer | Sara Golemon <sara.golemon@mongodb.com> | 2017-06-28 13:43:13 -0400 |
commit | c7d54af3418b8dfaa498a3a94edf8fab4adff965 (patch) | |
tree | 7c0ff5d09776e1d23cd3857d80bd1f6d285e3e43 /src/mongo/db/server_parameters.cpp | |
parent | d4e50b4b9eb3b5c48351bd2b0d7973b389291119 (diff) | |
download | mongo-c7d54af3418b8dfaa498a3a94edf8fab4adff965.tar.gz |
SERVER-26449 BoundServerParameter
Implement BoundServerParameter class which accepts
getter/setter callbacks to be invoked on append()/setFromString().
Moved ExportedServerParameter to be a child of BoundServerParameter.
This noticably simplifies the implementation.
Implement LockedServerParameter class as child of
BoundServerParameter which provides storage and unique_lock<mutex>
guarded accessors.
Diffstat (limited to 'src/mongo/db/server_parameters.cpp')
-rw-r--r-- | src/mongo/db/server_parameters.cpp | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/src/mongo/db/server_parameters.cpp b/src/mongo/db/server_parameters.cpp index ded970acd10..d1a9dc96280 100644 --- a/src/mongo/db/server_parameters.cpp +++ b/src/mongo/db/server_parameters.cpp @@ -83,50 +83,4 @@ void ServerParameterSet::add(ServerParameter* sp) { x = sp; } -template <typename T, ServerParameterType paramType> -Status ExportedServerParameter<T, paramType>::setFromString(const string& str) { - T value; - Status status = parseNumberFromString(str, &value); - if (!status.isOK()) - return status; - return set(value); -} - -#define EXPORTED_SERVER_PARAMETER(PARAM_TYPE) \ - template <> \ - Status ExportedServerParameter<bool, PARAM_TYPE>::setFromString(const string& str) { \ - if (str == "true" || str == "1") \ - return set(true); \ - if (str == "false" || str == "0") \ - return set(false); \ - return Status(ErrorCodes::BadValue, "can't convert string to bool"); \ - } \ - \ - template Status ExportedServerParameter<int, PARAM_TYPE>::setFromString(const string& str); \ - \ - template Status ExportedServerParameter<long long, PARAM_TYPE>::setFromString( \ - const string& str); \ - \ - template Status ExportedServerParameter<double, PARAM_TYPE>::setFromString(const string& str); - -// Define instances for each possible combination of number types we support, and -// ServerParameterType -EXPORTED_SERVER_PARAMETER(ServerParameterType::kStartupOnly); -EXPORTED_SERVER_PARAMETER(ServerParameterType::kRuntimeOnly); -EXPORTED_SERVER_PARAMETER(ServerParameterType::kStartupAndRuntime); - -template <> -Status ExportedServerParameter<string, ServerParameterType::kStartupOnly>::setFromString( - const string& str) { - return set(str); -} - -template <> -Status ExportedServerParameter<vector<string>, ServerParameterType::kStartupOnly>::setFromString( - const string& str) { - vector<string> v; - splitStringDelim(str, &v, ','); - return set(v); -} - } // namespace mongo |