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