this->clientDump();
}
-/**
- * Add Client to the list
- *
- * This function is overload function.
- * But this function just register application.
- * So an application does not have role, surface, layer.
- * Client need to register role and layer afterward.
- *
- * @param string[in] Application id. This will be the key to withdraw the information.
- * @return None
- * @attention This function should be called once for the app
- * Caller should take care not to be called more than once.
- */
-void AppList::addClient(const string &appid)
-{
- std::lock_guard<std::mutex> lock(this->mtx);
- shared_ptr<WMClient> client = std::make_shared<WMClient>(appid, 0, "");
- this->app2client[appid] = client;
- this->clientDump();
-}
-
/**
* Remove WMClient from the list
*
}
HMI_SEQ_ERROR(req_num, "Couldn't get action with the request : %d", req_num);
{
- static vector<struct WMAction> empty;
- return empty;
+ static vector<struct WMAction> empty;
+ return empty;
}
}
}
// If visible task is not invisible, redraw is required -> true
bool edraw_f = (visible != TaskVisible::INVISIBLE) ? false : true;
- WMAction action{req_num, client, role, area, visible, edraw_f};
+ WMAction action{req_num, client, role, area, visible, edraw_f, TaskCarState::NO_TASK};
x.sync_draw_req.push_back(action);
result = WMError::SUCCESS;
{
for (auto &y : x.sync_draw_req)
{
- if (y.client->appID() == appid && y.role == role)
+ if (nullptr != y.client)
+ {
+ if (y.client->appID() == appid && y.role == role)
+ {
+ HMI_SEQ_INFO(req_num, "Role %s finish redraw", y.role.c_str());
+ y.end_draw_finished = true;
+ result = true;
+ }
+ }
+ else
{
- HMI_SEQ_INFO(req_num, "Role %s finish redraw", y.role.c_str());
- y.end_draw_finished = true;
- result = true;
+ if (y.role == role)
+ {
+ HMI_SEQ_INFO(req_num, "Role %s finish redraw", y.role.c_str());
+ y.end_draw_finished = true;
+ result = true;
+ }
}
}
}
{
DUMP(
"Action : (APPID :%s, ROLE :%s, AREA :%s, VISIBLE : %s, END_DRAW_FINISHED: %d)",
- y.client->appID().c_str(),
+ (y.client) ? y.client->appID().c_str() : "-",
y.role.c_str(),
y.area.c_str(),
(y.visible == TaskVisible::INVISIBLE) ? "invisible" : "visible",