d9c703e9e3587407ab3782f270ef0e29aba77b3d
[platform/framework/native/appfw.git] / src / app / inc / FAppPkg_PackageInfoImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18 /**
19  * @file        FAppPkg_PackageInfoImpl.h
20  * @brief       This is the header file for the _PackageInfoImpl class.
21  */
22
23 #ifndef _FAPP_PKG_INTERNAL_PACKAGE_INFO_IMPL_H_
24 #define _FAPP_PKG_INTERNAL_PACKAGE_INFO_IMPL_H_
25
26 #include <pkgmgr-info.h>
27
28 #include <FBaseObject.h>
29 #include <FBaseString.h>
30 #include <FOspConfig.h>
31 #include <FBaseInternalTypes.h>
32
33 #include <FAppPkg_PackageManagerImpl.h>
34
35 namespace Tizen { namespace App
36 {
37 class _AppManagerProxy;
38 }}
39
40 namespace Tizen { namespace App { namespace Package
41 {
42
43 class PackageInfo;
44 class _PackageAppInfoImpl;
45
46 class _OSP_EXPORT_ _PackageInfoImpl
47         : public Tizen::Base::Object
48 {
49 public:
50         const PackageId& GetId(void) const;
51         result SetId(const PackageId& id);
52
53         const Tizen::Base::String& GetVersion(void) const;
54         result SetVersion(const Tizen::Base::String& version);
55
56         PackageType GetType(void) const;
57         result SetType(PackageType packageType);
58
59         const Tizen::Base::String& GetDisplayName(void) const;
60         result SetDisplayName(const Tizen::Base::String& displayName);
61
62         const Tizen::Base::String& GetDescription(void) const;
63         result SetDescription(const Tizen::Base::String& description);
64
65         const Tizen::Base::String& GetAuthor(void) const;
66         result SetAuthor(const Tizen::Base::String& author);
67
68         const Tizen::Base::String& GetUrl(void) const;
69         result SetUrl(const Tizen::Base::String& url);
70
71         const Tizen::Base::DateTime& GetInstallationTime(void) const;
72         result SetInstallationTime(const Tizen::Base::DateTime& installationTime);
73
74         bool IsInstalledInExternalStorage(void) const;
75         result SetInstalledInExternalStorage(bool externalStorage);
76
77         bool IsUninstallable(void) const;
78         result SetUninstallable(bool uninstallable);
79
80         bool IsMovable(void) const;
81         result SetMovable(bool movable);
82
83         bool IsDownloaded(void) const;
84         result SetDownloaded(bool downloaded);
85
86         long long GetSize(void) const;
87         long long GetDataSize(void) const;
88
89         const AppId& GetMainAppId(void) const;
90         result SetMainAppId(const AppId& appId);
91
92         const PackageId& GetStoreClientId(void) const;
93         result SetStoreClientId(const PackageId& packageId);
94
95         Tizen::Base::Collection::ArrayList* GetPackageAppInfoListN(void);
96         PackageAppInfo* GetPackageAppInfoN(const AppId& appId) const;
97
98         static int PackageAppInfoListHandler(const pkgmgrinfo_appinfo_h handle, void* pUser_data);
99
100         Tizen::Base::Collection::ArrayList* GetPrivilegeListN(void) const;
101         result AddPrivilege(const Tizen::Base::String& privilege);
102
103         result AddPackageAppInfo(const PackageAppInfo& appInfo);
104
105         // to be reviewed
106         _PackageInfoImpl(void);
107         virtual ~_PackageInfoImpl(void);
108
109         const Tizen::Base::String& GetAppId(void) const;
110         result SetAppId(const Tizen::Base::String& id);
111
112         const Tizen::Base::String& GetAppVersion(void) const;
113         result SetAppVersion(const Tizen::Base::String& version);
114
115         const Tizen::Base::String& GetAppType(void) const;
116         result SetAppType(const Tizen::Base::String& appType);
117
118         const Tizen::Base::String& GetAppMimeType(void) const;
119         result SetAppMimeType(const Tizen::Base::String& appMimeType);
120
121         const Tizen::Base::String& GetAppApiVersion(void) const;
122         result SetAppApiVersion(const Tizen::Base::String& appApiVersion);
123
124         const Tizen::Base::String& GetAppName(void) const;
125         result SetAppName(const Tizen::Base::String& appName);
126
127         const Tizen::Base::String& GetAppDescription(void) const;
128         result SetAppDescription(const Tizen::Base::String& appDescription);
129
130         const Tizen::Base::String& GetAppVendor(void) const;
131         result SetAppVendor(const Tizen::Base::String& appVendor);
132
133         const Tizen::Base::String& GetAppUrl(void) const;
134         result SetAppUrl(const Tizen::Base::String& AppUrl);
135
136         const Tizen::Base::String& GetAppCid(void) const;
137         result SetAppCid(const Tizen::Base::String& appCid);
138
139         const Tizen::Base::String& GetAppRootPath(void) const;
140         result SetAppRootPath(const Tizen::Base::String& rootPath);
141
142         int GetAppStorageType(void) const;
143         result SetAppStorageType(int storageType);
144
145         int GetCertType(void) const;
146         result SetCertType(int certType);
147
148         Tizen::Base::Collection::ArrayList* GetAppInfoListN(void) const;
149         Tizen::Base::Collection::ArrayList* GetAppInfoList(void);
150         result AddAppInfo(const _PackageAppInfoImpl& appInfoImpl);
151
152         result GetPrivileges(Tizen::Base::String& privileges, Tizen::Base::String& hmacPrivileges, Tizen::Base::Collection::ArrayList& privilegeList);
153         result GetPrivilegesValue(Tizen::Base::String& privileges, Tizen::Base::String& hmacPrivileges) const;
154         result SetPrivilegesValue(const Tizen::Base::String& privileges, const Tizen::Base::String& hmacPrivileges);
155
156         int GetApiVisibility() const;
157
158         const Tizen::Base::String& GetAppIconPath(void) const;
159         result SetAppIconPath(const Tizen::Base::String& appIconPath);
160
161         const Tizen::Base::DateTime& GetAppInstallationTime(void) const;
162         result SetAppInstallationTime(const Tizen::Base::DateTime& installationTime);
163
164         result GetUiScalabilityInfo(Tizen::Base::String& baseScreenSize, Tizen::Base::String& coordinateSystem, Tizen::Base::String& logicalCoordinate) const;
165
166         // to be reviewed
167         const Tizen::Base::String& GetAppPackageName(void);
168
169         const Tizen::Base::String& GetApiVersion(void) const;
170         result SetApiVersion(const Tizen::Base::String& apiVersion);
171
172         const Tizen::Base::String& GetName(void) const;
173         result SetName(const Tizen::Base::String& name);
174
175         result Construct(const PackageId& packageId);
176
177         int GetUniqueId(void) const;
178
179         static _PackageInfoImpl* GetInstance(PackageInfo* pPackageInfo);
180         static const _PackageInfoImpl* GetInstance(const PackageInfo* pPackageInfo);
181
182 private:
183         static bool GetPackageAppInfo(const pkgmgrinfo_appinfo_h handle, PackageAppInfo* pPackageAppInfo);
184
185 private:
186         Tizen::Base::String __id;
187         Tizen::Base::String __version;
188         Tizen::Base::String __type;
189         Tizen::Base::String __appMimeType;
190         Tizen::Base::String __appApiVersion;
191         Tizen::Base::String __displayName;
192         Tizen::Base::String __description;
193         Tizen::Base::String __author;
194         Tizen::Base::String __url;
195         Tizen::Base::String __appCid;
196         Tizen::Base::String __appParentId;
197         Tizen::Base::String __appRootPath;
198         Tizen::Base::String __appIconPath;
199         Tizen::Base::DateTime __dateTime;
200
201         int __appReadOnlySize;
202         int __appDataSize;
203         int __appStorageType;
204         int __appState;
205         int __certType;
206
207         AppId __mainAppId;
208         PackageId __storeClientId;
209
210         Tizen::Base::Collection::ArrayList* __pPrivilegeList;
211         Tizen::Base::Collection::ArrayList* __pAppInfoImplList;
212         Tizen::Base::Collection::ArrayList* __pPackageAppInfoList;
213         Tizen::Base::String __privileges;
214         Tizen::Base::String __hmacPrivileges;
215
216         // to be reviewed
217         Tizen::Base::String __appPackageName;
218
219         pkgmgrinfo_pkginfo_h __packageInfoHandle;
220         bool __uninstallable;
221         bool __movable;
222         bool __downloaded;
223         bool __iconAvailable;
224         bool __externalStorage;
225         bool __fromDatabase;
226
227         PackageType __packageType;
228
229         PackageInfo* __pPackageInfo;
230
231         friend class PackageInfo;
232
233 }; // _PackageInfoImpl
234
235 } } } // Tizen::App::Package
236
237 #endif //_FAPP_PKG_INTERNAL_PACKAGE_INFO_IMPL_H_