mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 23:28:20 +00:00
Add Trigger manager for managing triggers created by things like 'when' statements
- Adds new trigger namespace - Adds trigger::Manager class as a new IOSource for keeping track of triggers and integrating them into the loop. Previously the loop relied on the event manager Drain() method to process all triggers on every loop, but now that the loop actively waits for events to occur, triggers would not fire when they needed to. Adding them as part of the loop ensures they're checked.
This commit is contained in:
parent
92bde61b78
commit
a159d075cf
11 changed files with 131 additions and 93 deletions
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include "Val.h"
|
||||
|
||||
class Trigger;
|
||||
namespace trigger { class Trigger; }
|
||||
class CallExpr;
|
||||
|
||||
class Frame : public BroObj {
|
||||
|
@ -207,9 +207,9 @@ public:
|
|||
|
||||
// If the frame is run in the context of a trigger condition evaluation,
|
||||
// the trigger needs to be registered.
|
||||
void SetTrigger(Trigger* arg_trigger);
|
||||
void SetTrigger(trigger::Trigger* arg_trigger);
|
||||
void ClearTrigger();
|
||||
Trigger* GetTrigger() const { return trigger; }
|
||||
trigger::Trigger* GetTrigger() const { return trigger; }
|
||||
|
||||
void SetCall(const CallExpr* arg_call) { call = arg_call; }
|
||||
void ClearCall() { call = 0; }
|
||||
|
@ -293,7 +293,7 @@ private:
|
|||
bool break_before_next_stmt;
|
||||
bool break_on_return;
|
||||
|
||||
Trigger* trigger;
|
||||
trigger::Trigger* trigger;
|
||||
const CallExpr* call;
|
||||
bool delayed;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue