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.
24 #include <FAppPkgIPackageInstallationResponseListener.h>
25 #include <FAppPkgIPackageUninstallationResponseListener.h>
26 #include <FBaseSysLog.h>
27 #include <FBase_StringConverter.h>
28 #include <FIo_IpcServer.h>
29 #include <FSec_AccessController.h>
30 #include <FApp_PackageManagerIpcMessages.h>
31 #include "FAppPkg_PackageManagerImpl.h"
32 #include "FApp_PackageManagerStub.h"
35 namespace Tizen { namespace App {
37 using namespace Tizen::App::Package;
38 using namespace Tizen::Base;
39 using namespace Tizen::Base::Collection;
40 using namespace Tizen::Io;
41 using namespace Tizen::Security;
43 _PackageManagerStub::_PackageManagerStub()
45 ,__pPackageManagerImpl(null)
47 SysLog(NID_APP, "_PackageManagerStub - Enter\n");
50 _PackageManagerStub::~_PackageManagerStub()
52 if ( __pIpcServer != null)
58 SysLog(NID_APP, "_PackageManagerStub - Exit\n");
62 _PackageManagerStub::Construct(void)
64 SysLog(NID_APP, "_PackageManagerStub - Construct.");
66 __pPackageManagerImpl = Tizen::App::Package::_PackageManagerImpl::GetInstance();
70 SysTryReturn(NID_APP, !IsFailed(r), r, r, "failed to StartIpcServer.(%s)", GetErrorMessage(r));
76 _PackageManagerStub::StartIpcServer(void)
78 SysLog(NID_APP, "_PackageManagerStub - StartIpcServer");
80 __pIpcServer = new (std::nothrow) _IpcServer();
81 SysTryReturn(NID_APP, __pIpcServer != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Not enough memory.");
83 result r = __pIpcServer->Construct( "osp.app.ipcserver.samplepackagemanager", *this, false);
84 SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Failed to create IPC server(%s)", GetErrorMessage(r), "osp.app.ipcserver.packagemanager");
86 r = __pIpcServer->Start();
87 SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Failed to Start IPC server(%s)", GetErrorMessage(r), "osp.app.ipcserver.packagemanager");
98 _PackageManagerStub::OnInstallPackage(const PackageId& packageId, const String& packagePath, int listener, result* pRes)
100 SysLog(NID_APP, "kujaesung _PackageManagerStub::OnInstallPackage \n");
101 //SysTryReturnVoidResult(NID_APP, __pPackageManagerImpl != null, E_INVALID_STATE, "Invalid package manager state.");
102 //*pRes = _AccessController::CheckSystemPrivilege(__pIpcServer->GetClientPackageId(), _PRV_PACKAGEMANAGER_INSTALL);
103 //SysTryReturnVoidResult(NID_APP, !IsFailed(*pRes), *pRes = E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
105 //*pRes = __pPackageManagerImpl->InstallPackage(packageId, packagePath, (IPackageInstallationResponseListener*)listener);
109 _PackageManagerStub::OnUninstallPackage(const PackageId& packageId, int listener, result* pRes)
111 SysLog(NID_APP, "kujaesung _PackageManagerStub::OnUninstallPackage \n");
112 //SysTryReturnVoidResult(NID_APP, __pPackageManagerImpl != null, E_INVALID_STATE, "Invalid package manager state.");
113 //*pRes = _AccessController::CheckSystemPrivilege(__pIpcServer->GetClientPackageId(), _PRV_PACKAGEMANAGER_INSTALL);
114 //SysTryReturnVoidResult(NID_APP, !IsFailed(*pRes), *pRes = E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
115 //*pRes = __pPackageManagerImpl->UninstallPackage(packageId, (IPackageUninstallationResponseListener*)listener);
119 _PackageManagerStub::OnIpcRequestReceived(_IpcServer& server, const IPC::Message& message)
121 SysLog(NID_APP, "(pkgId:%ls, clientId:%d)\n", server.GetClientPackageId().GetPointer(), server.GetClientId());
123 IPC_BEGIN_MESSAGE_MAP(_PackageManagerStub, message)
124 IPC_MESSAGE_HANDLER_EX(PackageManager_InstallPackage, &server, OnInstallPackage)
125 IPC_MESSAGE_HANDLER_EX(PackageManager_UninstallPackage, &server, OnUninstallPackage)
126 IPC_END_MESSAGE_MAP()
130 _PackageManagerStub::OnIpcServerStarted(const _IpcServer& server)
132 SysLog(NID_APP, "_PackageManagerStub::OnIpcServerStarted \n");
136 _PackageManagerStub::OnIpcServerStopped(const _IpcServer& server)
138 SysLog(NID_APP, "_PackageManagerStub::OnIpcServerStopped \n");
142 _PackageManagerStub::OnIpcClientConnected(const _IpcServer& server, int clientId)
144 SysLog(NID_APP, "_PackageManagerStub::OnIpcClientConnected (clientId:%d)\n", clientId);
148 _PackageManagerStub::OnIpcClientDisconnected(const _IpcServer&server, int clientId)
150 SysLog(NID_APP, "(pkgId:%ls, clientId:%d)\n", server.GetClientPackageId().GetPointer(), clientId);