Code Review
/
apps
/
agl-service-homescreen.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix pushAppListChangedEvent json-c object reference count error
[apps/agl-service-homescreen.git]
/
src
/
hs-clientmanager.cpp
diff --git
a/src/hs-clientmanager.cpp
b/src/hs-clientmanager.cpp
index
8735c2e
..
beac816
100644
(file)
--- a/
src/hs-clientmanager.cpp
+++ b/
src/hs-clientmanager.cpp
@@
-1,5
+1,6
@@
/*
* Copyright (c) 2018 TOYOTA MOTOR CORPORATION
/*
* Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ * Copyright (C) 2020 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-13,9
+14,10
@@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#include <cstring>
#include <algorithm>
#include "hs-clientmanager.h"
#include <algorithm>
#include "hs-clientmanager.h"
-#include "hmi-debug.h"
static const char _homescreen[] = "homescreen";
static const char _homescreen[] = "homescreen";
@@
-70,7
+72,7
@@
HS_ClientManager* HS_ClientManager::instance(void)
*/
int HS_ClientManager::init(void)
{
*/
int HS_ClientManager::init(void)
{
-
HMI_NOTICE("homescreen-service","called.")
;
+
return 0
;
}
/**
}
/**
@@
-88,11
+90,13
@@
HS_ClientCtxt* HS_ClientManager::createClientCtxt(afb_req_t req, std::string app
HS_ClientCtxt *ctxt = (HS_ClientCtxt *)afb_req_context_get(req);
if (!ctxt)
{
HS_ClientCtxt *ctxt = (HS_ClientCtxt *)afb_req_context_get(req);
if (!ctxt)
{
-
HMI_NOTICE("homescreen-service",
"create new session for %s", appid.c_str());
-
HS_ClientCtxt *ctxt = new HS_ClientCtxt(appid.c_str()
);
+
AFB_INFO(
"create new session for %s", appid.c_str());
+
ctxt = new HS_ClientCtxt(appid
);
afb_req_session_set_LOA(req, 1);
afb_req_context_set(req, ctxt, cbRemoveClientCtxt);
}
afb_req_session_set_LOA(req, 1);
afb_req_context_set(req, ctxt, cbRemoveClientCtxt);
}
+
+ appid2ctxt[appid] = ctxt;
return ctxt;
}
return ctxt;
}
@@
-142,11
+146,11
@@
void HS_ClientManager::removeClientCtxt(void *data)
HS_ClientCtxt *ctxt = (HS_ClientCtxt *)data;
if(ctxt == nullptr)
{
HS_ClientCtxt *ctxt = (HS_ClientCtxt *)data;
if(ctxt == nullptr)
{
-
HMI_ERROR("homescreen-service",
"data is nullptr");
+
AFB_WARNING(
"data is nullptr");
return;
}
return;
}
-
HMI_NOTICE("homescreen-service",
"remove app %s", ctxt->id.c_str());
+
AFB_INFO(
"remove app %s", ctxt->id.c_str());
std::lock_guard<std::mutex> lock(this->mtx);
removeClient(ctxt->id);
delete appid2ctxt[ctxt->id];
std::lock_guard<std::mutex> lock(this->mtx);
removeClient(ctxt->id);
delete appid2ctxt[ctxt->id];
@@
-168,7
+172,7
@@
void HS_ClientManager::removeClientCtxt(void *data)
*/
int HS_ClientManager::handleRequest(afb_req_t request, const char *verb, const char *appid)
{
*/
int HS_ClientManager::handleRequest(afb_req_t request, const char *verb, const char *appid)
{
-
HMI_NOTICE("homescreen-service",
"verb=[%s],appid=[%s].", verb, appid);
+
AFB_INFO(
"verb=[%s],appid=[%s].", verb, appid);
int ret = 0;
std::lock_guard<std::mutex> lock(this->mtx);
if(appid == nullptr) {
int ret = 0;
std::lock_guard<std::mutex> lock(this->mtx);
if(appid == nullptr) {
@@
-177,18
+181,20
@@
int HS_ClientManager::handleRequest(afb_req_t request, const char *verb, const c
}
}
else {
}
}
else {
- auto ip = client_list.find(std::string(appid));
+ std::string id(appid);
+ auto ip = client_list.find(id);
if(ip != client_list.end()) {
if(ip != client_list.end()) {
+ // FIXME: do another verification here in case the application died
ret = ip->second->handleRequest(request, verb);
}
else {
if(!strcasecmp(verb, "subscribe")) {
ret = ip->second->handleRequest(request, verb);
}
else {
if(!strcasecmp(verb, "subscribe")) {
-
appid2ctxt[appid] = createClientCtxt(request, app
id);
- HS_Client* client = addClient(request,
app
id);
+
createClientCtxt(request,
id);
+ HS_Client* client = addClient(request, id);
ret = client->handleRequest(request, "subscribe");
}
else {
ret = client->handleRequest(request, "subscribe");
}
else {
-
HMI_NOTICE("homescreen-service",
"not exist session");
+
AFB_NOTICE(
"not exist session");
ret = AFB_REQ_NOT_STARTED_APPLICATION;
}
}
ret = AFB_REQ_NOT_STARTED_APPLICATION;
}
}
@@
-212,7
+218,7
@@
int HS_ClientManager::handleRequest(afb_req_t request, const char *verb, const c
int HS_ClientManager::pushEvent(const char *event, struct json_object *param, std::string appid)
{
if(event == nullptr) {
int HS_ClientManager::pushEvent(const char *event, struct json_object *param, std::string appid)
{
if(event == nullptr) {
-
HMI_ERROR("homescreen-service",
"event name is null.");
+
AFB_WARNING(
"event name is null.");
return -1;
}
return -1;
}
@@
-230,4
+236,4
@@
int HS_ClientManager::pushEvent(const char *event, struct json_object *param, st
}
return 0;
}
return 0;
-}
\ No newline at end of file
+}