X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fhs-client.cpp;fp=src%2Fhs-client.cpp;h=dd91e103a104eeed7e7fb3abd561e97851fa86c1;hb=0558bdbf99233fb2391ba32cc91ec126e1ca6c1a;hp=6c638e098b71b951070c226fe13cf685aed0e7ce;hpb=9d859cd24dad9762c78b86b2dd5d7a71d0464453;p=apps%2Fagl-service-homescreen.git diff --git a/src/hs-client.cpp b/src/hs-client.cpp index 6c638e0..dd91e10 100644 --- a/src/hs-client.cpp +++ b/src/hs-client.cpp @@ -156,11 +156,17 @@ int HS_Client::subscribe(afb_req_t request) const char *value = afb_req_value(request, _event); if(value) { HMI_NOTICE("homescreen-service","subscribe event %s", value); - event_list.insert(std::string(value)); - if(!subscription) { - ret = afb_req_subscribe(request, my_event); - if(ret == 0) { - subscription = true; + if(!isSupportEvent(value)) { + HMI_NOTICE("homescreen-service","subscibe event isn't existing."); + ret = AFB_EVENT_BAD_REQUEST; + } + else { + event_list.insert(std::string(value)); + if(!subscription) { + ret = afb_req_subscribe(request, my_event); + if(ret == 0) { + subscription = true; + } } } } @@ -404,6 +410,26 @@ bool HS_Client::checkEvent(const char* event) return true; } +/** + * check if event is supporting + * + * #### Parameters + * - event: homescreen event, tap_shortcut etc. + * + * #### Return + * true: support + * false: not fosupportund + * + */ +bool HS_Client::isSupportEvent(const char* event) +{ + auto ip = func_list.find(std::string(event)); + if(ip == func_list.end()) + return false; + else + return true; +} + /** * handle homescreen event *