ndn::time Namespace Reference

Classes

class  CustomClock
 Class implementing custom system or steady clock behavior. More...
 
class  steady_clock
 Steady clock. More...
 
class  system_clock
 System clock. More...
 
class  UnitTestClock
 Clock that can be used in unit tests for time-dependent tests independent of wall clock. More...
 
class  UnitTestClockTraits
 Traits for UnitTestClock, defining default behavior for different clocks. More...
 
class  UnitTestClockTraits< system_clock >
 Specialization of UnitTestClockTraits for system_clock. More...
 

Typedefs

typedef boost::chrono::steady_clock base_steady_clock
 
using CustomSteadyClock = CustomClock< steady_clock >
 
using CustomSystemClock = CustomClock< system_clock >
 
using days = duration< int_fast32_t, boost::ratio< 86400 >>
 
using UnitTestSteadyClock = UnitTestClock< steady_clock >
 
using UnitTestSystemClock = UnitTestClock< system_clock >
 

Functions

template<typename Rep , typename Period , typename = typename std::enable_if<std::numeric_limits<Rep>::is_signed>::type>
constexpr duration< Rep, Period > abs (duration< Rep, Period > d)
 
static boost::posix_time::ptime convertToPosixTime (const system_clock::TimePoint &timePoint)
 
static system_clock::TimePoint convertToTimePoint (const boost::posix_time::ptime &ptime)
 
system_clock::TimePoint fromIsoString (const std::string &isoString)
 Convert from the ISO string (YYYYMMDDTHHMMSS,fffffffff) representation to the internal time format. More...
 
system_clock::TimePoint fromString (const std::string &timePointStr, const std::string &format="%Y-%m-%d %H:%M:%S", const std::locale &locale=std::locale("C"))
 Convert from string of specified format into time point. More...
 
system_clock::TimePoint fromUnixTimestamp (milliseconds duration)
 Convert UNIX timestamp to system_clock::TimePoint. More...
 
const system_clock::TimePointgetUnixEpoch ()
 Get system_clock::TimePoint representing UNIX time epoch (00:00:00 on Jan 1, 1970) More...
 
void setCustomClocks (shared_ptr< CustomSteadyClock > steadyClock=nullptr, shared_ptr< CustomSystemClock > systemClock=nullptr)
 Set custom system and steady clocks. More...
 
std::string toIsoString (const system_clock::TimePoint &timePoint)
 Convert to the ISO string representation of the time (YYYYMMDDTHHMMSS,fffffffff) More...
 
std::string toString (const system_clock::TimePoint &timePoint, const std::string &format="%Y-%m-%d %H:%M:%S", const std::locale &locale=std::locale("C"))
 Convert time point to string with specified format. More...
 
milliseconds toUnixTimestamp (const system_clock::TimePoint &point)
 Convert system_clock::TimePoint to UNIX timestamp. More...
 

Variables

static shared_ptr< CustomSteadyClockg_steadyClock
 
static shared_ptr< CustomSystemClockg_systemClock
 

Typedef Documentation

typedef boost::chrono::steady_clock ndn::time::base_steady_clock

Definition at line 76 of file time.cpp.

Definition at line 54 of file time-custom-clock.hpp.

Definition at line 53 of file time-custom-clock.hpp.

using ndn::time::days = typedef duration<int_fast32_t, boost::ratio<86400>>

Definition at line 36 of file time.hpp.

Function Documentation

template<typename Rep , typename Period , typename = typename std::enable_if<std::numeric_limits<Rep>::is_signed>::type>
constexpr duration<Rep, Period> ndn::time::abs ( duration< Rep, Period >  d)
Returns
the absolute value of the duration d
Note
The function does not participate in the overload resolution unless std::numeric_limits<Rep>::is_signed is true.

Definition at line 51 of file time.hpp.

static boost::posix_time::ptime ndn::time::convertToPosixTime ( const system_clock::TimePoint timePoint)
static

Definition at line 125 of file time.cpp.

static system_clock::TimePoint ndn::time::convertToTimePoint ( const boost::posix_time::ptime &  ptime)
static

Definition at line 151 of file time.cpp.

system_clock::TimePoint ndn::time::fromIsoString ( const std::string &  isoString)

Convert from the ISO string (YYYYMMDDTHHMMSS,fffffffff) representation to the internal time format.

Examples of accepted ISO strings:

  • with fractional nanoseconds: 20020131T100001,123456789
  • with fractional microseconds: 20020131T100001,123456
  • with fractional milliseconds: 20020131T100001,123
  • without fractional seconds: 20020131T100001

Definition at line 164 of file time.cpp.

system_clock::TimePoint ndn::time::fromString ( const std::string &  timePointStr,
const std::string &  format = "%Y-%m-%d %H:%M:%S",
const std::locale &  locale = std::locale("C") 
)

Convert from string of specified format into time point.

By default, Y-m-d H:M:S is used, accepting dates like 2014-04-10 22:51:00

Parameters
timePointStrstring representing time point
formatinput output format (default: Y-m-d H:M:S)
localeinput locale (default: "C" locale)
See also
http://www.boost.org/doc/libs/1_54_0/doc/html/date_time/date_time_io.html#date_time.format_flags describes possible formatting flags

Definition at line 185 of file time.cpp.

system_clock::TimePoint ndn::time::fromUnixTimestamp ( milliseconds  duration)

Convert UNIX timestamp to system_clock::TimePoint.

Definition at line 119 of file time.cpp.

const system_clock::TimePoint & ndn::time::getUnixEpoch ( )

Get system_clock::TimePoint representing UNIX time epoch (00:00:00 on Jan 1, 1970)

Definition at line 106 of file time.cpp.

void ndn::time::setCustomClocks ( shared_ptr< CustomSteadyClock steadyClock = nullptr,
shared_ptr< CustomSystemClock systemClock = nullptr 
)

Set custom system and steady clocks.

When steadyClock or systemClock set to nullptr, the default implementation of the corresponding clock will be used

Definition at line 36 of file time.cpp.

std::string ndn::time::toIsoString ( const system_clock::TimePoint timePoint)

Convert to the ISO string representation of the time (YYYYMMDDTHHMMSS,fffffffff)

If timePoint contains doesn't contain fractional seconds, the output format is YYYYMMDDTHHMMSS

Examples:

  • with fractional nanoseconds: 20020131T100001,123456789
  • with fractional microseconds: 20020131T100001,123456
  • with fractional milliseconds: 20020131T100001,123
  • without fractional seconds: 20020131T100001

Definition at line 145 of file time.cpp.

std::string ndn::time::toString ( const system_clock::TimePoint timePoint,
const std::string &  format = "%Y-%m-%d %H:%M:%S",
const std::locale &  locale = std::locale("C") 
)

Convert time point to string with specified format.

By default, Y-m-d H:M:S is used, producing dates like 2014-04-10 22:51:00

Parameters
timePointtime point of system_clock
formatdesired output format (default: Y-m-d H:M:S)
localedesired locale (default: "C" locale)
See also
http://www.boost.org/doc/libs/1_54_0/doc/html/date_time/date_time_io.html#date_time.format_flags describes possible formatting flags

Definition at line 170 of file time.cpp.

milliseconds ndn::time::toUnixTimestamp ( const system_clock::TimePoint point)

Convert system_clock::TimePoint to UNIX timestamp.

Definition at line 113 of file time.cpp.

Variable Documentation

shared_ptr<CustomSteadyClock> ndn::time::g_steadyClock
static

Definition at line 32 of file time.cpp.

shared_ptr<CustomSystemClock> ndn::time::g_systemClock
static

Definition at line 31 of file time.cpp.