2 // Tizen Web Device API
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.
18 #ifndef _TIZEN_PACKAGE_MANAGER_H_
19 #define _TIZEN_PACKAGE_MANAGER_H_
23 #include <CallbackUserData.h>
24 #include <CommonsJavaScript/Converter.h>
25 #include <JavaScriptCore/JavaScript.h>
26 #include <Commons/Exception.h>
28 #include <package_manager.h>
29 #include <package-manager.h>
31 #include "PackageInformation.h"
36 using namespace WrtDeviceApis::Commons;
37 using namespace DeviceAPI::Common;
40 class PackageInfoCallbackData : public CallbackUserData
43 PackageInfoCallbackData(JSContextRef globalCtx);
44 ~PackageInfoCallbackData();
46 vector<PackageInformation> getPackageInfoList();
47 void addPackageInfo(PackageInformation pkgInfo);
49 void setExceptionCode(ExceptionCodes::Enumeration exceptionCode);
50 ExceptionCodes::Enumeration getExceptionCode() const;
56 vector<PackageInformation> m_pkgInfos;
57 ExceptionCodes::Enumeration m_exceptionCode;
61 class PackageInfoEventCallback
64 PackageInfoEventCallback(CallbackUserData* oninstalled, CallbackUserData* onupdated, CallbackUserData* onuninstalled);
65 ~PackageInfoEventCallback();
66 CallbackUserData* getOnInstalled();
67 CallbackUserData* getOnUpdated();
68 CallbackUserData* getOnUninstalled();
69 pkgmgr_client ** getEventHandler();
70 void setEventHandler(pkgmgr_client **handle_p);
73 CallbackUserData* m_oninstalled;
74 CallbackUserData* m_onupdated;
75 CallbackUserData* m_onuninstalled;
76 pkgmgr_client **m_handle_p;
79 class PackageInstallEventCallback
82 PackageInstallEventCallback(JSContextRef globalCtx, CallbackUserData* onprogress, CallbackUserData* oncomplete, CallbackUserData* onerror);
83 ~PackageInstallEventCallback();
84 CallbackUserData* getOnProgress();
85 CallbackUserData* getOnComplete();
86 CallbackUserData* getOnError();
87 JSContextRef getContext();
88 void setHandle(package_manager_request_h handle);
89 package_manager_request_h getHandle();
92 CallbackUserData* m_onprogress;
93 CallbackUserData* m_oncomplete;
94 CallbackUserData* m_onerror;
95 package_manager_request_h m_request_handle;
96 JSContextRef m_context;
103 enum InstalledStorageType
109 void install(string pkgPath, PackageInstallEventCallback* callback);
110 void uninstall(string pkgPath, PackageInstallEventCallback* callback);
111 void move(string pkgPath, string type, PackageInstallEventCallback* callback);
113 bool isInstalled(string pkgId);
114 PackageInformation* getPackageInfo(string pkgId);
115 void getPackagesInfo(PackageInfoCallbackData *user_data);
116 string getPackageIdFromAppId(string appId);
117 void setPackageInfoEventListener(PackageInfoEventCallback * eventCB);
118 void unsetPackageInfoEventListener();
120 static PackageManager* getInstance();
125 pkgmgr_client *m_manager_handle;
126 string m_curr_app_id;