#include <json-glib/json-glib.h>
#include <Core/Util/Log.h>
#include "web_provider_plugin_info.h"
+#include <memory>
// static functions
static web_provider_plugin_info* get_parsed_json_data(std::string& configPath);
web_provider_plugin_info** web_provider_plugin_get_installed_list(int* count)
{
- DIR* dir = opendir(installedPluginDirPath.c_str());
+ std::unique_ptr<DIR, int(*)(DIR*)> dir (opendir(installedPluginDirPath.c_str()), closedir);
if (!dir) {
LogD("failed to open directory for web livebox plugins");
*count = 0;
struct dirent* entry;
struct stat configStat;
std::string configPath;
- while (entry = readdir(dir)) {
+ while ((entry = readdir(dir.get()))) {
if (!strcmp(entry->d_name, ".") ||
!strcmp(entry->d_name, "..")) {
continue;
std::list<web_provider_plugin_info*> pluginList;
for (auto it = configList.begin();
it != configList.end(); it++) {
- web_provider_plugin_info* info =
- get_parsed_json_data(*it);
+ web_provider_plugin_info* info = get_parsed_json_data(*it) ;
if (!info) {
continue;
}
for (int i = 0; i < count; i++) {
if (info_list[i]) {
if (info_list[i]->type) {
- free(const_cast<char*>(info_list[i]->type));
+ delete[] info_list[i]->type;
}
if (info_list[i]->path) {
- free(const_cast<char*>(info_list[i]->path));
+ delete[] info_list[i]->path;
}
if (info_list[i]->service_boxid) {
- free(const_cast<char*>(info_list[i]->service_boxid));
+ delete[] info_list[i]->service_boxid;
}
}
}
+ if (info_list) {
+ delete[] info_list;
+ }
}
static web_provider_plugin_info* get_parsed_json_data(std::string& configPath)
if ((arg->info.lb_create.width == 0) || (arg->info.lb_create.height == 0)) {
livebox_service_get_size(LB_SIZE_TYPE_1x1, width, height);
- arg->info.lb_create.width = *width;
- arg->info.lb_create.height = *height;
+ } else {
+ *width = arg->info.lb_create.width;
+ *height = arg->info.lb_create.height;
}
- info->boxWidth = arg->info.lb_create.width;
- info->boxHeight = arg->info.lb_create.height;
+ info->boxWidth = *width;
+ info->boxHeight = *height;
info->priority = 1.0f;
info->period = arg->info.lb_create.period;
if (arg->info.lb_create.content) {
LogD("update period: %d", info->period);
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_ADD_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_ADD_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::boxReCreateCallback(ProviderEventArgPtr arg, void* data)
LogD("update period: %f", info->period);
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_ADD_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_ADD_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::boxDestroyCallback(ProviderEventArgPtr arg, void* data)
LogD("InstanceId: %s", info->instanceId.c_str());
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_REMOVE_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_REMOVE_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::pdCreateCallback(ProviderEventArgPtr arg, void* data)
LogD("height: %d", info->pdHeight);
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_OPEN_PD, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_OPEN_PD, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::pdDestroyCallback(ProviderEventArgPtr arg, void* data)
LogD("InstanceId: %s", info->instanceId.c_str());
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_CLOSE_PD, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_CLOSE_PD, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::clickedCallback(ProviderEventArgPtr arg, void* data)
LogD("height: %d", info->boxHeight);
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESIZE_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_RESIZE_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::boxPauseCallback(ProviderEventArgPtr arg, void* data)
LogD("InstanceId: %s", info->instanceId.c_str());
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_PAUSE_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_PAUSE_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::boxResumeCallback(ProviderEventArgPtr arg, void* data)
LogD("InstanceId: %s", info->instanceId.c_str());
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESUME_BOX, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_RESUME_BOX, info, This))
+ ? 0 : -1;
}
int BoxDaemonImpl::pauseCallback(ProviderEventArgPtr arg, void* data)
LogD("web-provider is paused");
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_PAUSE_ALL, BoxInfoPtr(), This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_PAUSE_ALL, BoxInfoPtr(), This))
+ ? 0 : -1;
}
int BoxDaemonImpl::resumeCallback(ProviderEventArgPtr arg, void* data)
LogD("web-provider is resumed");
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESUME_ALL, BoxInfoPtr(), This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_RESUME_ALL, BoxInfoPtr(), This))
+ ? 0 : -1;
}
int BoxDaemonImpl::updateContentCallback(ProviderEventArgPtr arg, void* data)
LogD("period: %f", info->period);
LogD("--------------------------------------------");
- JobInfo* jobInfo = new JobInfo(REQUEST_CMD_CHANGE_PERIOD, info, This);
- Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
- return ret ? 0 : -1;
+ return ecore_job_add(
+ requestBoxJobCallback,
+ new JobInfo(REQUEST_CMD_CHANGE_PERIOD, info, This))
+ ? 0 : -1;
}
void BoxDaemonImpl::setProviderCallbacks(ProviderCallbacks& callbacks)
}
const char* type = web_provider_livebox_get_box_type(boxId);
+ std::string boxType;
if (!type) {
std::string serviceBoxId(boxId);
- std::string boxType = m_pluginConnector->getBoxType(serviceBoxId);
+ boxType = m_pluginConnector->getBoxType(serviceBoxId);
if (boxType.empty()) {
LogD("unrecognized box id");
return NULL;
return BoxInfoPtr();
}
- return BoxInfoPtr(new BoxInfo(type, arg->pkgname, arg->id));
+ BoxInfoPtr infoPtr = BoxInfoPtr(new BoxInfo(type, arg->pkgname, arg->id));
+ delete[] type;
+
+ return infoPtr;
}
Eina_Bool BoxDaemonImpl::pingToMasterCallback(void* data)