summaryrefslogtreecommitdiff
path: root/src/mongo/db/server_parameters.cpp
diff options
context:
space:
mode:
authorAndy Schwerin <schwerin@10gen.com>2013-03-04 10:08:59 -0500
committerAndy Schwerin <schwerin@10gen.com>2013-03-11 13:40:23 -0400
commitd1049f2f1940b89fc01f9eb0e1fa2fe85ce08080 (patch)
treeb5d550cef0e719b00dd6e56771308f6cdf191380 /src/mongo/db/server_parameters.cpp
parent3f40b3aabc51462b66855863401dbdbbaf5fb7aa (diff)
downloadmongo-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.cpp25
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;