diff options
author | Andy Schwerin <schwerin@10gen.com> | 2013-03-04 10:08:59 -0500 |
---|---|---|
committer | Andy Schwerin <schwerin@10gen.com> | 2013-03-11 13:40:23 -0400 |
commit | d1049f2f1940b89fc01f9eb0e1fa2fe85ce08080 (patch) | |
tree | b5d550cef0e719b00dd6e56771308f6cdf191380 /src/mongo/db/server_parameters.cpp | |
parent | 3f40b3aabc51462b66855863401dbdbbaf5fb7aa (diff) | |
download | mongo-d1049f2f1940b89fc01f9eb0e1fa2fe85ce08080.tar.gz |
Use parseNumberFromString<double> when parsing ExportedServerParameter<double>.
Diffstat (limited to 'src/mongo/db/server_parameters.cpp')
-rw-r--r-- | src/mongo/db/server_parameters.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/mongo/db/server_parameters.cpp b/src/mongo/db/server_parameters.cpp index 3aac6d13d80..6810e39716f 100644 --- a/src/mongo/db/server_parameters.cpp +++ b/src/mongo/db/server_parameters.cpp @@ -18,6 +18,7 @@ #include "mongo/pch.h" +#include "mongo/base/parse_number.h" #include "mongo/db/server_parameters.h" namespace mongo { @@ -63,20 +64,19 @@ namespace mongo { x = sp; } - template<> - Status ExportedServerParameter<int>::setFromString( const string& str ) { - return set( atoi(str.c_str() ) ); + template <typename T> + Status ExportedServerParameter<T>::setFromString( const string& str ) { + T value; + Status status = parseNumberFromString( str, &value ); + if ( !status.isOK() ) + return status; + return set( value ); } - template<> - Status ExportedServerParameter<double>::setFromString( const string& str ) { - const char* start = str.c_str(); - char* end; - double d = strtod( str.c_str(), &end ); - if ( start == end ) - return Status( ErrorCodes::BadValue, "not a double" ); - return set( d ); - } + template Status ExportedServerParameter<int>::setFromString( const string& str ); + template Status ExportedServerParameter<long>::setFromString( const string& str ); + template Status ExportedServerParameter<long long>::setFromString( const string& str ); + template Status ExportedServerParameter<double>::setFromString( const string& str ); template<> Status ExportedServerParameter<string>::setFromString( const string& str ) { @@ -94,7 +94,6 @@ namespace mongo { return Status( ErrorCodes::BadValue, "can't convert string to bool" ); } - template<> Status ExportedServerParameter< vector<string> >::setFromString( const string& str ) { vector<string> v; |