summaryrefslogtreecommitdiff
path: root/src/mongo/db/server_parameters.cpp
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2017-06-21 17:01:55 +0000
committerSara Golemon <sara.golemon@mongodb.com>2017-06-28 13:43:13 -0400
commitc7d54af3418b8dfaa498a3a94edf8fab4adff965 (patch)
tree7c0ff5d09776e1d23cd3857d80bd1f6d285e3e43 /src/mongo/db/server_parameters.cpp
parentd4e50b4b9eb3b5c48351bd2b0d7973b389291119 (diff)
downloadmongo-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.cpp46
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