33 lines
691 B
C++
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
|