Skip to content

Commit

Permalink
Switch to built-in broker timestamp type.
Browse files Browse the repository at this point in the history
  • Loading branch information
J-Gras committed Apr 19, 2023
1 parent d0d8ce0 commit 7efcf82
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 16 deletions.
4 changes: 2 additions & 2 deletions bindings/python/broker/zeek.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ def __init__(self, *args, **kwargs):
_broker.zeek.Event.__init__(self, broker.Data.from_py(args[0]))
else:
# (name, arg1, arg2, ..., ts=0.0)
_broker.zeek.Event.__init__(self, args[0], kwargs.get("ts", 0.0),
broker.Data.from_py(args[1:]))
_broker.zeek.Event.__init__(self, args[0], broker.Data.from_py(args[1:]),
kwargs.get("ts", 0.0))

def args(self):
return [broker.Data.to_py(a) for a in _broker.zeek.Event.args(self)]
Expand Down
8 changes: 5 additions & 3 deletions bindings/python/zeek.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ void init_zeek(py::module& m) {
py::class_<broker::zeek::Event, broker::zeek::Message>(m, "Event")
.def(py::init(
[](broker::data data) { return broker::zeek::Event(std::move(data)); }))
.def(py::init([](std::string name, double ts, broker::data args) {
.def(py::init([](std::string name, broker::data args, double ts) {
return broker::zeek::Event(std::move(name),
std::move(broker::get<broker::vector>(args)),
ts);
broker::to_timestamp(ts));
}))
.def("valid",
[](const broker::zeek::Event& ev) -> bool {
Expand Down Expand Up @@ -59,7 +59,9 @@ void init_zeek(py::module& m) {
if (!ev.valid()) {
throw std::invalid_argument("invalid Event data");
}
return ev.ts();
double ts;
broker::convert(ev.ts(), ts);
return ts;
})
.def("args", [](const broker::zeek::Event& ev) -> const broker::vector& {
auto t = broker::zeek::Message::type(ev.as_data());
Expand Down
16 changes: 8 additions & 8 deletions include/broker/zeek.hh
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public:
Event(std::string name, vector args)
: Message(Message::Type::Event, {std::move(name), std::move(args)}) {}

Event(std::string name, vector args, double ts)
Event(std::string name, vector args, timestamp ts)
: Message(Message::Type::Event, {std::move(name), std::move(args), ts}) {}

Event(data msg) : Message(std::move(msg)) {}
Expand All @@ -108,20 +108,20 @@ public:
return get<std::string>(get<vector>(as_vector()[2])[0]);
}

const double ts() const {
const timestamp ts() const {
auto ev_vec = get<vector>(as_vector()[2]);
if (ev_vec.size() > 2)
return get<double>(ev_vec[2]);
return get<timestamp>(ev_vec[2]);

return 0.0;
return timestamp{};
}

double ts() {
timestamp ts() {
auto ev_vec = get<vector>(as_vector()[2]);
if (ev_vec.size() > 2)
return get<double>(ev_vec[2]);
return get<timestamp>(ev_vec[2]);

return 0.0;
return timestamp{};
}

const vector& args() const {
Expand Down Expand Up @@ -158,7 +158,7 @@ public:

// Optional event timestamp
if (v.size() > 2) {
auto ts_ptr = get_if<double>(&v[2]);
auto ts_ptr = get_if<timestamp>(&v[2]);

if (!ts_ptr)
return false;
Expand Down
8 changes: 5 additions & 3 deletions tests/cpp/zeek.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,25 @@
#include <utility>

#include "broker/data.hh"
#include "broker/time.hh"

using namespace broker;
using namespace std::chrono_literals;

TEST(event) {
auto args = vector{1, "s", port(42, port::protocol::tcp)};
zeek::Event ev("test", vector(args));
zeek::Event ev2(std::move(ev));
CHECK_EQUAL(ev2.name(), "test");
CHECK_EQUAL(ev2.ts(), 0);
CHECK_EQUAL(ev2.ts(), broker::timestamp{0ns});
CHECK_EQUAL(ev2.args(), args);
}

TEST(event_ts) {
auto args = vector{1, "s", port(42, port::protocol::tcp)};
zeek::Event ev("test", vector(args), 12);
zeek::Event ev("test", vector(args), broker::timestamp(12s));
zeek::Event ev2(std::move(ev));
CHECK_EQUAL(ev2.name(), "test");
CHECK_EQUAL(ev2.ts(), 12);
CHECK_EQUAL(ev2.ts(), broker::timestamp(12s));
CHECK_EQUAL(ev2.args(), args);
}

0 comments on commit 7efcf82

Please sign in to comment.