diff options
author | wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com> | 2018-11-21 16:02:53 +0800 |
---|---|---|
committer | wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com> | 2018-11-23 10:10:34 +0800 |
commit | cbb18a85dc4df6ca1317f543db5a9da7b84cf9e1 (patch) | |
tree | 14dce9ccf4a5d0fcc6630293b8f005d0c75d1a1b | |
parent | 7a123d6d802fe76a6d2eb32adacb2215d5bb873a (diff) |
Improvement:a client instance only call afb_req_subscribe once
when call subscribe every time, hs_client instance will call afb_req_subscribe once,
this is needless, every hs_client always only has one event, so only need to call afb_req_subscribe once.
Change-Id: I91417b749201fc378287e03f08dfd4dfd5df9dc7
Signed-off-by: wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
-rw-r--r-- | src/hs-client.cpp | 5 | ||||
-rw-r--r-- | src/hs-client.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/hs-client.cpp b/src/hs-client.cpp index 26e43bb..536ff6e 100644 --- a/src/hs-client.cpp +++ b/src/hs-client.cpp @@ -142,7 +142,12 @@ int HS_Client::subscribe(afb_req_t request, const char* event) auto ip = event_list.find(std::string(event)); if(ip == event_list.end()) { event_list[std::string(event)] = 0; + } + if(!subscription) { ret = afb_req_subscribe(request, my_event); + if(ret == 0) { + subscription = true; + } } return ret; } diff --git a/src/hs-client.h b/src/hs-client.h index 16fa39c..b06a717 100644 --- a/src/hs-client.h +++ b/src/hs-client.h @@ -47,6 +47,7 @@ private: private: std::string my_id; afb_event_t my_event; + bool subscription = false; std::unordered_map<std::string, int> event_list; }; |