13#ifndef RTCTK_COMPONENTFRAMEWORK_EVENTDEFINITIONS_HPP
14#define RTCTK_COMPONENTFRAMEWORK_EVENTDEFINITIONS_HPP
18#include <boost/core/demangle.hpp>
27 return boost::core::demangle((
typeid(T).name()));
31 using namespace std::chrono;
48 :
origin(payload[
"origin"]),
time(payload[
"time"]) {
56 payload[
"type"] = std::vector<std::string>();
57 payload[
"origin"] =
origin;
58 payload[
"time"] =
time;
73 inline static const std::string
TOPIC_NAME =
"computation_topic";
90 payload[
"item"] =
item;
91 payload[
"state"] =
state;
128 const std::string&
item,
140 payload[
"result"] =
result;
154 inline static const std::string
TOPIC_NAME =
"configuration_topic";
161 const std::vector<std::string>&
items,
162 const std::string&
state)
173 payload[
"items"] =
items;
174 payload[
"state"] =
state;
235 const std::string& item,
272 const std::string& item,
310 inline static const std::string
TOPIC_NAME =
"coordination_topic";
331 const std::string&
entity,
332 const std::string&
state)
347 payload[
"state"] =
state;
348 payload[
"entity"] =
entity;
362 const std::string&
entity,
363 const std::string&
state,
399 inline static const std::string
TOPIC_NAME =
"alert_status_topic";
457 payload[
"status"] =
status;
463 {
"description",
alert.description},
464 {
"since",
alert.since}});
Defines the JSON payload type JsonPayload.
Definition commandReplier.cpp:22
nlohmann::json JsonPayload
Type requirements:
Definition jsonPayload.hpp:25
uint64_t GetTimestamp()
Definition eventDefinitions.hpp:30
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
std::string PrettyTypeName()
Definition eventDefinitions.hpp:26
nlohmann::json json
Definition runtimeRepoAdapter.cpp:46
Abstract Event Type that is used as a base for all events.
Definition eventDefinitions.hpp:44
AbstractEvent(const std::string &origin)
Definition eventDefinitions.hpp:51
std::string origin
Definition eventDefinitions.hpp:62
JsonPayload ToJson() const
Definition eventDefinitions.hpp:54
uint64_t time
Definition eventDefinitions.hpp:63
AbstractEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:47
Represents an active alert originating from a component instance.
Definition eventDefinitions.hpp:407
std::string origin
Component instance origin.
Definition eventDefinitions.hpp:411
std::uint64_t since
Timestamp when alert was first made active.
Definition eventDefinitions.hpp:426
std::string id
Alert identifier which is unique to the origin.
Definition eventDefinitions.hpp:416
std::string description
Description of alert.
Definition eventDefinitions.hpp:421
Event published when alert status is changed.
Definition eventDefinitions.hpp:397
static const std::string TOPIC_NAME
Definition eventDefinitions.hpp:399
JsonPayload ToJson() const
Serialize to JSON.
Definition eventDefinitions.hpp:454
bool status
Reduced alert status.
Definition eventDefinitions.hpp:473
AlertStatusEvent(bool st, std::vector< Alert > ac, const std::string &origin)
Construct by providing members.
Definition eventDefinitions.hpp:432
AlertStatusEvent(const JsonPayload &json)
Construct by deserializing from JSON.
Definition eventDefinitions.hpp:439
std::vector< Alert > active_alerts
Definition eventDefinitions.hpp:474
Abstract Event Type that is used as a base for computation events.
Definition eventDefinitions.hpp:72
ComputationEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:83
JsonPayload ToJson() const
Definition eventDefinitions.hpp:87
ComputationEvent(const std::string &origin, const std::string &item)
Definition eventDefinitions.hpp:79
std::string item
Definition eventDefinitions.hpp:95
ComputationEvent(const std::string &origin, const std::string &item, const std::string &state)
Definition eventDefinitions.hpp:75
std::string state
Definition eventDefinitions.hpp:96
static const std::string TOPIC_NAME
Definition eventDefinitions.hpp:73
Event Type used to signal that a computation has finished.
Definition eventDefinitions.hpp:122
ComputationFinishedEvent(const std::string &origin, const std::string &item, const JsonPayload &result)
Definition eventDefinitions.hpp:127
JsonPayload ToJson() const
Definition eventDefinitions.hpp:137
JsonPayload result
Definition eventDefinitions.hpp:144
ComputationFinishedEvent(const std::string &origin, const std::string &item)
Definition eventDefinitions.hpp:123
ComputationFinishedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:133
Event Type used to signal that a computation has started.
Definition eventDefinitions.hpp:103
JsonPayload ToJson() const
Definition eventDefinitions.hpp:111
ComputationStartedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:108
ComputationStartedEvent(const std::string &origin, const std::string &item)
Definition eventDefinitions.hpp:104
Abstract Event Type that is used as a base for configuration events.
Definition eventDefinitions.hpp:153
ConfigurationEvent(const std::string &origin, const std::string &item, const std::string &state)
Definition eventDefinitions.hpp:156
ConfigurationEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:166
static const std::string TOPIC_NAME
Definition eventDefinitions.hpp:154
ConfigurationEvent(const std::string &origin, const std::vector< std::string > &items, const std::string &state)
Definition eventDefinitions.hpp:160
std::string state
Definition eventDefinitions.hpp:179
std::vector< std::string > items
Definition eventDefinitions.hpp:178
JsonPayload ToJson() const
Definition eventDefinitions.hpp:170
Event Type used to signal that a configuration data item was retrieved from RTR.
Definition eventDefinitions.hpp:209
ConfigurationRetrievedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:218
ConfigurationRetrievedEvent(const std::string &origin, const std::string &item)
Definition eventDefinitions.hpp:210
ConfigurationRetrievedEvent(const std::string &origin, const std::vector< std::string > &items)
Definition eventDefinitions.hpp:214
JsonPayload ToJson() const
Definition eventDefinitions.hpp:221
Event Type used to signal that a configuration data item was updated in RTR.
Definition eventDefinitions.hpp:186
ConfigurationUpdatedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:195
JsonPayload ToJson() const
Definition eventDefinitions.hpp:198
ConfigurationUpdatedEvent(const std::string &origin, const std::string &item)
Definition eventDefinitions.hpp:187
ConfigurationUpdatedEvent(const std::string &origin, const std::vector< std::string > &items)
Definition eventDefinitions.hpp:191
Abstract Event Type that is used as a base for coordination events.
Definition eventDefinitions.hpp:309
JsonPayload ToJson() const
Definition eventDefinitions.hpp:318
static const std::string TOPIC_NAME
Definition eventDefinitions.hpp:310
CoordinationEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:315
CoordinationEvent(const std::string &origin)
Definition eventDefinitions.hpp:312
Event Type used to signal that a configuration data item was applied in HRTC.
Definition eventDefinitions.hpp:270
HrtcConfigurationAppliedEvent(const std::string &origin, const std::string &item, const std::string &hrtc_origin, uint64_t hrtc_timestamp, uint64_t hrtc_sample_id)
Definition eventDefinitions.hpp:271
uint64_t hrtc_sample_id
Definition eventDefinitions.hpp:300
HrtcConfigurationAppliedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:282
std::string hrtc_origin
Definition eventDefinitions.hpp:298
uint64_t hrtc_timestamp
Definition eventDefinitions.hpp:299
JsonPayload ToJson() const
Definition eventDefinitions.hpp:289
Event Type used to signal that a configuration data item was scheduled to be applied in HRTC.
Definition eventDefinitions.hpp:233
uint64_t hrtc_timestamp
Definition eventDefinitions.hpp:262
HrtcConfigurationScheduledEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:245
uint64_t hrtc_sample_id
Definition eventDefinitions.hpp:263
JsonPayload ToJson() const
Definition eventDefinitions.hpp:252
HrtcConfigurationScheduledEvent(const std::string &origin, const std::string &item, const std::string &hrtc_origin, uint64_t hrtc_timestamp, uint64_t hrtc_sample_id)
Definition eventDefinitions.hpp:234
std::string hrtc_origin
Definition eventDefinitions.hpp:261
Event Type used to signal that some entity in HRTC changed its state.
Definition eventDefinitions.hpp:360
HrtcStateChangedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:371
uint64_t hrtc_timestamp
Definition eventDefinitions.hpp:385
HrtcStateChangedEvent(const std::string &origin, const std::string &entity, const std::string &state, uint64_t hrtc_timestamp, uint64_t hrtc_sample_id)
Definition eventDefinitions.hpp:361
JsonPayload ToJson() const
Definition eventDefinitions.hpp:377
uint64_t hrtc_sample_id
Definition eventDefinitions.hpp:386
Event Type used to signal that some entity changed its state.
Definition eventDefinitions.hpp:329
StateChangedEvent(const std::string &origin, const std::string &entity, const std::string &state)
Definition eventDefinitions.hpp:330
StateChangedEvent(const std::string &origin, const std::string &state)
Definition eventDefinitions.hpp:336
JsonPayload ToJson() const
Definition eventDefinitions.hpp:344
std::string entity
Definition eventDefinitions.hpp:352
StateChangedEvent(const JsonPayload &payload)
Definition eventDefinitions.hpp:340
std::string state
Definition eventDefinitions.hpp:353