mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
cluster/Event: Hide members behind accessors
This commit is contained in:
parent
90f94ff4f2
commit
214629e054
3 changed files with 31 additions and 9 deletions
|
@ -19,7 +19,7 @@ using namespace zeek::cluster;
|
||||||
|
|
||||||
|
|
||||||
bool detail::LocalEventHandlingStrategy::DoHandleRemoteEvent(std::string_view topic, detail::Event e) {
|
bool detail::LocalEventHandlingStrategy::DoHandleRemoteEvent(std::string_view topic, detail::Event e) {
|
||||||
zeek::event_mgr.Enqueue(e.Handler(), std::move(e.args), util::detail::SOURCE_BROKER, 0, nullptr, e.timestamp);
|
zeek::event_mgr.Enqueue(e.Handler(), std::move(e.Args()), util::detail::SOURCE_BROKER, 0, nullptr, e.Timestamp());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,14 +45,36 @@ public:
|
||||||
Event(const EventHandlerPtr& handler, zeek::Args args, double timestamp = 0.0)
|
Event(const EventHandlerPtr& handler, zeek::Args args, double timestamp = 0.0)
|
||||||
: handler(handler), args(std::move(args)), timestamp(timestamp) {}
|
: handler(handler), args(std::move(args)), timestamp(timestamp) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The name of the event.
|
||||||
|
*/
|
||||||
|
std::string_view HandlerName() const { return handler->Name(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The event's handler.
|
||||||
|
*/
|
||||||
|
const EventHandlerPtr& Handler() const { return handler; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The event's arguments.
|
||||||
|
*/
|
||||||
|
const zeek::Args& Args() const { return args; }
|
||||||
|
/**
|
||||||
|
* @return The event's arguments.
|
||||||
|
*/
|
||||||
|
zeek::Args& Args() { return args; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The network timestamp metadata of this event or 0.0.
|
||||||
|
*/
|
||||||
|
double Timestamp() const { return timestamp; }
|
||||||
|
|
||||||
|
private:
|
||||||
EventHandlerPtr handler;
|
EventHandlerPtr handler;
|
||||||
zeek::Args args;
|
zeek::Args args;
|
||||||
double timestamp; // TODO: This should be more generic, possibly holding a
|
double timestamp; // TODO: This should be more generic, possibly holding a
|
||||||
// vector of key/value metadata, rather than just
|
// vector of key/value metadata, rather than just
|
||||||
// the timestamp.
|
// the timestamp.
|
||||||
|
|
||||||
std::string_view HandlerName() const { return handler->Name(); }
|
|
||||||
const EventHandlerPtr& Handler() const { return handler; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,9 +22,9 @@ using namespace zeek::cluster;
|
||||||
|
|
||||||
std::optional<broker::zeek::Event> detail::to_broker_event(const detail::Event& ev) {
|
std::optional<broker::zeek::Event> detail::to_broker_event(const detail::Event& ev) {
|
||||||
broker::vector xs;
|
broker::vector xs;
|
||||||
xs.reserve(ev.args.size());
|
xs.reserve(ev.Args().size());
|
||||||
|
|
||||||
for ( const auto& a : ev.args ) {
|
for ( const auto& a : ev.Args() ) {
|
||||||
if ( a->GetType() == zeek::BifType::Record::Broker::Data ) {
|
if ( a->GetType() == zeek::BifType::Record::Broker::Data ) {
|
||||||
// When encountering a Broker::Data instance within args, pick out
|
// When encountering a Broker::Data instance within args, pick out
|
||||||
// the broker::data directly to avoid double encoding, Broker::Data.
|
// the broker::data directly to avoid double encoding, Broker::Data.
|
||||||
|
@ -40,7 +40,7 @@ std::optional<broker::zeek::Event> detail::to_broker_event(const detail::Event&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return broker::zeek::Event(ev.HandlerName(), xs, broker::to_timestamp(ev.timestamp));
|
return broker::zeek::Event(ev.HandlerName(), xs, broker::to_timestamp(ev.Timestamp()));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<detail::Event> detail::to_zeek_event(const broker::zeek::Event& ev) {
|
std::optional<detail::Event> detail::to_zeek_event(const broker::zeek::Event& ev) {
|
||||||
|
@ -188,7 +188,7 @@ TEST_CASE("roundtrip") {
|
||||||
REQUIRE(result);
|
REQUIRE(result);
|
||||||
CHECK_EQ(result->Handler(), handler);
|
CHECK_EQ(result->Handler(), handler);
|
||||||
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
||||||
CHECK_EQ(result->args.size(), 2);
|
CHECK_EQ(result->Args().size(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
SUBCASE("binary") {
|
SUBCASE("binary") {
|
||||||
|
@ -211,7 +211,7 @@ TEST_CASE("roundtrip") {
|
||||||
REQUIRE(result);
|
REQUIRE(result);
|
||||||
CHECK_EQ(result->Handler(), handler);
|
CHECK_EQ(result->Handler(), handler);
|
||||||
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
||||||
CHECK_EQ(result->args.size(), 2);
|
CHECK_EQ(result->Args().size(), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TEST_SUITE_END();
|
TEST_SUITE_END();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue