11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
23PROMEKI_NAMESPACE_BEGIN
92 PROMEKI_SHARED_FINAL(PipelineEvent)
95 using Ptr = SharedPtr<PipelineEvent>;
98 using List = ::promeki::List<PipelineEvent>;
101 using PtrList = ::promeki::List<Ptr>;
114 TransportStateChanged
118 PipelineEvent() =
default;
125 Kind kind()
const {
return _kind; }
128 const String &stageName()
const {
return _stageName; }
138 const Variant &payload()
const {
return _payload; }
148 const JsonObject &jsonPayload()
const {
return _jsonPayload; }
151 const Metadata &metadata()
const {
return _metadata; }
154 const TimeStamp ×tamp()
const {
return _ts; }
161 void setKind(Kind k) { _kind = k; }
164 void setStageName(
const String &s) { _stageName = s; }
167 void setPayload(
const Variant &v) { _payload = v; }
170 void setJsonPayload(
const JsonObject &j) { _jsonPayload = j; }
173 void setMetadata(
const Metadata &m) { _metadata = m; }
176 void setTimestamp(
const TimeStamp &t) { _ts = t; }
199 JsonObject toJson()
const;
212 static PipelineEvent fromJson(
const JsonObject &obj, Error *err =
nullptr);
220 static String kindToString(Kind k);
230 static Kind kindFromString(
const String &s,
bool *ok =
nullptr);
233 Kind _kind = Kind::StateChanged;
236 JsonObject _jsonPayload;