mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +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) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,14 +45,36 @@ public:
|
|||
Event(const EventHandlerPtr& handler, zeek::Args args, double timestamp = 0.0)
|
||||
: 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;
|
||||
zeek::Args args;
|
||||
double timestamp; // TODO: This should be more generic, possibly holding a
|
||||
// vector of key/value metadata, rather than just
|
||||
// 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) {
|
||||
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 ) {
|
||||
// When encountering a Broker::Data instance within args, pick out
|
||||
// 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) {
|
||||
|
@ -188,7 +188,7 @@ TEST_CASE("roundtrip") {
|
|||
REQUIRE(result);
|
||||
CHECK_EQ(result->Handler(), handler);
|
||||
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
||||
CHECK_EQ(result->args.size(), 2);
|
||||
CHECK_EQ(result->Args().size(), 2);
|
||||
}
|
||||
|
||||
SUBCASE("binary") {
|
||||
|
@ -211,7 +211,7 @@ TEST_CASE("roundtrip") {
|
|||
REQUIRE(result);
|
||||
CHECK_EQ(result->Handler(), handler);
|
||||
CHECK_EQ(result->HandlerName(), "Supervisor::node_status");
|
||||
CHECK_EQ(result->args.size(), 2);
|
||||
CHECK_EQ(result->Args().size(), 2);
|
||||
}
|
||||
}
|
||||
TEST_SUITE_END();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue