upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / platform / API / Systeminfo / ISysteminfo.h
1 /*
2  *
3  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved 
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 #ifndef WRTPLUGINS_API_ISYSTEMINFO_H_
20 #define WRTPLUGINS_API_ISYSTEMINFO_H_
21
22 #include <dpl/shared_ptr.h>
23 #include <Commons/ThreadPool.h>
24
25 #include "BaseProperties.h"
26 #include "EventGetSysteminfo.h"
27 #include "EventWatchSysteminfo.h"
28
29 namespace TizenApis {
30 namespace Api {
31 namespace Systeminfo {
32
33 class EventGetSysteminfo;
34 class EventWatchSysteminfo;
35 typedef DPL::SharedPtr<EventGetSysteminfo> EventGetSysteminfoPtr;
36 typedef DPL::SharedPtr<EventWatchSysteminfo> EventWatchSysteminfoPtr;
37
38 class ISysteminfo : 
39         public WrtDeviceApis::Commons::EventRequestReceiver<EventGetSysteminfo>,
40         public WrtDeviceApis::Commons::EventRequestReceiver<EventWatchSysteminfo>       
41 {
42   public:
43     virtual ~ISysteminfo();
44
45         virtual bool isPropertyValid(JSContextRef context, JSValueRef property) = 0;
46     virtual void get(const EventGetSysteminfoPtr& event) = 0;
47     virtual void watch(const EventWatchSysteminfoPtr& event) = 0;    
48         virtual BasePropertyPtr getBasePropertyPtr(JSContextRef context, JSValueRef property) = 0;
49         virtual void clearWatch(const long id) = 0;
50
51   protected:
52     ISysteminfo();
53
54     virtual void OnRequestReceived(const EventGetSysteminfoPtr& event) = 0;
55     virtual void OnRequestReceived(const EventWatchSysteminfoPtr& event) = 0;    
56 };
57
58 typedef DPL::SharedPtr<ISysteminfo> ISysteminfoPtr;
59
60 }
61 }
62 }
63
64 #endif