From cc44e8bbe0dfc77d41ae3cd4834939745d3cce0e Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Sun, 20 Jan 2013 15:44:16 -0500 Subject: [PATCH] time /string conversion --- include/fc/fstream.hpp | 1 + include/fc/time.hpp | 2 ++ src/time.cpp | 11 +++++++++++ vendor/CMakeLists.txt | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/fc/fstream.hpp b/include/fc/fstream.hpp index 7cc365a..fd31862 100644 --- a/include/fc/fstream.hpp +++ b/include/fc/fstream.hpp @@ -1,5 +1,6 @@ #pragma once #include +#include #include namespace fc { diff --git a/include/fc/time.hpp b/include/fc/time.hpp index be2861c..cdda425 100644 --- a/include/fc/time.hpp +++ b/include/fc/time.hpp @@ -29,6 +29,8 @@ namespace fc { static time_point max() { return time_point( microseconds::max() ); } static time_point min() { return time_point(); } operator fc::string()const; + + static time_point from_iso_string( const fc::string& s ); const microseconds& time_since_epoch()const { return elapsed; } bool operator > ( const time_point& t )const { return elapsed._count > t.elapsed._count; } diff --git a/src/time.cpp b/src/time.cpp index 1093a47..e55c965 100644 --- a/src/time.cpp +++ b/src/time.cpp @@ -14,4 +14,15 @@ namespace fc { time_t tt = bch::system_clock::to_time_t(tp); return boost::posix_time::to_iso_string( boost::posix_time::from_time_t(tt) ); } + time_point time_point::from_iso_string( const fc::string& s ) { + auto pt = boost::posix_time::from_iso_string(s); + return fc::time_point(fc::seconds( (pt - boost::posix_time::from_time_t(0)).total_seconds() )); + } + class value; + void pack( fc::value& v, const fc::time_point& t ) { + v = fc::string(t); + } + void unpack( const fc::value& v, fc::time_point& t ) { + t = fc::time_point::from_iso_string(v.cast()); + } } diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index b12310e..16ac56b 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -1,3 +1,3 @@ add_subdirectory( libssh2-1.4.2 ) #add_subdirectory( zlib-1.2.7) -add_subdirectory( sigar ) +#add_subdirectory( sigar )