sync with master
[framework/osp/common-service.git] / inc / CommonService.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 #ifndef _COMMON_SERVICE_H_
19 #define _COMMON_SERVICE_H_
20
21 #include <unique_ptr.h>
22 #include <FApp.h>
23 #include <FBase.h>
24 #include <FSystem.h>
25
26 namespace Tizen { namespace App
27 {
28 class _PackageManagerStub;
29 }}
30
31 namespace Tizen { namespace Ui 
32 {
33 class _UiManagerStub;
34 }} // Tizen::Ui
35
36 /**
37  * @class       CommonService
38  * @brief
39  */
40 class CommonService
41         : public Tizen::App::ServiceApp
42 {
43 public:
44         static Tizen::App::ServiceApp* CreateInstance(void);
45
46         CommonService(void);
47         virtual ~CommonService(void);
48
49         bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry);
50         bool OnAppInitialized(void); 
51         bool OnAppWillTerminate(void);
52         bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false);
53         void OnLowMemory(void);
54         void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);
55                 
56 private:
57         void InitializeServices(void);  
58
59         Tizen::App::_PackageManagerStub* __pPackageManagerStub;
60         std::unique_ptr<Tizen::Ui::_UiManagerStub> __pUiManagerStub;
61 };
62
63 #endif // _COMMON_SERVICE_H_