tizen 2.3.1 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Notification / plugin_config.cpp
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 #include <Commons/FunctionDefinition.h>
20 #include <Commons/FunctionDeclaration.h>
21 #include <Commons/Exception.h>
22 #include <map>
23
24 #include "plugin_config.h"
25
26 using namespace WrtDeviceApis::Commons;
27
28 namespace DeviceAPI {
29 namespace Notification {
30
31 #define NOTIFICATION_DEVICE_CAP "notification"
32 #define NOTIFICATION_FEATURE_API "http://tizen.org/privilege/notification"
33 #define NOTIFICATION_FEATURE_API_WRITE "http://tizen.org/privilege/notification.write"
34
35 static FunctionMapping createNotificationFunctions();
36 static FunctionMapping NotificationFunctions = createNotificationFunctions();
37
38 #pragma GCC visibility push(default)
39
40 DEFINE_FUNCTION_GETTER(Notification, NotificationFunctions);
41
42 #pragma GCC visibility pop
43
44 static FunctionMapping createNotificationFunctions()
45 {
46     FunctionMapping pushMapping;
47
48     /**
49     * Device capabilities
50     */
51     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NOTIFICATION, NOTIFICATION_DEVICE_CAP);
52
53     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NOTIFICATION);
54     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NOTIFICATION, DEVICE_CAP_NOTIFICATION);
55
56     /**
57     * Api Features
58     */
59     ACE_CREATE_FEATURE(NOTIFICATION_FEATURE_WRITE, NOTIFICATION_FEATURE_API_WRITE);
60     ACE_CREATE_FEATURE_LIST(NOTIFICATION_FEATURES_WRITE);
61     ACE_ADD_API_FEATURE(NOTIFICATION_FEATURES_WRITE, NOTIFICATION_FEATURE_WRITE);
62
63     ACE_CREATE_FEATURE(NOTIFICATION_FEATURE, NOTIFICATION_FEATURE_API);
64     ACE_CREATE_FEATURE_LIST(NOTIFICATION_FEATURES);
65     ACE_ADD_API_FEATURE(NOTIFICATION_FEATURES, NOTIFICATION_FEATURE_WRITE);
66     ACE_ADD_API_FEATURE(NOTIFICATION_FEATURES, NOTIFICATION_FEATURE);
67
68
69     AceFunction NotificationWrite = ACE_CREATE_FUNCTION(FUNCTION_NOTIFICATION_WRITE, NOTIFICATION_FUNC,
70        NOTIFICATION_FEATURES, DEVICE_LIST_NOTIFICATION);
71
72     pushMapping.insert(std::make_pair(NOTIFICATION_FUNC, NotificationWrite));
73
74     return pushMapping;
75 }
76
77 } // Notification
78 } // DeviceAPI