Use std::chrono::milliseconds for message timestamp

This commit is contained in:
Matias Fontanini
2017-04-15 18:14:36 -07:00
parent 91cd9a2957
commit c9f3b0c5bc
2 changed files with 10 additions and 6 deletions

View File

@@ -32,6 +32,7 @@
#include <memory> #include <memory>
#include <cstdint> #include <cstdint>
#include <chrono>
#include <boost/optional.hpp> #include <boost/optional.hpp>
#include <librdkafka/rdkafka.h> #include <librdkafka/rdkafka.h>
#include "buffer.h" #include "buffer.h"
@@ -163,19 +164,19 @@ public:
/** /**
* Constructs a timestamp object * Constructs a timestamp object
*/ */
MessageTimestamp(int64_t timestamp, TimestampType type); MessageTimestamp(std::chrono::milliseconds timestamp, TimestampType type);
/** /**
* Gets the timestamp value * Gets the timestamp value
*/ */
int64_t get_timestamp() const; std::chrono::milliseconds get_timestamp() const;
/** /**
* Gets the timestamp type * Gets the timestamp type
*/ */
TimestampType get_type() const; TimestampType get_type() const;
private: private:
int64_t timestamp_; std::chrono::milliseconds timestamp_;
TimestampType type_; TimestampType type_;
}; };

View File

@@ -31,6 +31,8 @@
using std::string; using std::string;
using std::chrono::milliseconds;
using boost::optional; using boost::optional;
using boost::none_t; using boost::none_t;
@@ -104,7 +106,8 @@ optional<MessageTimestamp> Message::get_timestamp() const {
if (timestamp == -1 || type == RD_KAFKA_TIMESTAMP_NOT_AVAILABLE) { if (timestamp == -1 || type == RD_KAFKA_TIMESTAMP_NOT_AVAILABLE) {
return {}; return {};
} }
return MessageTimestamp(timestamp, static_cast<MessageTimestamp::TimestampType>(type)); return MessageTimestamp(milliseconds(timestamp),
static_cast<MessageTimestamp::TimestampType>(type));
} }
Message::operator bool() const { Message::operator bool() const {
@@ -117,12 +120,12 @@ rd_kafka_message_t* Message::get_handle() const {
// MessageTimestamp // MessageTimestamp
MessageTimestamp::MessageTimestamp(int64_t timestamp, TimestampType type) MessageTimestamp::MessageTimestamp(milliseconds timestamp, TimestampType type)
: timestamp_(timestamp), type_(type) { : timestamp_(timestamp), type_(type) {
} }
int64_t MessageTimestamp::get_timestamp() const { milliseconds MessageTimestamp::get_timestamp() const {
return timestamp_; return timestamp_;
} }