diff -r 789a617af619 src/core/model/nstime.h --- a/src/core/model/nstime.h Sat Apr 06 18:02:37 2013 +0200 +++ b/src/core/model/nstime.h Sat Apr 06 21:09:26 2013 +0200 @@ -1,4 +1,4 @@ -/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +1;3402;0c/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* * Copyright (c) 2005,2006 INRIA * @@ -93,13 +93,18 @@ */ enum Unit { - S = 0, //!< second - MS = 1, //!< millisecond - US = 2, //!< microsecond - NS = 3, //!< nanosecond - PS = 4, //!< picosecond - FS = 5, //!< femtosecond - LAST = 6 + A, //!< year + WK, //!< week + D, //!< day + H, //!< hour + MIN, //!< minute + S, //!< second + MS, //!< millisecond + US, //!< microsecond + NS, //!< nanosecond + PS, //!< picosecond + FS, //!< femtosecond + LAST }; inline Time &operator = (const Time &o) @@ -188,6 +193,11 @@ * \brief Construct Time object from common time expressions like "1ms" * * Supported units include: + * - `a` (years) + * - `wk` (weeks) + * - `d` (days) + * - `h` (hours) + * - `min` (minutes) * - `s` (seconds) * - `ms` (milliseconds) * - `us` (microseconds) @@ -663,6 +673,47 @@ std::istream& operator>> (std::istream& is, Time & time); /** + * \brief create ns3::Time instances in units of minutes. + * + * For example: + * \code + * Time t = Minutes (2.0); + * Simulator::Schedule (Minutes (5.0), ...); + * \endcode + * \param minutes mintues value + * \relates ns3::Time + */ +inline Time Minutes (double minutes) +{ + return Time::FromDouble (minutes, Time::MIN); +} + +inline Time Minutes (float minutes) +{ + return Time::FromDouble (minutes, Time::MIN); +} + +inline Time Minutes (uint64_t minutes) +{ + return Time::FromInteger (minutes, Time::MIN); +} + +inline Time Minutes (int64_t minutes) +{ + return Time::FromInteger (minutes, Time::MIN); +} + +inline Time Minutes (uint32_t minutes) +{ + return Time::FromInteger (minutes, Time::MIN); +} + +inline Time Minutes (int32_t minutes) +{ + return Time::FromInteger (minutes, Time::MIN); +} + +/** * \brief create ns3::Time instances in units of seconds. * * For example: @@ -678,6 +729,31 @@ return Time::FromDouble (seconds, Time::S); } +inline Time Seconds (float seconds) +{ + return Time::FromDouble (seconds, Time::S); +} + +inline Time Seconds (uint64_t seconds) +{ + return Time::FromInteger (seconds, Time::S); +} + +inline Time Seconds (int64_t seconds) +{ + return Time::FromInteger (seconds, Time::S); +} + +inline Time Seconds (uint32_t seconds) +{ + return Time::FromInteger (seconds, Time::S); +} + +inline Time Seconds (int32_t seconds) +{ + return Time::FromInteger (seconds, Time::S); +} + /** * \brief create ns3::Time instances in units of milliseconds. * @@ -689,10 +765,36 @@ * \param ms milliseconds value * \relates ns3::Time */ +inline Time MilliSeconds (double ms) +{ + return Time::FromDouble (ms, Time::MS); +} + +inline Time MilliSeconds (float ms) +{ + return Time::FromDouble (ms, Time::MS); +} + inline Time MilliSeconds (uint64_t ms) { return Time::FromInteger (ms, Time::MS); } + +inline Time MilliSeconds (int64_t ms) +{ + return Time::FromInteger (ms, Time::MS); +} + +inline Time MilliSeconds (uint32_t ms) +{ + return Time::FromInteger (ms, Time::MS); +} + +inline Time MilliSeconds (int32_t ms) +{ + return Time::FromInteger (ms, Time::MS); +} + /** * \brief create ns3::Time instances in units of microseconds. * @@ -704,10 +806,36 @@ * \param us microseconds value * \relates ns3::Time */ +inline Time MicroSeconds (double us) +{ + return Time::FromDouble (us, Time::US); +} + +inline Time MicroSeconds (float us) +{ + return Time::FromDouble (us, Time::US); +} + inline Time MicroSeconds (uint64_t us) { return Time::FromInteger (us, Time::US); } + +inline Time MicroSeconds (int64_t us) +{ + return Time::FromInteger (us, Time::US); +} + +inline Time MicroSeconds (uint32_t us) +{ + return Time::FromInteger (us, Time::US); +} + +inline Time MicroSeconds (int32_t us) +{ + return Time::FromInteger (us, Time::US); +} + /** * \brief create ns3::Time instances in units of nanoseconds. * @@ -719,10 +847,36 @@ * \param ns nanoseconds value * \relates ns3::Time */ +inline Time NanoSeconds (double ns) +{ + return Time::FromDouble (ns, Time::NS); +} + +inline Time NanoSeconds (float ns) +{ + return Time::FromDouble (ns, Time::NS); +} + inline Time NanoSeconds (uint64_t ns) { return Time::FromInteger (ns, Time::NS); } + +inline Time NanoSeconds (int64_t ns) +{ + return Time::FromInteger (ns, Time::NS); +} + +inline Time NanoSeconds (uint32_t ns) +{ + return Time::FromInteger (ns, Time::NS); +} + +inline Time NanoSeconds (int32_t ns) +{ + return Time::FromInteger (ns, Time::NS); +} + /** * \brief create ns3::Time instances in units of picoseconds. * @@ -734,10 +888,36 @@ * \param ps picoseconds value * \relates ns3::Time */ +inline Time PicoSeconds (double ps) +{ + return Time::FromDouble (ps, Time::PS); +} + +inline Time PicoSeconds (float ps) +{ + return Time::FromDouble (ps, Time::PS); +} + inline Time PicoSeconds (uint64_t ps) { return Time::FromInteger (ps, Time::PS); } + +inline Time PicoSeconds (int64_t ps) +{ + return Time::FromInteger (ps, Time::PS); +} + +inline Time PicoSeconds (uint32_t ps) +{ + return Time::FromInteger (ps, Time::PS); +} + +inline Time PicoSeconds (int32_t ps) +{ + return Time::FromInteger (ps, Time::PS); +} + /** * \brief create ns3::Time instances in units of femtoseconds. * @@ -749,11 +929,35 @@ * \param fs femtoseconds value * \relates ns3::Time */ +inline Time FemtoSeconds (double fs) +{ + return Time::FromDouble (fs, Time::FS); +} + +inline Time FemtoSeconds (float fs) +{ + return Time::FromDouble (fs, Time::FS); +} + inline Time FemtoSeconds (uint64_t fs) { return Time::FromInteger (fs, Time::FS); } +inline Time FemtoSeconds (int64_t fs) +{ + return Time::FromInteger (fs, Time::FS); +} + +inline Time FemtoSeconds (uint32_t fs) +{ + return Time::FromInteger (fs, Time::FS); +} + +inline Time FemtoSeconds (int32_t fs) +{ + return Time::FromInteger (fs, Time::FS); +} /** * \see Seconds(double)