Update change log and spec for wrt-plugins-tizen_0.4.70
[framework/web/wrt-plugins-tizen.git] / src / NFC / 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
20 #include <map>
21 #include <utility>
22 #include <Commons/FunctionDefinition.h>
23 #include <Commons/FunctionDeclaration.h>
24 #include <Commons/Exception.h>
25 #include "plugin_config.h"
26
27 #define NFC_FEATURE_API_COMMON "http://tizen.org/privilege/nfc.common"
28 #define NFC_FEATURE_API_ADMIN "http://tizen.org/privilege/nfc.admin"
29 #define NFC_FEATURE_API_TAG "http://tizen.org/privilege/nfc.tag"
30 #define NFC_FEATURE_API_P2P "http://tizen.org/privilege/nfc.p2p"
31 #define NFC_FEATURE_API_CARDEMULATION "http://tizen.org/privilege/nfc.cardemulation"
32
33 #define NFC_DEVICE_CAP_COMMON "nfc.common"
34 #define NFC_DEVICE_CAP_ADMIN "nfc.admin"
35 #define NFC_DEVICE_CAP_TAG "nfc.tag"
36 #define NFC_DEVICE_CAP_P2P "nfc.p2p"
37 #define NFC_DEVICE_CAP_CARDEMULATION "nfc.cardemulation"
38
39 namespace DeviceAPI {
40 namespace NFC {
41
42 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions();
43
44 static WrtDeviceApis::Commons::FunctionMapping NFCFunctions =
45     createNFCFunctions();
46
47 DEFINE_FUNCTION_GETTER(NFC, NFCFunctions);
48
49 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions()
50 {
51     using namespace WrtDeviceApis::Commons;
52
53     /**
54      * Device capabilities
55      */
56     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_COMMON, NFC_DEVICE_CAP_COMMON);
57     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_ADMIN, NFC_DEVICE_CAP_ADMIN);
58     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_TAG, NFC_DEVICE_CAP_TAG);
59     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_P2P, NFC_DEVICE_CAP_P2P);
60     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_CARDEMULATION, NFC_DEVICE_CAP_CARDEMULATION);
61
62     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
63
64     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_COMMON);
65     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_COMMON, DEVICE_CAP_NFC_COMMON);
66
67     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_ADMIN);
68     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_ADMIN, DEVICE_CAP_NFC_ADMIN);
69
70     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_TAG);
71     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_TAG, DEVICE_CAP_NFC_TAG);
72
73     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_P2P);
74     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_P2P, DEVICE_CAP_NFC_P2P);
75
76     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_CARDEMULATION);
77     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_CARDEMULATION, DEVICE_CAP_NFC_CARDEMULATION);
78
79     /**
80      * API features
81      */
82     ACE_CREATE_FEATURE(FEATURE_COMMON, NFC_FEATURE_API_COMMON);
83     ACE_CREATE_FEATURE(FEATURE_ADMIN, NFC_FEATURE_API_ADMIN);
84     ACE_CREATE_FEATURE(FEATURE_TAG, NFC_FEATURE_API_TAG);
85     ACE_CREATE_FEATURE(FEATURE_P2P, NFC_FEATURE_API_P2P);
86     ACE_CREATE_FEATURE(FEATURE_CARDEMULATION, NFC_FEATURE_API_CARDEMULATION);
87
88     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_COMMON);
89     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_COMMON, FEATURE_COMMON);
90
91     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_ADMIN);
92     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_ADMIN, FEATURE_ADMIN);
93
94     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_TAG);
95     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_TAG, FEATURE_TAG);
96
97     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_P2P);
98     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_P2P, FEATURE_P2P);
99
100     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_CARDEMULATION);
101     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_CARDEMULATION, FEATURE_CARDEMULATION);
102
103    /**
104      * Functions
105      */
106     FunctionMapping NFCFunctions;
107
108         AceFunction nfcCommonFuncs = ACE_CREATE_FUNCTION(
109             FUNCTION_NFC_COMMON_FUNCTIONS,
110             NFC_FUNCTION_API_COMMON_FUNCS,
111             NFC_FEATURES_NFC_COMMON,
112             DEVICE_LIST_NFC_COMMON);
113
114     NFCFunctions.insert(std::make_pair(
115                                NFC_FUNCTION_API_COMMON_FUNCS,
116                                nfcCommonFuncs));
117
118         AceFunction nfcAdminFuncs = ACE_CREATE_FUNCTION(
119             FUNCTION_NFC_ADMIN_FUNCTIONS,
120             NFC_FUNCTION_API_ADMIN_FUNCS,
121             NFC_FEATURES_NFC_ADMIN,
122             DEVICE_LIST_NFC_ADMIN);
123
124     NFCFunctions.insert(std::make_pair(
125                                NFC_FUNCTION_API_ADMIN_FUNCS,
126                                nfcAdminFuncs));
127
128         AceFunction nfcTagFuncs = ACE_CREATE_FUNCTION(
129             FUNCTION_NFC_TAG_FUNCTIONS,
130             NFC_FUNCTION_API_TAG_FUNCS,
131             NFC_FEATURES_NFC_TAG,
132             DEVICE_LIST_NFC_TAG);
133
134     NFCFunctions.insert(std::make_pair(
135                                NFC_FUNCTION_API_TAG_FUNCS,
136                                nfcTagFuncs));
137
138         AceFunction nfcP2PFuncs = ACE_CREATE_FUNCTION(
139             FUNCTION_NFC_P2P_FUNCTIONS,
140             NFC_FUNCTION_API_P2P_FUNCS,
141             NFC_FEATURES_NFC_P2P,
142             DEVICE_LIST_NFC_P2P);
143
144     NFCFunctions.insert(std::make_pair(
145                                NFC_FUNCTION_API_P2P_FUNCS,
146                                nfcP2PFuncs));
147
148         AceFunction nfcCardEmulationFuncs = ACE_CREATE_FUNCTION(
149             FUNCTION_NFC_CARDEMULATION_FUNCTIONS,
150             NFC_FUNCTION_API_CARDEMULATION_FUNCS,
151             NFC_FEATURES_NFC_CARDEMULATION,
152             DEVICE_LIST_NFC_CARDEMULATION);
153
154     NFCFunctions.insert(std::make_pair(
155                                NFC_FUNCTION_API_CARDEMULATION_FUNCS,
156                                nfcCardEmulationFuncs));
157
158
159     return NFCFunctions;
160 }
161
162 } // namespace NFC
163 } // namespace DeviceAPI
164
165 #undef NFC_FEATURE_API_COMMON
166 #undef NFC_FEATURE_API_ADMIN
167 #undef NFC_FEATURE_API_TAG
168 #undef NFC_FEATURE_API_P2P
169 #undef NFC_FEATURE_API_CARDEMULATION
170 #undef NFC_DEVICE_CAP_COMMON
171 #undef NFC_DEVICE_CAP_ADMIN
172 #undef NFC_DEVICE_CAP_TAG
173 #undef NFC_DEVICE_CAP_P2P
174 #undef NFC_DEVICE_CAP_CARDEMULATION