6a0710f00da8f1990d32a00c12f61b6a1745293d
[platform/framework/web/wrt-plugins-tizen.git] / src / Calendar / CalendarMultiCallback.h
1 //
2 // Tizen Web Device API
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
19 #ifndef _CALENDAR_MULTI_CALLBACK_H_
20 #define _CALENDAR_MULTI_CALLBACK_H_
21
22 #include <dpl/shared_ptr.h>
23 #include <Commons/IEvent.h>
24 #include <CommonsJavaScript/JSCallbackManager.h>
25 #include <JavaScriptCore/JavaScript.h>
26 #include "CalendarEvent.h"
27
28
29 using namespace WrtDeviceApis::CommonsJavaScript;
30
31 namespace DeviceAPI {
32 namespace Calendar {
33
34 struct CalendarEventsSuccessCallback {
35     JSValueRef onSuccess;
36     JSValueRef onEventSuccess;
37     JSValueRef onEventError;
38
39     CalendarEventsSuccessCallback()
40         : onSuccess(NULL),
41         onEventSuccess(NULL),
42         onEventError(NULL)
43     { }
44 };
45
46 class CalendarEventsCallbackPrivateData : public WrtDeviceApis::Commons::IEventPrivateData 
47 {
48 public:
49     CalendarEventsCallbackPrivateData(const JSCallbackManagerPtr& onSuccess,
50         const JSCallbackManagerPtr& onEvent): m_onSuccess(onSuccess),
51         m_onEvent(onEvent)
52     {
53     }
54
55     JSCallbackManagerPtr getOnSuccess() const
56         {
57         return m_onSuccess;
58         }
59     JSCallbackManagerPtr getOnEvent() const
60         {
61         return m_onEvent;
62     }
63
64 private:
65         JSCallbackManagerPtr m_onSuccess;
66         JSCallbackManagerPtr m_onEvent;
67 };
68 typedef DPL::SharedPtr<CalendarEventsCallbackPrivateData> CalendarEventsCallbackPrivateDataPtr;
69
70 struct CalendarChangeCallback {
71     JSValueRef onAdded;
72     JSValueRef onUpdated;
73     JSValueRef onDeleted;
74     //JSValueRef onCalendarReset;
75
76     CalendarChangeCallback()
77         : onAdded(NULL),
78         onUpdated(NULL),
79         onDeleted(NULL)
80         //onCalendarReset(NULL)
81     { }
82 };
83
84 class CalendarChangeCallbackPrivateData : public WrtDeviceApis::Commons::IEventPrivateData
85 {
86 public:
87     CalendarChangeCallbackPrivateData(const JSCallbackManagerPtr& onAdded,
88         const JSCallbackManagerPtr& onUpdated, const JSCallbackManagerPtr& onDeleted):
89         //const JSCallbackManagerPtr& onCalendarReset):
90         m_onAdded(onAdded),
91         m_onUpdated(onUpdated),
92         m_onDeleted(onDeleted)
93         //m_onCalendarReset(onCalendarReset)
94     {
95     }
96
97     JSCallbackManagerPtr getOnAdded() const
98     {
99         return m_onAdded;
100     }
101     JSCallbackManagerPtr getOnUpdated() const
102     {
103         return m_onUpdated;
104     }
105     JSCallbackManagerPtr getOnDeleted() const
106     {
107         return m_onDeleted;
108     }
109
110         /*
111     JSCallbackManagerPtr getOnCalendarReset() const
112     {
113         return m_onCalendarReset;
114     }
115     */
116
117     private:
118     JSCallbackManagerPtr m_onAdded;
119     JSCallbackManagerPtr m_onUpdated;
120     JSCallbackManagerPtr m_onDeleted;
121     //JSCallbackManagerPtr m_onCalendarReset;
122 };
123 typedef DPL::SharedPtr<CalendarChangeCallbackPrivateData> CalendarChangeCallbackPrivateDataPtr;
124
125 }
126 }
127
128 #endif /* _CALENDAR_MULTI_CALLBACK_H_ */