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
 
typedef CustomClock< steady_clockCustomSteadyClock
 
typedef CustomClock< system_clockCustomSystemClock
 
typedef duration< boost::int_least32_t, boost::ratio< 86400 > > days
 
typedef UnitTestClock< steady_clockUnitTestSteadyClock
 
typedef UnitTestClock< system_clockUnitTestSystemClock
 

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)
 
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 &formattedTimePoint, 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 (const 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...
 
const std::chrono::microseconds SLEEP_AFTER_TIME_CHANGE (2)
 
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.

typedef duration<boost::int_least32_t, boost::ratio<86400> > ndn::time::days

Definition at line 35 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 53 of file time.hpp.

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 152 of file time.cpp.

system_clock::TimePoint ndn::time::fromString ( const std::string &  formattedTimePoint,
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
formattedTimePointstring 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 described possible formatting flags

Definition at line 187 of file time.cpp.

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

Convert UNIX timestamp to system_clock::TimePoint.

Definition at line 125 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 112 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.

const std::chrono::microseconds ndn::time::SLEEP_AFTER_TIME_CHANGE ( )
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 131 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 described possible formatting flags

Definition at line 167 of file time.cpp.

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

Convert system_clock::TimePoint to UNIX timestamp.

Definition at line 119 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.