aboutsummaryrefslogtreecommitdiffstats
path: root/src/activity_manager.hpp
diff options
context:
space:
mode:
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2018-12-13 01:01:33 +0000
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2018-12-13 01:01:53 +0000
commit7a4a02d048910615cb15c26fc5534ad471a8d5ac (patch)
treed2e9e0573215e215d54b8d66fb3a86d72360e4b0 /src/activity_manager.hpp
parente35c4bf9b16927829e1741b9d9c08294f0cbed29 (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.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