b3d29bf2ddb0067939c90b98f5d54ca011ec6f3c
[framework/osp/installer.git] / src / Context / InstallationContext.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  * @file        InstallationContext.h
19  * @brief       This is the header file for the %InstallationContext class.
20  *
21  * This header file contains the declarations of the %InstallationContext class.
22  */
23 #ifndef _INSTALLATION_CONTEXT_H_
24 #define _INSTALLATION_CONTEXT_H_
25
26 #include <app2ext_interface.h>
27
28 #include <FAppTypes.h>
29 #include <FAppPkg_PackageInfoImpl.h>
30 #include <FSecCertX509CertificatePath.h>
31
32 #include "InstallerDefs.h"
33 #include "IInstallationStep.h"
34 #include "DrmLicense.h"
35 #include "InstallationContextData.h"
36
37 class IInstallationStep;
38
39 /**
40  * @class               InstallationContext
41  * @brief               This class represents the class of InstallationContext.
42  * @since               1.0
43  *
44  * This class represents the class of InstallationContext.
45  *
46  */
47 class InstallationContext
48 {
49 public:
50         enum InstallationStorage
51         {
52                 INSTALLATION_STORAGE_INTERNAL,
53                 INSTALLATION_STORAGE_EXTERNAL,
54         };
55
56         InstallationContext(void);
57         virtual ~InstallationContext(void);
58         InstallerError Construct(void);
59
60         bool ChangeStep(InstallationStep step);
61         InstallerError Run(void);
62
63         InstallationStep GetCurrentInstallationStep(void);
64         void SetCurrentInstallationStep(InstallationStep step);
65
66         InstallerError GetError(void);
67         void SetError(InstallerError installerError);
68
69         InstallationState GetState(void);
70         void SetState(InstallationState installationState);
71
72         IInstallationStep* GetStep(void);
73
74         void SetInputPath(const Tizen::Base::String& path);
75         const Tizen::Base::String& GetInputPath(void) const;
76
77         void SetInstallerOperation(InstallerOperation op);
78         InstallerOperation GetInstallerOperation(void) const;
79
80         void SetInstallationStorage(InstallationStorage storage);
81         InstallationStorage GetInstallationStorage(void) const;
82
83         bool IsContinue(void);
84         void SetContinue(bool cont);
85
86         bool IsPreloaded(void);
87         void SetPreloaded(bool preloaded);
88
89         bool IsHybridService(void);
90         void SetHybridService(bool hybridService);
91
92         bool IsVerificationMode(void);
93         void SetVerificationMode(bool verificationMode);
94
95         const Tizen::Base::String& GetPackagePath(void) const;
96         void SetPackagePath(const Tizen::Base::String& packagePath);
97
98         const Tizen::Base::String& GetLicensePath(void) const;
99         void SetLicensePath(const Tizen::Base::String& licensePath);
100
101         const Tizen::Base::String& GetTemporaryDir(void) const;
102         void SetTemporaryDir(const Tizen::Base::String& temporaryDir);
103
104         const Tizen::Base::String& GetInstallDir(void) const;
105         void SetInstallDir(const Tizen::Base::String& installDir);
106
107         const Tizen::Base::String& GetWorkingDir(void) const;
108         void SetWorkingDir(const Tizen::Base::String& workingDir);
109
110         const Tizen::App::PackageId& GetId(void) const;
111         void SetId(const  Tizen::App::PackageId& packageId);
112
113         const Tizen::Base::String& GetAppVersion(void) const;
114         void SetAppVersion(const Tizen::Base::String& appVersion);
115
116         Tizen::Base::String GetManifestXmlPath(void);
117         Tizen::Base::String GetSignatureXmlPath(void);
118         Tizen::Base::String GetAuthorSignatureXmlPath(void);
119
120         const Tizen::Base::Collection::ArrayList* GetPrivilegeList(void) const;
121         void SetPrivilegeList(Tizen::Base::Collection::ArrayList* privilegeList);
122
123         Tizen::Base::Collection::ArrayList* GetLiveboxDataList(void) const;
124         void SetLiveboxDataList(Tizen::Base::Collection::ArrayList* pLiveboxDataList);
125
126         Tizen::Base::Collection::ArrayList* GetContentDataList(void) const;
127         void SetContentDataList(Tizen::Base::Collection::ArrayList* pContentDataList);
128
129         Tizen::Security::Cert::X509CertificatePath* GetAuthorCertPath(void) const;
130         void SetAuthorCertPath(Tizen::Security::Cert::X509CertificatePath* pAuthorCertPath);
131
132         Tizen::Security::Cert::X509CertificatePath* GetDistributorCertPath(void) const;
133         void SetDistributorCertPath(Tizen::Security::Cert::X509CertificatePath* pDistributorCertPath);
134
135         RootCertificateType GetRootCertType(void) const;
136         void SetRootCertType(RootCertificateType certType);
137
138         int GetPackageNameType(void) const;
139         void SetPackageNameType(int type);
140
141         app2ext_handle* GetApp2ExtHandle(void) const;
142         void SetApp2ExtHandle(app2ext_handle* pHandle);
143
144         Tizen::App::Package::_PackageInfoImpl* GetPackageInfoImpl(void) const;
145
146         PackageData __packageData;
147         Tizen::Base::Collection::IListT<AppData *>* __pAppDataList;
148
149         bool __isSubMode;
150         Tizen::Base::String __subModeAppName;
151
152 private:
153         InstallationContext(const InstallationContext& value);
154         InstallationContext& operator =(const InstallationContext& source);
155
156         IInstallationStep* __pStep;
157         DrmLicense* __pDrmLicense;
158         InstallerError __error;
159         InstallationStep __step;
160         int __attributeType;
161         InstallationState __state;
162         bool __stepChanged;
163         bool __continue;
164         bool __preloaded;
165         bool __hybridService;
166         bool __verificationMode;
167
168         Tizen::Base::String __inputPath;
169         InstallerOperation __operation;
170         InstallationStorage __storage;
171
172         Tizen::Base::String __packagePath;
173         Tizen::Base::String __licensePath;
174         Tizen::Base::String __temporaryDir;
175         Tizen::Base::String __installDir;
176         Tizen::Base::String __workingDir;
177         Tizen::Base::String __packageId;
178         Tizen::Base::String __appVersion;
179         Tizen::Base::String __appRootPath;
180
181         Tizen::Base::Collection::ArrayList* __pPrivilegeList;
182         Tizen::Base::Collection::ArrayList* __pLiveboxDataList;
183         Tizen::Base::Collection::ArrayList* __pContentDataList;
184         Tizen::Security::Cert::X509CertificatePath* __pAuthorCertPath;
185         Tizen::Security::Cert::X509CertificatePath* __pDistributorCertPath;
186         RootCertificateType __rootCertType;
187
188         int __packageNameType;
189         app2ext_handle* __pApp2ExtHandle;
190
191         Tizen::App::Package::_PackageInfoImpl* __pPackageInfoImpl;
192
193 }; // InstallationContext
194
195 #endif // _INSTALLATION_CONTEXT_H_