2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FApp_PackageManagerStub.cpp
20 * @brief This is the implementation for the _PackageManagerStub class.
25 #include <FAppPkgIPackageInstallationResponseListener.h>
26 #include <FAppPkgIPackageUninstallationResponseListener.h>
27 #include <FBaseSysLog.h>
28 #include <FBase_StringConverter.h>
29 #include <FIo_IpcServer.h>
30 #include <FSec_AccessController.h>
31 #include <FApp_PackageManagerIpcMessages.h>
33 #include "FAppPkg_PackageManagerImpl.h"
34 #include "FApp_PackageManagerStub.h"
37 namespace Tizen { namespace App {
39 using namespace Tizen::App::Package;
40 using namespace Tizen::Base;
41 using namespace Tizen::Base::Collection;
42 using namespace Tizen::Io;
43 using namespace Tizen::Security;
46 ///////////////////////////////////////////
47 // _PackageManagerStub
48 ///////////////////////////////////////////
50 _PackageManagerStub::_PackageManagerStub()
52 ,__pPackageManagerImpl(null)
54 SysLog(NID_APP, "_PackageManagerStub - Enter\n");
57 _PackageManagerStub::~_PackageManagerStub()
59 if ( __pIpcServer != null)
65 SysLog(NID_APP, "_PackageManagerStub - Exit\n");
69 _PackageManagerStub::Construct(void)
71 SysLog(NID_APP, "_PackageManagerStub - Construct.");
73 __pPackageManagerImpl = Tizen::App::Package::_PackageManagerImpl::GetInstance();
77 SysTryReturn(NID_APP, !IsFailed(r), r, r, "failed to StartIpcServer.(%s)", GetErrorMessage(r));
83 _PackageManagerStub::StartIpcServer(void)
85 SysLog(NID_APP, "_PackageManagerStub - StartIpcServer");
87 __pIpcServer = new (std::nothrow) _IpcServer();
88 SysTryReturn(NID_APP, __pIpcServer != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Not enough memory.");
90 result r = __pIpcServer->Construct( "osp.app.ipcserver.packagemanager", *this);
91 SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Failed to create IPC server(%s)", GetErrorMessage(r), "osp.app.ipcserver.packagemanager");
93 r = __pIpcServer->Start();
94 SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Failed to Start IPC server(%s)", GetErrorMessage(r), "osp.app.ipcserver.packagemanager");
105 _PackageManagerStub::OnInstallPackage(const PackageId& packageId, const String& packagePath, int listener, result* pRes)
107 SysTryReturnVoidResult(NID_APP, __pPackageManagerImpl != null, E_INVALID_STATE, "Invalid package manager state.");
109 *pRes = _AccessController::CheckSystemPrivilege(__pIpcServer->GetClientAppId(), _PRV_PACKAGEMANAGER_INSTALL);
110 SysTryReturnVoidResult(NID_APP, !IsFailed(*pRes), *pRes = E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
113 //*pRes = __pPackageManagerImpl->InstallPackage(packageId, packagePath, (IPackageInstallationResponseListener*)listener);
117 _PackageManagerStub::OnUninstallPackage(const PackageId& packageId, int listener, result* pRes)
119 SysTryReturnVoidResult(NID_APP, __pPackageManagerImpl != null, E_INVALID_STATE, "Invalid package manager state.");
121 *pRes = _AccessController::CheckSystemPrivilege(__pIpcServer->GetClientAppId(), _PRV_PACKAGEMANAGER_INSTALL);
122 SysTryReturnVoidResult(NID_APP, !IsFailed(*pRes), *pRes = E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
124 //*pRes = __pPackageManagerImpl->UninstallPackage(packageId, (IPackageUninstallationResponseListener*)listener);
127 ///////////////////////////////////////////
129 ///////////////////////////////////////////
131 _PackageManagerStub::OnIpcRequestReceived(_IpcServer& server, const IPC::Message& message)
133 SysLog(NID_APP, "(appId:%ls, pid:%d, clientId:%d)\n", server.GetClientAppId().GetPointer(), server.GetClientProcessId(), server.GetClientId());
135 IPC_BEGIN_MESSAGE_MAP(_PackageManagerStub, message)
136 IPC_MESSAGE_HANDLER_EX(PackageManager_InstallPackage, &server, OnInstallPackage)
137 IPC_MESSAGE_HANDLER_EX(PackageManager_UninstallPackage, &server, OnUninstallPackage)
138 IPC_END_MESSAGE_MAP()
142 _PackageManagerStub::OnIpcServerStarted(const _IpcServer& server)
144 SysLog(NID_APP, "_PackageManagerStub::OnIpcServerStarted \n");
148 _PackageManagerStub::OnIpcServerStopped(const _IpcServer& server)
150 SysLog(NID_APP, "_PackageManagerStub::OnIpcServerStopped \n");
154 _PackageManagerStub::OnIpcClientConnected(const _IpcServer& server, int clientId)
156 SysLog(NID_APP, "_PackageManagerStub::OnIpcClientConnected (clientId:%d)\n", clientId);
160 _PackageManagerStub::OnIpcClientDisconnected(const _IpcServer&server, int clientId)
162 SysLog(NID_APP, "(appId:%ls, pid:%d, clientId:%d)\n", server.GetClientAppId().GetPointer(), server.GetClientProcessId(), clientId);
165 }} //namespace Tizen { namespace App {