diff options
Diffstat (limited to 'src/activity_manager.hpp')
-rw-r--r-- | src/activity_manager.hpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/activity_manager.hpp b/src/activity_manager.hpp index 0663003..ebd5762 100644 --- a/src/activity_manager.hpp +++ b/src/activity_manager.hpp @@ -57,28 +57,28 @@ struct _observer_context { using observer = struct _observer_context; -// map of <"id:appid", "context of observer"> -using observers = std::map<std::string, observer>; - class ActivityManager { public: explicit ActivityManager(); ~ActivityManager() = default; - void api_register_activity_observer (afb_req_t req); - void api_unregister_activity_observer (afb_req_t req); + void api_register_activity_observer (afb_req_t req, void* &obs_ctx); + void api_unregister_activity_observer (afb_req_t req, void* &obs_ctx); wm::result<json_object *> api_get_activity_status(const char *appid); - public: void emit_activity_status_changed(const char* appid, const char* state); + void lcm_clear_context (void* &lcm_ctx); - // map of <"id:target", "registered observers"> - std::map<std::string, observers> map_observers; + // map of <"string:target $appid", "vector of registered observers"> + std::map<std::string, std::vector<observer*>> map_observers; // map of <"id:target", "current_state"> std::map<std::string, int> states; const char *states_s[NUM_STATUS]; + + private: + void remove_observer (observer* obs, std::vector<observer*>& obs_v); }; } // namespace lcm |