diff options
Diffstat (limited to 'qpid/cpp/include/qpid/messaging/Duration.h')
-rw-r--r-- | qpid/cpp/include/qpid/messaging/Duration.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/qpid/cpp/include/qpid/messaging/Duration.h b/qpid/cpp/include/qpid/messaging/Duration.h index 5f95acf04d..fdd1cf4a50 100644 --- a/qpid/cpp/include/qpid/messaging/Duration.h +++ b/qpid/cpp/include/qpid/messaging/Duration.h @@ -21,8 +21,9 @@ * under the License. * */ + +#include "qpid/client/ClientImportExport.h" #include "qpid/sys/IntegerTypes.h" -#include <limits> namespace qpid { namespace messaging { @@ -30,9 +31,23 @@ namespace messaging { /** * A duration is a time in milliseconds. */ -typedef uint64_t Duration; -const Duration INFINITE_DURATION = std::numeric_limits<uint64_t>::max(); -const Duration DURATION_SEC = 1000; +class Duration +{ + public: + QPID_CLIENT_EXTERN explicit Duration(uint64_t milliseconds); + QPID_CLIENT_EXTERN uint64_t getMilliseconds() const; + QPID_CLIENT_EXTERN static const Duration FOREVER; + QPID_CLIENT_EXTERN static const Duration IMMEDIATE; + QPID_CLIENT_EXTERN static const Duration SECOND; + QPID_CLIENT_EXTERN static const Duration MINUTE; + private: + uint64_t milliseconds; +}; + +QPID_CLIENT_EXTERN Duration operator*(const Duration& duration, + uint64_t multiplier); +QPID_CLIENT_EXTERN Duration operator*(uint64_t multiplier, + const Duration& duration); }} // namespace qpid::messaging |