diff options
author | wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com> | 2019-04-16 18:30:59 +0800 |
---|---|---|
committer | wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com> | 2019-04-16 18:30:59 +0800 |
commit | 0fc1fc7db6ff7cb95ad6cd6f0ef8f2b88f3d08da (patch) | |
tree | 9fb4b9e07763b1fe4323cddce644d1480660ded5 /src/hs-proxy.cpp | |
parent | 54c9e53f5f9cfbc9f8cf1ea4af9b81447c3a9ffc (diff) |
add handshake
Change-Id: Ie5bdd327f5e994730b0d1cbffad68fca93c80766
Diffstat (limited to 'src/hs-proxy.cpp')
-rw-r--r-- | src/hs-proxy.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/hs-proxy.cpp b/src/hs-proxy.cpp index 967c1b1..1a237d7 100644 --- a/src/hs-proxy.cpp +++ b/src/hs-proxy.cpp @@ -37,6 +37,9 @@ static const char _event[] = "event"; static void api_callback(void *closure, struct json_object *object, const char *error, const char *info, afb_api_t api) { AFB_INFO("asynchronous call, error=%s, info=%s, object=%s.", error, info, json_object_get_string(object)); + if(closure != nullptr) { + reinterpret_cast<api_cb_func>(closure)(object, error, info); + } } /** @@ -52,10 +55,10 @@ static void api_callback(void *closure, struct json_object *object, const char * * None * */ -static void api_call(afb_api_t api, const char *service, const char *verb, struct json_object *args) +static void api_call(afb_api_t api, const char *service, const char *verb, struct json_object *args, api_cb_func f = nullptr) { AFB_INFO("service=%s verb=%s, args=%s.", service, verb, json_object_get_string(args)); - afb_api_call(api, service, verb, args, api_callback, nullptr); + afb_api_call(api, service, verb, args, api_callback, (void*)f); } /** @@ -144,14 +147,15 @@ void HS_AfmMainProxy::start(afb_req_t request, const std::string &id) * #### Parameters * - api : the api serving the request * - event : windowmanager event + * - f : callback function * * #### Return * None * */ -void HS_WmProxy::subscribe(afb_api_t api, EventType event) +void HS_WmProxy::subscribe(afb_api_t api, EventType event, api_cb_func f) { struct json_object* push_obj = json_object_new_object(); json_object_object_add(push_obj, _event, json_object_new_int(event)); - api_call(api, _windowmanager, "wm_subscribe", push_obj); + api_call(api, _windowmanager, "wm_subscribe", push_obj, f); } |