aboutsummaryrefslogtreecommitdiffstats
path: root/src/activity_manager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/activity_manager.hpp')
-rw-r--r--src/activity_manager.hpp16
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