Browse Source

[3793] Changes after review:
- Added rationale for ptimeToText, durationToText
- Added missing headers
- Removed the default values in addValue()
- StatsDuration is now passed by reference

Tomek Mrugalski 10 years ago
parent
commit
fb7878a784

+ 1 - 1
src/lib/stats/observation.cc

@@ -36,7 +36,7 @@ Observation::Observation(const std::string& name, const double value)
     setValue(value);
 }
 
-Observation::Observation(const std::string& name, const StatsDuration value)
+Observation::Observation(const std::string& name, const StatsDuration& value)
     :name_(name), type_(STAT_DURATION) {
     setValue(value);
 }

+ 5 - 5
src/lib/stats/observation.h

@@ -110,7 +110,7 @@ class Observation {
     ///
     /// @param name observation name
     /// @param value duration observed.
-    Observation(const std::string& name, const StatsDuration value);
+    Observation(const std::string& name, const StatsDuration& value);
 
     /// @brief Constructor for string observations
     ///
@@ -146,25 +146,25 @@ class Observation {
     ///
     /// @param value integer value observed
     /// @throw InvalidStatType if statistic is not integer
-    void addValue(const uint64_t value = 1);
+    void addValue(const uint64_t value);
 
     /// @brief Records incremental floating point observation
     ///
     /// @param value floating point value observed
     /// @throw InvalidStatType if statistic is not fp
-    void addValue(const double value = 1.0f);
+    void addValue(const double value);
 
     /// @brief Records incremental duration observation
     ///
     /// @param value duration value observed
     /// @throw InvalidStatType if statistic is not time duration
-    void addValue(const StatsDuration& value = StatsDuration(0,0,1,0));
+    void addValue(const StatsDuration& value);
 
     /// @brief Records incremental string observation.
     ///
     /// @param value string value observed
     /// @throw InvalidStatType if statistic is not a string
-    void addValue(const std::string& value = "");
+    void addValue(const std::string& value);
 
     /// @brief Resets statistic.
     ///

+ 2 - 0
src/lib/util/boost_time_utils.cc

@@ -13,6 +13,8 @@
 // PERFORMANCE OF THIS SOFTWARE.
 
 #include <util/boost_time_utils.h>
+#include <sstream>
+#include <iomanip>
 
 std::string
 isc::util::ptimeToText(boost::posix_time::ptime t) {

+ 16 - 0
src/lib/util/boost_time_utils.h

@@ -16,15 +16,31 @@
 #define KEA_BOOST_TIME_UTILS_H
 
 #include <boost/date_time/posix_time/posix_time.hpp>
+#include <string>
 
 namespace isc {
 namespace util {
 
 /// @brief Converts ptime structure to text
+///
+/// This is Kea implementation for converting ptime to strings.
+/// It's a functional equivalent of boost::posix_time::to_simple_string. We do
+/// not use it, though, because it would introduce unclear dependency on
+/// boost_time_date library. First, we try to avoid depending on boost libraries
+/// (we tend to use only the headers). Second, this dependency is system
+/// specific, i.e. it is required on Ubuntu and FreeBSD, but doesn't seem to
+/// be needed on OS X. Since the functionality needed is minor, we decided to
+/// reimplement it on our own, rather than introduce extra dependencies.
+/// This explanation also applies to @ref durationToText.
+///
 /// @return a string representing time
 std::string ptimeToText(boost::posix_time::ptime t);
 
 /// @brief Converts StatsDuration to text
+///
+/// This is Kea equivalent of boost::posix_time::to_simple_string(time_duration).
+/// See @ref ptimeToText for explanation why we chose our own implementation.
+///
 /// @return a string representing time
 std::string durationToText(boost::posix_time::time_duration dur);