mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
cluster/Backend: Rename HandleRemoteEvent() to ProcessEvent()
...also add Backend::ProcessEvent() for backends to trigger event processing without needing to use ProcessEventMessage().
This commit is contained in:
parent
390a4fc1bb
commit
f8ef5addaa
3 changed files with 26 additions and 8 deletions
|
@ -19,7 +19,7 @@
|
|||
using namespace zeek::cluster;
|
||||
|
||||
|
||||
bool detail::LocalEventHandlingStrategy::DoHandleRemoteEvent(std::string_view topic, detail::Event e) {
|
||||
bool detail::LocalEventHandlingStrategy::DoProcessEvent(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());
|
||||
return true;
|
||||
}
|
||||
|
@ -123,7 +123,11 @@ void Backend::EnqueueEvent(EventHandlerPtr h, zeek::Args args) {
|
|||
event_handling_strategy->EnqueueLocalEvent(h, std::move(args));
|
||||
}
|
||||
|
||||
bool Backend::ProcessEventMessage(std::string_view topic, std::string_view format, const byte_buffer_span payload) {
|
||||
bool Backend::ProcessEvent(std::string_view topic, detail::Event e) {
|
||||
return event_handling_strategy->ProcessEvent(topic, std::move(e));
|
||||
}
|
||||
|
||||
bool Backend::ProcessEventMessage(std::string_view topic, std::string_view format, byte_buffer_span payload) {
|
||||
if ( format != event_serializer->Name() ) {
|
||||
zeek::reporter->Error("ProcessEventMessage: Wrong format: %s vs %s", std::string{format}.c_str(),
|
||||
event_serializer->Name().c_str());
|
||||
|
@ -139,7 +143,7 @@ bool Backend::ProcessEventMessage(std::string_view topic, std::string_view forma
|
|||
return false;
|
||||
}
|
||||
|
||||
return event_handling_strategy->HandleRemoteEvent(topic, std::move(*r));
|
||||
return ProcessEvent(topic, std::move(*r));
|
||||
}
|
||||
|
||||
bool Backend::ProcessLogMessage(std::string_view format, byte_buffer_span payload) {
|
||||
|
|
|
@ -102,7 +102,7 @@ public:
|
|||
*
|
||||
* @return true if the remote event was handled successfully, else false.
|
||||
*/
|
||||
bool HandleRemoteEvent(std::string_view topic, Event e) { return DoHandleRemoteEvent(topic, std::move(e)); }
|
||||
bool ProcessEvent(std::string_view topic, Event e) { return DoProcessEvent(topic, std::move(e)); }
|
||||
|
||||
/**
|
||||
* Method for enquing backend specific events.
|
||||
|
@ -120,14 +120,14 @@ public:
|
|||
|
||||
private:
|
||||
/**
|
||||
* Hook method for implementing HandleRemoteEvent().
|
||||
* Hook method for implementing ProcessEvent().
|
||||
*
|
||||
* @param topic The topic on which the event was received.
|
||||
* @param ev The parsed event that was received.
|
||||
*
|
||||
* @return true if the remote event was handled successfully, else false.
|
||||
*/
|
||||
virtual bool DoHandleRemoteEvent(std::string_view topic, Event e) = 0;
|
||||
virtual bool DoProcessEvent(std::string_view topic, Event e) = 0;
|
||||
|
||||
/**
|
||||
* Hook method for implementing EnqueueLocalEvent().
|
||||
|
@ -143,7 +143,7 @@ private:
|
|||
*/
|
||||
class LocalEventHandlingStrategy : public EventHandlingStrategy {
|
||||
private:
|
||||
bool DoHandleRemoteEvent(std::string_view topic, Event e) override;
|
||||
bool DoProcessEvent(std::string_view topic, Event e) override;
|
||||
void DoEnqueueLocalEvent(EventHandlerPtr h, zeek::Args args) override;
|
||||
};
|
||||
|
||||
|
@ -308,6 +308,20 @@ protected:
|
|||
*/
|
||||
void EnqueueEvent(EventHandlerPtr h, zeek::Args args);
|
||||
|
||||
/**
|
||||
* Process a cluster event.
|
||||
*
|
||||
* This method is called by ProcessEventMessage() and delegates
|
||||
* to the event handling strategy. It should only be used by
|
||||
* backends implementing their own serialization format. Other
|
||||
* backends should not have a use for this and call ProcessEventMessage()
|
||||
* directly instead.
|
||||
*
|
||||
* @param topic The topic on which the event was received.
|
||||
* @param e The event as cluster::detail::Event.
|
||||
*/
|
||||
bool ProcessEvent(std::string_view topic, detail::Event e);
|
||||
|
||||
/**
|
||||
* Process an incoming event message.
|
||||
*/
|
||||
|
|
|
@ -53,7 +53,7 @@ private:
|
|||
* will need some abstractions if client's can opt to use different encodings
|
||||
* of events in the future.
|
||||
*/
|
||||
bool DoHandleRemoteEvent(std::string_view topic, zeek::cluster::detail::Event e) override {
|
||||
bool DoProcessEvent(std::string_view topic, zeek::cluster::detail::Event e) override {
|
||||
// If the client has left, no point in sending it any pending event.
|
||||
if ( wsc->IsTerminated() )
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue