31d1ca2a01358aaa9166eef3e9d8a283202058d0
[platform/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 const char* NFC_FUNCTION_API_COMMON_FUNCS = "NFCCommonFunctions";
43 const char* NFC_FUNCTION_API_ADMIN_FUNCS = "NFCAdminFunctions";
44 const char* NFC_FUNCTION_API_TAG_FUNCS = "NFCTagFunctions";
45 const char* NFC_FUNCTION_API_P2P_FUNCS = "NFCP2PFunctions";
46 const char* NFC_FUNCTION_API_CARDEMULATION_FUNCS = "NFCCardEmulationFunctions";
47
48 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions();
49
50 static WrtDeviceApis::Commons::FunctionMapping NFCFunctions =
51     createNFCFunctions();
52
53 #pragma GCC visibility push(default)
54
55 DEFINE_FUNCTION_GETTER(NFC, NFCFunctions);
56
57 #pragma GCC visibility pop
58
59 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions()
60 {
61     using namespace WrtDeviceApis::Commons;
62
63     /**
64      * Device capabilities
65      */
66     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_COMMON, NFC_DEVICE_CAP_COMMON);
67     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_ADMIN, NFC_DEVICE_CAP_ADMIN);
68     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_TAG, NFC_DEVICE_CAP_TAG);
69     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_P2P, NFC_DEVICE_CAP_P2P);
70     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_CARDEMULATION, NFC_DEVICE_CAP_CARDEMULATION);
71
72     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
73
74     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_COMMON);
75     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_COMMON, DEVICE_CAP_NFC_COMMON);
76
77     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_ADMIN);
78     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_ADMIN, DEVICE_CAP_NFC_ADMIN);
79
80     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_TAG);
81     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_TAG, DEVICE_CAP_NFC_TAG);
82
83     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_P2P);
84     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_P2P, DEVICE_CAP_NFC_P2P);
85
86     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_CARDEMULATION);
87     ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_CARDEMULATION, DEVICE_CAP_NFC_CARDEMULATION);
88
89     /**
90      * API features
91      */
92     ACE_CREATE_FEATURE(FEATURE_COMMON, NFC_FEATURE_API_COMMON);
93     ACE_CREATE_FEATURE(FEATURE_ADMIN, NFC_FEATURE_API_ADMIN);
94     ACE_CREATE_FEATURE(FEATURE_TAG, NFC_FEATURE_API_TAG);
95     ACE_CREATE_FEATURE(FEATURE_P2P, NFC_FEATURE_API_P2P);
96     ACE_CREATE_FEATURE(FEATURE_CARDEMULATION, NFC_FEATURE_API_CARDEMULATION);
97
98     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_COMMON);
99     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_COMMON, FEATURE_COMMON);
100
101     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_ADMIN);
102     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_ADMIN, FEATURE_ADMIN);
103
104     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_TAG);
105     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_TAG, FEATURE_TAG);
106
107     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_P2P);
108     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_P2P, FEATURE_P2P);
109
110     ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_CARDEMULATION);
111     ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_CARDEMULATION, FEATURE_CARDEMULATION);
112
113    /**
114      * Functions
115      */
116     FunctionMapping NFCFunctions;
117
118         AceFunction nfcCommonFuncs = ACE_CREATE_FUNCTION(
119             FUNCTION_NFC_COMMON_FUNCTIONS,
120             NFC_FUNCTION_API_COMMON_FUNCS,
121             NFC_FEATURES_NFC_COMMON,
122             DEVICE_LIST_NFC_COMMON);
123
124     NFCFunctions.insert(std::make_pair(
125                                NFC_FUNCTION_API_COMMON_FUNCS,
126                                nfcCommonFuncs));
127
128         AceFunction nfcAdminFuncs = ACE_CREATE_FUNCTION(
129             FUNCTION_NFC_ADMIN_FUNCTIONS,
130             NFC_FUNCTION_API_ADMIN_FUNCS,
131             NFC_FEATURES_NFC_ADMIN,
132             DEVICE_LIST_NFC_ADMIN);
133
134     NFCFunctions.insert(std::make_pair(
135                                NFC_FUNCTION_API_ADMIN_FUNCS,
136                                nfcAdminFuncs));
137
138         AceFunction nfcTagFuncs = ACE_CREATE_FUNCTION(
139             FUNCTION_NFC_TAG_FUNCTIONS,
140             NFC_FUNCTION_API_TAG_FUNCS,
141             NFC_FEATURES_NFC_TAG,
142             DEVICE_LIST_NFC_TAG);
143
144     NFCFunctions.insert(std::make_pair(
145                                NFC_FUNCTION_API_TAG_FUNCS,
146                                nfcTagFuncs));
147
148         AceFunction nfcP2PFuncs = ACE_CREATE_FUNCTION(
149             FUNCTION_NFC_P2P_FUNCTIONS,
150             NFC_FUNCTION_API_P2P_FUNCS,
151             NFC_FEATURES_NFC_P2P,
152             DEVICE_LIST_NFC_P2P);
153
154     NFCFunctions.insert(std::make_pair(
155                                NFC_FUNCTION_API_P2P_FUNCS,
156                                nfcP2PFuncs));
157
158         AceFunction nfcCardEmulationFuncs = ACE_CREATE_FUNCTION(
159             FUNCTION_NFC_CARDEMULATION_FUNCTIONS,
160             NFC_FUNCTION_API_CARDEMULATION_FUNCS,
161             NFC_FEATURES_NFC_CARDEMULATION,
162             DEVICE_LIST_NFC_CARDEMULATION);
163
164     NFCFunctions.insert(std::make_pair(
165                                NFC_FUNCTION_API_CARDEMULATION_FUNCS,
166                                nfcCardEmulationFuncs));
167
168
169     return NFCFunctions;
170 }
171
172 } // namespace NFC
173 } // namespace DeviceAPI
174
175 #undef NFC_FEATURE_API_COMMON
176 #undef NFC_FEATURE_API_ADMIN
177 #undef NFC_FEATURE_API_TAG
178 #undef NFC_FEATURE_API_P2P
179 #undef NFC_FEATURE_API_CARDEMULATION
180 #undef NFC_DEVICE_CAP_COMMON
181 #undef NFC_DEVICE_CAP_ADMIN
182 #undef NFC_DEVICE_CAP_TAG
183 #undef NFC_DEVICE_CAP_P2P
184 #undef NFC_DEVICE_CAP_CARDEMULATION