#include <gio/gio.h>
#include <bundle_internal.h>
+#include "amd_api_app_request_broker.h"
#include "amd_api_noti.h"
#include "amd_app_com.h"
-#include "amd_app_request_broker.h"
#include "amd_app_status.h"
#include "amd_appinfo.h"
#include "amd_cynara.h"
int ret;
_signal_add_ready_cb(__listen_app_dead_signal, NULL);
- _app_request_broker_set_disconnected_event_cb(__disconnected_event_cb,
- NULL);
+ amd_app_request_broker_set_disconnected_event_cb(
+ __disconnected_event_cb, NULL);
__restart_table = g_hash_table_new_full(g_str_hash, g_str_equal,
NULL, __destroy_restart_info);
#include <vconf.h>
#include "amd_anr_monitor.h"
+#include "amd_api_app_request_broker.h"
#include "amd_app_com.h"
#include "amd_app_control.h"
#include "amd_app_property.h"
-#include "amd_app_request_broker.h"
#include "amd_app_status.h"
#include "amd_appinfo.h"
#include "amd_boot_manager.h"
{
int ret;
reply_info_t *info;
- app_request_t request = {
+ amd_app_request_t request = {
.pid = pid,
.uid = uid,
.cmd = cmd,
if (!info)
return -ENOMEM;
- ret = _app_request_broker_send(&request, __app_request_result_handler,
- info);
+ ret = amd_app_request_broker_send(&request,
+ __app_request_result_handler, info);
if (ret < 0) {
__destroy_reply_info(info);
return ret;
static void __prepare_to_suspend(int pid, uid_t uid)
{
SECURE_LOGD("[__SUSPEND__] pid: %d, uid: %d", pid, uid);
- aul_sock_send_raw(pid, uid, APP_SUSPEND, NULL, 0, AUL_SOCK_NOREPLY);
+ __send_app_request(pid, uid, APP_SUSPEND, -1, NULL);
}
static void __prepare_to_wake_services(int pid, uid_t uid)
{
SECURE_LOGD("[__SUSPEND__] pid: %d, uid: %d", pid, uid);
- aul_sock_send_raw(pid, uid, APP_WAKE, NULL, 0, AUL_SOCK_NOREPLY);
+ __send_app_request(pid, uid, APP_WAKE, -1, NULL);
}
static gboolean __check_service_only(gpointer user_data)
{
int pid;
int ret;
- int dummy;
const char *appid;
const char *pkgid;
const char *type;
ret = _term_req_app(pid, req);
break;
case APP_TERM_BY_PID_ASYNC:
- ret = aul_sock_send_raw(pid, target_uid, _request_get_cmd(req),
- (unsigned char *)&dummy, sizeof(int),
- AUL_SOCK_NOREPLY);
+ ret = __send_app_request(pid, target_uid, _request_get_cmd(req),
+ -1, NULL);
if (ret < 0)
- _D("terminate req packet send error");
+ _W("terminate req packet send error");
_request_send_result(req, ret);
break;
_request_reply_reset_pending_timer(req, PENDING_REQUEST_TIMEOUT, pid);
_noti_send(AMD_NOTI_MSG_LAUNCH_APP_STARTUP_SIGNAL_END, pid, 0, req, NULL);
- _app_request_broker_connect(pid, _request_get_uid(req));
+ amd_app_request_broker_connect(pid, _request_get_uid(req));
_W("[END] pid(%d)", pid);
return 0;
/*
- * Copyright (c) 2016 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2016 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <aul_sock.h>
#include <vconf.h>
+#include "amd_api_app_request_broker.h"
+#include "amd_app_status.h"
#include "amd_config.h"
#include "amd_signal.h"
-#include "amd_util.h"
#include "amd_suspend.h"
-#include "amd_app_status.h"
+#include "amd_util.h"
typedef struct proc_info {
pid_t pid;
static void __prepare_to_suspend(int pid, uid_t uid)
{
- int ret;
- int dummy = 0;
+ amd_app_request_t request = {
+ .pid = pid,
+ .uid = uid,
+ .cmd = APP_SUSPEND,
+ .data = NULL
+ };
_D("[__SUSPEND__] pid: %d, uid: %d", pid, uid);
- ret = aul_sock_send_raw(pid, uid, APP_SUSPEND, (unsigned char *)&dummy,
- sizeof(int), AUL_SOCK_NOREPLY);
- if (ret < 0)
- _E("Failed to send APP_SUSPEND %d", pid);
+ amd_app_request_broker_send(&request, NULL, NULL);
}
static void __prepare_to_wake(int pid, uid_t uid)
{
- int ret;
+ amd_app_request_t request;
bundle *kb;
kb = bundle_create();
return;
}
+ request.pid = pid;
+ request.uid = uid;
+ request.cmd = APP_WAKE;
+
bundle_add(kb, AUL_K_ALLOWED_BG, "ALLOWED_BG");
+ request.data = kb;
_D("[__SUSPEND__] pid: %d, uid: %d", pid, uid);
- ret = aul_sock_send_bundle(pid, uid, APP_WAKE, kb, AUL_SOCK_NOREPLY);
- if (ret != AUL_R_OK)
- _E("Failed to send APP_WAKE %d", pid);
-
+ amd_app_request_broker_send(&request, NULL, NULL);
bundle_free(kb);
}
/*
- * Copyright (c) 2017 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2017 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <amd_api_app_com.h>
#include <amd_api_app_property.h>
+#include <amd_api_app_request_broker.h>
#include <amd_api_app_status.h>
#include <amd_api_appinfo.h>
#include <amd_api_comp_status.h>
* limitations under the License.
*/
-#include "lib/amd_app_request_broker.h"
+#include "lib/api/amd_api_app_request_broker.h"
#include <aul.h>
#include <aul_cmd.h>
#include <bundle_cpp.h>
#include <parcel.hh>
+#include "lib/amd_api.h"
#include "lib/amd_util.h"
#include "lib/socket/client_socket.hh"
class ResultCb {
public:
- ResultCb(app_request_broker_result_cb cb, void* user_data)
+ ResultCb(amd_app_request_broker_result_cb cb, void* user_data)
: cb_(cb), user_data_(user_data) {
timer_ = g_timeout_add(5000, OnTimedOut, this);
}
}
private:
- app_request_broker_result_cb cb_;
+ amd_app_request_broker_result_cb cb_;
void* user_data_;
guint timer_ = 0;
};
return found->second;
}
- void SetDisconnectedEventCb(app_request_broker_disconnected_event_cb cb,
+ void SetDisconnectedEventCb(amd_app_request_broker_disconnected_event_cb cb,
void* data) {
disconn_cb_ = cb;
disconn_data_ = data;
private:
std::map<pid_t, std::shared_ptr<ClientChannel>> channels_;
- app_request_broker_disconnected_event_cb disconn_cb_ = nullptr;
+ amd_app_request_broker_disconnected_event_cb disconn_cb_ = nullptr;
void* disconn_data_ = nullptr;
};
} // namespace
-int _app_request_broker_send(app_request_t* request,
- app_request_broker_result_cb callback, void *user_data) {
+extern "C" EXPORT_API int amd_app_request_broker_send(
+ amd_app_request_t* request, amd_app_request_broker_result_cb callback,
+ void *user_data) {
_W("pid(%d), uid(%u), cmd(%d)", request->pid, request->uid, request->cmd);
auto& broker = AppRequestBroker::GetInst();
auto channel = broker.FindClientChannel(request->pid);
return ret;
}
- if (callback)
- channel->Push(std::make_shared<ResultCb>(callback, user_data));
-
+ channel->Push(std::make_shared<ResultCb>(callback, user_data));
return 0;
}
-int _app_request_broker_connect(pid_t pid, uid_t uid) {
+extern "C" EXPORT_API int amd_app_request_broker_connect(pid_t pid, uid_t uid) {
auto& broker = AppRequestBroker::GetInst();
auto channel = broker.CreateClientChannel(pid, uid);
if (channel == nullptr)
return 0;
}
-void _app_request_broker_set_disconnected_event_cb(
- app_request_broker_disconnected_event_cb callback, void* user_data) {
+extern "C" EXPORT_API void amd_app_request_broker_set_disconnected_event_cb(
+ amd_app_request_broker_disconnected_event_cb callback, void* user_data) {
AppRequestBroker::GetInst().SetDisconnectedEventCb(callback, user_data);
}
* limitations under the License.
*/
-#ifndef __AMD_APP_REQUEST_BROKER_H__
-#define __AMD_APP_REQUEST_BROKER_H__
+#ifndef __AMD_API_APP_REQUEST_BROKER_H__
+#define __AMD_API_APP_REQUEST_BROKER_H__
#include <sys/types.h>
#include <unistd.h>
extern "C" {
#endif
-typedef struct {
+typedef struct amd_app_request_s {
pid_t pid;
uid_t uid;
int cmd;
bundle *data;
-} app_request_t;
+} amd_app_request_t;
-typedef int (*app_request_broker_disconnected_event_cb)(int pid,
+typedef int (*amd_app_request_broker_disconnected_event_cb)(int pid,
void *user_data);
-typedef void (*app_request_broker_result_cb)(int result, void *user_data);
+typedef void (*amd_app_request_broker_result_cb)(int result, void *user_data);
-int _app_request_broker_send(app_request_t *req,
- app_request_broker_result_cb callback, void *user_data);
+int amd_app_request_broker_send(amd_app_request_t *req,
+ amd_app_request_broker_result_cb callback, void *user_data);
-int _app_request_broker_connect(pid_t pid, uid_t uid);
+int amd_app_request_broker_connect(pid_t pid, uid_t uid);
-void _app_request_broker_set_disconnected_event_cb(
- app_request_broker_disconnected_event_cb callback,
+void amd_app_request_broker_set_disconnected_event_cb(
+ amd_app_request_broker_disconnected_event_cb callback,
void *user_data);
#ifdef __cplusplus
}
#endif
-#endif /* __AMD_APP_REQUEST_BROKER_H__ */
+#endif /* __AMD_API_APP_REQUEST_BROKER_H__ */
/*
- * Copyright (c) 2016 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2016 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
amd_app_status_h app_status;
struct user_info_s *user_info;
struct app_screen_s *app_screen;
- int dummy = 0;
int pid;
int ret;
GList *found;
+ amd_app_request_t request;
user_info = g_hash_table_lookup(user_table, GUINT_TO_POINTER(uid));
if (user_info == NULL)
if (ret < 0)
return -1;
- ret = aul_sock_send_raw(pid, uid, APP_UPDATE_REQUESTED,
- (unsigned char *)&dummy, 0, AUL_SOCK_NOREPLY);
+ request.pid = pid;
+ request.uid = uid;
+ request.cmd = APP_UPDATE_REQUESTED;
+ request.data = NULL;
+
+ ret = amd_app_request_broker_send(&request, NULL, NULL);
if (ret < 0) {
_E("Failed to send the update request");
amd_suspend_update_status(pid, AMD_SUSPEND_STATUS_INCLUDE);
/*
- * Copyright (c) 2015 - 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2015 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
static void __prepare_to_wake(int pid, uid_t uid)
{
- int ret;
- int dummy = 0;
-
- ret = aul_sock_send_raw(pid, uid, APP_SUSPEND, (unsigned char *)&dummy,
- sizeof(int), AUL_SOCK_NOREPLY);
- if (ret < 0) {
- _E("Failed to send suspend signal. pid(%d), result(%d)",
- pid, ret);
- }
+ amd_app_request_t request = {
+ .pid = pid,
+ .uid = uid,
+ .cmd = APP_WAKE,
+ .data = NULL
+ };
+ amd_app_request_broker_send(&request, NULL, NULL);
_D("[__APP_SUSPEND__] pid: %d, uid: %d", pid, uid);
}
static void __prepare_to_suspend(int pid, uid_t uid)
{
- int ret;
- int dummy = 0;
-
- ret = aul_sock_send_raw(pid, uid, APP_WAKE, (unsigned char *)&dummy,
- sizeof(int), AUL_SOCK_NOREPLY);
- if (ret < 0) {
- _E("Failed to send wake signal. pid(%d), result(%d)",
- pid, ret);
- }
+ amd_app_request_t request = {
+ .pid = pid,
+ .uid = uid,
+ .cmd = APP_SUSPEND,
+ .data = NULL
+ };
+ amd_app_request_broker_send(&request, NULL, NULL);
_D("[__APP_WAKE__] pid: %d, uid: %d", pid, uid);
}