NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
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 CustomClock< system_clockCustomSystemClock
 
typedef CustomClock< steady_clockCustomSteadyClock
 
typedef UnitTestClock< system_clockUnitTestSystemClock
 
typedef UnitTestClock< steady_clockUnitTestSteadyClock
 
typedef boost::chrono::steady_clock base_steady_clock
 
typedef duration< boost::int_least32_t, boost::ratio< 86400 > > days
 

Functions

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)
 
const system_clock::TimePointgetUnixEpoch ()
 Get system_clock::TimePoint representing UNIX time epoch (00:00:00 on Jan 1, 1970) More...
 
milliseconds toUnixTimestamp (const system_clock::TimePoint &point)
 Convert system_clock::TimePoint to UNIX timestamp. More...
 
system_clock::TimePoint fromUnixTimestamp (const milliseconds &duration)
 Convert UNIX timestamp to system_clock::TimePoint. More...
 
std::string toIsoString (const system_clock::TimePoint &timePoint)
 Convert to the ISO string representation of the time (YYYYMMDDTHHMMSS,fffffffff) More...
 
system_clock::TimePoint fromIsoString (const std::string &isoString)
 Convert from the ISO string (YYYYMMDDTHHMMSS,fffffffff) representation to the internal time format. 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...
 
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...
 
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)
 

Variables

static shared_ptr< CustomSystemClockg_systemClock
 
static shared_ptr< CustomSteadyClockg_steadyClock
 

Typedef Documentation

◆ CustomSystemClock

◆ CustomSteadyClock

◆ UnitTestSystemClock

◆ UnitTestSteadyClock

◆ base_steady_clock

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

Definition at line 75 of file time.cpp.

◆ days

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

Definition at line 35 of file time.hpp.

Function Documentation

◆ setCustomClocks()

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

Referenced by ns3::ndn::StackHelper::setCustomNdnCxxClocks().

◆ SLEEP_AFTER_TIME_CHANGE()

const std::chrono::microseconds ndn::time::SLEEP_AFTER_TIME_CHANGE ( )

◆ getUnixEpoch()

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

◆ toUnixTimestamp()

◆ fromUnixTimestamp()

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

◆ toIsoString()

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

References getUnixEpoch(), and ndn::time::system_clock::to_time_t().

Referenced by ndn::DEREncodeGeneralTime(), ndn::security::operator<<(), ndn::security::v1::Certificate::printCertificate(), and ndn::security::ValidityPeriod::wireEncode().

◆ fromIsoString()

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

References ndn::time::system_clock::from_time_t().

Referenced by ndn::BERDecodeTime(), and ndn::security::ValidityPeriod::wireDecode().

◆ toString()

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

References getUnixEpoch(), and ndn::time::system_clock::to_time_t().

Referenced by ndn::Oid::setIntegerList().

◆ fromString()

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

References ndn::time::system_clock::from_time_t().

◆ abs()

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.

Referenced by nfd::RttEstimator::addMeasurement(), ndn::security::CommandInterestValidator::checkPolicy(), and ns3::AnnotatedTopologyReader::Read().

Variable Documentation

◆ g_systemClock

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

◆ g_steadyClock

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