Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / platform / API / Application / EventListInstalledApplications.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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 #ifndef TIZENAPIS_API_EVENT_LIST_INSTALLED_APPLICATIONS_H_
18 #define TIZENAPIS_API_EVENT_LIST_INSTALLED_APPLICATIONS_H_
19
20 #include <Commons/IEvent.h>
21 #include <dpl/shared_ptr.h>
22 #include "ApplicationInformation.h"
23 #include "ApplicationContext.h"
24
25 namespace TizenApis {
26 namespace Api {
27 namespace Application {
28
29 class EventListInstalledApplications: public WrtDeviceApis::Commons::IEvent<EventListInstalledApplications> {
30 private:
31         ApplicationInformationArrayPtr m_appinfoArray;
32         ApplicationContextArrayPtr m_contextinfoArray;
33         int m_eventType;
34 public:
35         static const int APPMANAGER_UNKNOWN = 0;
36         static const int APPMANAGER_LIST_INSTALLED_APPLICATIONS = 1;
37         static const int APPMANAGER_LIST_RUNNING_APPLICATIONS = 2;
38
39 public:
40         void addApplicationInformation(const ApplicationInformationPtr appinfo)
41         {
42                 if( !m_appinfoArray )
43                 {
44                         ApplicationInformationArrayPtr appinfos(new ApplicationInformationArray());
45                         setApplicationInformationArray(appinfos);
46                 }
47                 m_appinfoArray->push_back(appinfo);
48         }
49
50         const ApplicationInformationArrayPtr getApplicationInformationArray() const
51         {
52                 return m_appinfoArray;
53         }
54
55         void setApplicationInformationArray(ApplicationInformationArrayPtr appinfoArray){
56                 m_appinfoArray = appinfoArray;
57         }
58
59         void addApplicationContext(const ApplicationContextPtr contextinfo)
60         {
61                 if( !m_contextinfoArray )
62                 {
63                         ApplicationContextArrayPtr contextinfos(new ApplicationContextArray());
64                         setApplicationContextArray(contextinfos);
65                 }
66                 m_contextinfoArray->push_back(contextinfo);
67         }
68         
69         const ApplicationContextArrayPtr getApplicationContextArray() const
70         {
71                 return m_contextinfoArray;
72         }
73
74         void setApplicationContextArray(ApplicationContextArrayPtr appcontextArray){
75                 m_contextinfoArray = appcontextArray;
76         }       
77         
78         void setEventType(int type){
79                 m_eventType = type;
80         }
81
82         int getEventType(){
83                 return m_eventType;
84         }       
85
86         EventListInstalledApplications() 
87         {
88         }
89 };
90
91 typedef DPL::SharedPtr<EventListInstalledApplications> EventListInstalledApplicationsPtr;
92
93 } // Application
94 } // Api
95 } // TizenApis
96
97 #endif