diff options
author | Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com> | 2018-12-13 01:01:33 +0000 |
---|---|---|
committer | Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com> | 2018-12-13 01:01:53 +0000 |
commit | 7a4a02d048910615cb15c26fc5534ad471a8d5ac (patch) | |
tree | d2e9e0573215e215d54b8d66fb3a86d72360e4b0 /src/activity_manager.hpp | |
parent | e35c4bf9b16927829e1741b9d9c08294f0cbed29 (diff) |
POI: AGL LifeCycle Managementsandbox/ruke47/lifecycle
Improved internal management of observer's context.
Before: using appid as key and storing map
After: storing vector into context of afb_req
Change-Id: I0a4d2350e6be458dd048625fabb8a1ac84e8e848
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
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 |