33 #include <sol/state_view.hpp>
34 #include <sol/table.hpp>
42 class TriggerRegistrar;
51 : TriggerInvalid(c,
"unknown action: " +
key), key_(
key) {}
57 const char*
key()
const {
return key_.c_str(); }
70 : TriggerInvalid(c,
"unknown event: " +
key), key_(
key) {}
76 const char*
key()
const {
return key_.c_str(); }
89 cloe::TriggerPtr what;
103 const std::vector<HistoryTrigger>& history()
const {
return history_; }
105 void register_action(
const std::string& key, cloe::ActionFactoryPtr&& af);
107 void register_event(
const std::string& key, cloe::EventFactoryPtr&& ef,
108 std::shared_ptr<cloe::Callback> storage);
110 sol::table register_lua_table(
const std::string& field);
114 std::shared_ptr<cloe::TriggerRegistrar> trigger_registrar(
cloe::Source s);
118 cloe::Logger logger()
const {
return cloe::logger::get(
"cloe"); }
126 size_t process_pending_lua_triggers(
const cloe::Sync& sync);
127 size_t process_pending_web_triggers(
const cloe::Sync& sync);
129 void insert_trigger_from_lua(
const cloe::Sync& sync,
const sol::object& obj);
130 void execute_action_from_lua(
const cloe::Sync& sync,
const sol::object& obj);
133 cloe::ActionPtr make_action(
const sol::object& lua)
const;
134 cloe::ActionPtr make_action(
const cloe::Conf& c)
const;
135 cloe::EventPtr make_event(
const cloe::Conf& c)
const;
137 cloe::TriggerPtr make_trigger(
const sol::table& tbl)
const;
139 void queue_trigger(cloe::TriggerPtr&& tp);
140 void store_trigger(cloe::TriggerPtr&& tp,
const cloe::Sync& sync);
148 bool allow_errors_ =
false;
151 std::map<std::string, cloe::ActionFactoryPtr> actions_;
152 std::map<std::string, cloe::EventFactoryPtr> events_;
153 sol::state_view lua_;
157 std::shared_ptr<cloe::TriggerRegistrar> executer_registrar_;
160 std::map<std::string, std::shared_ptr<cloe::Callback>> storage_;
163 std::list<cloe::TriggerPtr> input_queue_;
164 mutable std::mutex input_mutex_;
167 std::vector<HistoryTrigger> history_;
170 void register_usertype_coordinator(sol::table& lua,
const cloe::Sync& sync);
Definition: data_broker.hpp:1217
Definition: registrar.hpp:121
Definition: trigger.hpp:73
Definition: coordinator.hpp:99
cloe::Duration process(const cloe::Sync &)
Definition: coordinator.cpp:252
Definition: coordinator.cpp:62
Definition: coordinator.hpp:48
const char * key() const
Definition: coordinator.hpp:57
Definition: coordinator.hpp:67
const char * key() const
Definition: coordinator.hpp:76
std::chrono::nanoseconds Duration
Definition: cloe_fwd.hpp:36
Definition: coordinator.hpp:82
CallbackResult
Definition: trigger.hpp:514
Source
Definition: trigger.hpp:351