Add timestamp to events.

This commit is contained in:
Jan Grashoefer 2023-04-19 14:25:09 +02:00
parent 4d97316a6d
commit fa84d2896a
6 changed files with 113 additions and 7 deletions

View file

@ -15,14 +15,19 @@
namespace zeek
{
namespace run_state
{
extern double network_time;
} // namespace run_state
class EventMgr;
class Event final : public Obj
{
public:
Event(EventHandlerPtr handler, zeek::Args args,
Event(const EventHandlerPtr& handler, zeek::Args args,
util::detail::SourceID src = util::detail::SOURCE_LOCAL, analyzer::ID aid = 0,
Obj* obj = nullptr);
Obj* obj = nullptr, double timestamp = run_state::network_time);
void SetNext(Event* n) { next_event = n; }
Event* NextEvent() const { return next_event; }
@ -31,6 +36,7 @@ public:
analyzer::ID Analyzer() const { return aid; }
EventHandlerPtr Handler() const { return handler; }
const zeek::Args& Args() const { return args; }
double Time() const { return timestamp; }
void Describe(ODesc* d) const override;
@ -45,6 +51,7 @@ protected:
zeek::Args args;
util::detail::SourceID src;
analyzer::ID aid;
double timestamp;
Obj* obj;
Event* next_event;
};
@ -95,6 +102,10 @@ public:
// non-analyzer event.
analyzer::ID CurrentAnalyzer() const { return current_aid; }
// Returns the timestamp of the last raised event. The timestamp reflects the network time
// the event was created.
double CurrentEventTime() const { return current_ts; }
int Size() const { return num_events_queued - num_events_dispatched; }
void Describe(ODesc* d) const override;
@ -114,6 +125,7 @@ protected:
Event* tail;
util::detail::SourceID current_src;
analyzer::ID current_aid;
double current_ts;
RecordVal* src_val;
bool draining;
detail::Flare queue_flare;