aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>2018-11-21 16:02:53 +0800
committerwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>2018-11-23 10:10:34 +0800
commitcbb18a85dc4df6ca1317f543db5a9da7b84cf9e1 (patch)
tree14dce9ccf4a5d0fcc6630293b8f005d0c75d1a1b
parent7a123d6d802fe76a6d2eb32adacb2215d5bb873a (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.cpp5
-rw-r--r--src/hs-client.h1
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;
};