summaryrefslogtreecommitdiff
path: root/cpp/include/qpid/messaging/Duration.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/qpid/messaging/Duration.h')
-rw-r--r--cpp/include/qpid/messaging/Duration.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/cpp/include/qpid/messaging/Duration.h b/cpp/include/qpid/messaging/Duration.h
index 5f95acf04d..a127e86f29 100644
--- a/cpp/include/qpid/messaging/Duration.h
+++ b/cpp/include/qpid/messaging/Duration.h
@@ -22,7 +22,6 @@
*
*/
#include "qpid/sys/IntegerTypes.h"
-#include <limits>
namespace qpid {
namespace messaging {
@@ -30,9 +29,21 @@ 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:
+ explicit Duration(uint64_t milliseconds);
+ uint64_t getMilliseconds() const;
+ static const Duration INFINITE;
+ static const Duration IMMEDIATE;
+ static const Duration SECOND;
+ static const Duration MINUTE;
+ private:
+ uint64_t milliseconds;
+};
+
+Duration operator*(const Duration& duration, uint64_t multiplier);
+Duration operator*(uint64_t multiplier, const Duration& duration);
}} // namespace qpid::messaging