safesight-edge/plugins/alarm/actions/action_base.h
2025-12-29 16:07:13 +08:00

33 lines
691 B
C++

#pragma once
#include <memory>
#include <string>
#include <vector>
#include "frame/frame.h"
#include "utils/simple_json.h"
namespace rk3588 {
struct AlarmEvent {
std::string rule_name;
std::string node_id;
uint64_t timestamp_ms;
uint64_t frame_id;
std::vector<Detection> detections;
std::string snapshot_url;
std::string clip_url;
};
class IAlarmAction {
public:
virtual ~IAlarmAction() = default;
virtual bool Init(const SimpleJson& config) = 0;
virtual void Execute(AlarmEvent& event, std::shared_ptr<Frame> frame) = 0;
virtual void Drain() {}
virtual void Stop() {}
virtual std::string Name() const = 0;
};
} // namespace rk3588