From 282b85c341bb426d50c31ac32190a05812d478c2 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Thu, 14 Jun 2018 17:36:14 +0200 Subject: [PATCH] Do not use std::sto[fi] or std::to_string. --- src/server/kiwix-serve.cpp | 11 ++++++++++- src/server/request_context.cpp | 10 ---------- src/server/request_context.h | 10 +++++++++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/server/kiwix-serve.cpp b/src/server/kiwix-serve.cpp index 6adaf4e..9aac128 100644 --- a/src/server/kiwix-serve.cpp +++ b/src/server/kiwix-serve.cpp @@ -105,6 +105,15 @@ static pthread_mutex_t searchLock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t compressorLock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t regexLock = PTHREAD_MUTEX_INITIALIZER; +template +inline std::string _tostring(const T& value) +{ + std::ostringstream stream; + stream << value; + return stream.str(); +} + + /* Try to get the mimeType from the file extension */ static std::string getMimeTypeForFile(const std::string& filename) { @@ -352,7 +361,7 @@ static struct MHD_Response* build_callback_response_from_entry( MHD_add_response_header(response, MHD_HTTP_HEADER_CONTENT_RANGE, oss.str().c_str()); MHD_add_response_header(response, MHD_HTTP_HEADER_CONTENT_LENGTH, - std::to_string(range_len).c_str()); + _tostring(range_len).c_str()); /* Specify the mime type */ MHD_add_response_header( diff --git a/src/server/request_context.cpp b/src/server/request_context.cpp index 81a4973..34bf288 100644 --- a/src/server/request_context.cpp +++ b/src/server/request_context.cpp @@ -197,16 +197,6 @@ std::string RequestContext::get_argument(const std::string& name) { return arguments.at(name); } -template<> -unsigned int RequestContext::get_argument(const std::string& name) { - return std::stoi(arguments.at(name).c_str()); -} - -template<> -float RequestContext::get_argument(const std::string& name) { - return std::stof(arguments.at(name).c_str()); -} - std::string RequestContext::get_header(const std::string& name) { return headers.at(name); } diff --git a/src/server/request_context.h b/src/server/request_context.h index 687fd84..388ce77 100644 --- a/src/server/request_context.h +++ b/src/server/request_context.h @@ -62,7 +62,13 @@ class RequestContext { std::string get_header(const std::string& name); template - T get_argument(const std::string& name); + T get_argument(const std::string& name) { + std::istringstream stream(arguments.at(name)); + T v; + stream >> v; + return v; + } + RequestMethod get_method(); std::string get_url(); @@ -96,5 +102,7 @@ class RequestContext { static int fill_argument(void *, enum MHD_ValueKind, const char*, const char*); }; +template<> std::string RequestContext::get_argument(const std::string& name); + #endif //REQUEST_CONTEXT_H