Class SqliteTriggerStore

Inheritance Relationships

Base Type

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. fields is 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.