Skip to content

Commit 6c6c71c

Browse files
committed
engine: Make probe output trigger schema
1 parent c22e9d7 commit 6c6c71c

File tree

4 files changed

+24
-26
lines changed

4 files changed

+24
-26
lines changed

engine/src/coordinator.cpp

+8-10
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,18 @@ std::shared_ptr<cloe::TriggerRegistrar> Coordinator::trigger_registrar(Source s)
8282
return std::make_shared<TriggerRegistrar>(*this, s);
8383
}
8484

85-
[[nodiscard]] std::vector<std::string> Coordinator::trigger_action_names() const {
86-
std::vector<std::string> results;
87-
results.reserve(actions_.size());
88-
for (const auto& [key, _] : actions_) {
89-
results.emplace_back(key);
85+
[[nodiscard]] std::map<std::string, fable::Json> Coordinator::trigger_action_schemas() const {
86+
std::map<std::string, fable::Json> results;
87+
for (const auto& [key, ptr] : actions_) {
88+
results.emplace(key, ptr->schema().json_schema());
9089
}
9190
return results;
9291
}
9392

94-
[[nodiscard]] std::vector<std::string> Coordinator::trigger_event_names() const {
95-
std::vector<std::string> results;
96-
results.reserve(events_.size());
97-
for (const auto& [key, _] : events_) {
98-
results.emplace_back(key);
93+
[[nodiscard]] std::map<std::string, fable::Json> Coordinator::trigger_event_schemas() const {
94+
std::map<std::string, fable::Json> results;
95+
for (const auto& [key, ptr] : events_) {
96+
results.emplace(key, ptr->schema().json_schema());
9997
}
10098
return results;
10199
}

engine/src/coordinator.hpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@
2222

2323
#pragma once
2424

25-
#include <list> // for list<>
26-
#include <map> // for map<>
27-
#include <memory> // for unique_ptr<>, shared_ptr<>
28-
#include <mutex> // for mutex
29-
#include <queue> // for queue<>
30-
#include <string> // for string
31-
#include <vector> // for vector<>
25+
#include <list> // for list<>
26+
#include <map> // for map<>
27+
#include <memory> // for unique_ptr<>, shared_ptr<>
28+
#include <mutex> // for mutex
29+
#include <queue> // for queue<>
30+
#include <string> // for string
31+
#include <vector> // for vector<>
3232

3333
#include <sol/state_view.hpp> // for state_view
3434
#include <sol/table.hpp> // for table
3535

36-
#include <cloe/cloe_fwd.hpp> // for Registrar, DataBroker
37-
#include <cloe/trigger.hpp> // for Trigger, Action, Event, ...
36+
#include <cloe/cloe_fwd.hpp> // for Registrar, DataBroker
37+
#include <cloe/trigger.hpp> // for Trigger, Action, Event, ...
3838

3939
namespace engine {
4040

@@ -49,7 +49,7 @@ class TriggerUnknownAction : public cloe::TriggerInvalid {
4949
public:
5050
TriggerUnknownAction(const std::string& key, const cloe::Conf& c)
5151
: TriggerInvalid(c, "unknown action: " + key), key_(key) {}
52-
~TriggerUnknownAction() noexcept override = default;
52+
~TriggerUnknownAction() noexcept override = default;
5353

5454
/**
5555
* Return key that is unknown.
@@ -120,12 +120,12 @@ class Coordinator {
120120
/**
121121
* Return a list of names of all available actions that have been enrolled.
122122
*/
123-
[[nodiscard]] std::vector<std::string> trigger_action_names() const;
123+
[[nodiscard]] std::map<std::string, fable::Json> trigger_action_schemas() const;
124124

125125
/**
126126
* Return a list of names of all available events that have been enrolled.
127127
*/
128-
[[nodiscard]] std::vector<std::string> trigger_event_names() const;
128+
[[nodiscard]] std::map<std::string, fable::Json> trigger_event_schemas() const;
129129

130130
/**
131131
* Process any incoming triggers, clear the buffer, and trigger time-based

engine/src/simulation_probe.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ struct SimulationProbe {
5555
std::map<std::string, std::vector<std::string>> vehicles;
5656

5757
/// List of trigger actions enrolled.
58-
std::vector<std::string> trigger_actions;
58+
std::map<std::string, fable::Json> trigger_actions;
5959

6060
/// List of trigger events enrolled.
61-
std::vector<std::string> trigger_events;
61+
std::map<std::string, fable::Json> trigger_events;
6262

6363
/// List of HTTP endpoints that are available.
6464
std::vector<std::string> http_endpoints;

engine/src/simulation_state_probe.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ StateId SimulationMachine::Probe::impl(SimulationContext& ctx) {
6969
for (const auto& [name, veh] : ctx.vehicles) {
7070
data.vehicles[name] = veh->component_names();
7171
}
72-
data.trigger_actions = ctx.coordinator->trigger_action_names();
73-
data.trigger_events = ctx.coordinator->trigger_event_names();
72+
data.trigger_actions = ctx.coordinator->trigger_action_schemas();
73+
data.trigger_events = ctx.coordinator->trigger_event_schemas();
7474
data.http_endpoints = ctx.server->endpoints();
7575
data.signal_metadata = dump_signals(*ctx.db);
7676
data.test_metadata = sol::object(cloe::luat_cloe_engine_state(ctx.lua)["report"]["tests"]);

0 commit comments

Comments
 (0)