Class SqliteTriggerStore
Defined in File sqlite_trigger_store.hpp
Inheritance Relationships
Base Type
public ros2_medkit_gateway::TriggerStore(Class TriggerStore)
Class Documentation
-
class SqliteTriggerStore : public ros2_medkit_gateway::TriggerStore
SQLite-backed trigger persistence.
Thread-safe via internal mutex. Tables are created on first open. Use “:memory:” for an ephemeral in-memory database (useful in tests).
Public Functions
-
explicit SqliteTriggerStore(const std::string &db_path)
Open (or create) the database at
db_path.- Throws:
std::runtime_error – on SQLite open/init failure.
-
~SqliteTriggerStore() override
-
SqliteTriggerStore(const SqliteTriggerStore&) = delete
-
SqliteTriggerStore &operator=(const SqliteTriggerStore&) = delete
-
SqliteTriggerStore(SqliteTriggerStore&&) = delete
-
SqliteTriggerStore &operator=(SqliteTriggerStore&&) = delete
-
virtual tl::expected<void, std::string> save(const TriggerInfo &trigger) override
Persist a new (or replace an existing) trigger.
-
virtual tl::expected<void, std::string> update(const std::string &id, const nlohmann::json &fields) override
Partially update a trigger by ID.
fieldsis a JSON object whose keys map to TriggerInfo field names (e.g. {“status”:”TERMINATED”}).
-
virtual tl::expected<void, std::string> remove(const std::string &id) override
Remove a trigger by ID.
-
virtual tl::expected<std::vector<TriggerInfo>, std::string> load_all() override
Load every trigger in the store.
-
virtual tl::expected<void, std::string> save_state(const std::string &trigger_id, const nlohmann::json &previous_value) override
Persist opaque evaluator state (e.g. previous value) for a trigger.
-
virtual tl::expected<std::optional<nlohmann::json>, std::string> load_state(const std::string &trigger_id) override
Load evaluator state for a trigger. Returns nullopt when no state exists.
-
explicit SqliteTriggerStore(const std::string &db_path)