From bb23bd582854cc0ce793157ceffda8e7b5fd424b Mon Sep 17 00:00:00 2001 From: seolheui kim Date: Mon, 22 Jan 2018 15:43:00 +0900 Subject: [PATCH] Add methodCallForce to policy-client Change-Id: I95c7e9b16dd02f0bd927ea801d5e67819babbdad Signed-off-by: seolheui kim --- libs/pil/policy-client.h | 8 ++++++++ tools/cli/dpm-admin-cli.cpp | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libs/pil/policy-client.h b/libs/pil/policy-client.h index 470c25e..6b08233 100644 --- a/libs/pil/policy-client.h +++ b/libs/pil/policy-client.h @@ -51,6 +51,14 @@ public: return ret; } + template + Type methodCallForce(const std::string& method, Args&&... args) + { + rmi::Connection conn(clientAddress); + Type ret = rmi::RemoteMethod<>::invoke(conn, method, std::forward(args)...); + return ret; + } + private: int maintenanceMode; std::string clientAddress; diff --git a/tools/cli/dpm-admin-cli.cpp b/tools/cli/dpm-admin-cli.cpp index 16d6b92..dadd570 100644 --- a/tools/cli/dpm-admin-cli.cpp +++ b/tools/cli/dpm-admin-cli.cpp @@ -47,7 +47,7 @@ static int registerAdministrator(const std::string& pkgname, uid_t uid) DevicePolicyClient client; Status status { -1 }; - status = client.methodCall("DevicePolicyManager::enroll", pkgname, uid); + status = client.methodCallForce("DevicePolicyManager::enroll", pkgname, uid); return status.get(); } catch (...) { std::cerr << "Failed to enroll device" << std::endl; @@ -61,7 +61,7 @@ static int deregisterAdministrator(const std::string& pkgname, uid_t uid) DevicePolicyClient client; Status status { -1 }; - status = client.methodCall("DevicePolicyManager::disenroll", pkgname, uid); + status = client.methodCallForce("DevicePolicyManager::disenroll", pkgname, uid); return status.get(); } catch (...) { std::cerr << "Failed to disenroll device" << std::endl; -- 2.7.4