delete unused code of EntityHandler in Provider Side.
[platform/upstream/iotivity.git] / service / notification / src / provider / NSProviderListener.c
1 //******************************************************************\r
2 //\r
3 // Copyright 2016 Samsung Electronics All Rights Reserved.\r
4 //\r
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
6 //\r
7 // Licensed under the Apache License, Version 2.0 (the "License");\r
8 // you may not use this file except in compliance with the License.\r
9 // You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 // Unless required by applicable law or agreed to in writing, software\r
14 // distributed under the License is distributed on an "AS IS" BASIS,\r
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 // See the License for the specific language governing permissions and\r
17 // limitations under the License.\r
18 //\r
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
20 \r
21 #include "NSProviderListener.h"\r
22 \r
23 OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,\r
24         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
25 {\r
26     NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - IN");\r
27 \r
28     OCEntityHandlerResult ehResult = OC_EH_OK;\r
29     OCEntityHandlerResponse response =\r
30     { 0, 0, OC_EH_ERROR, 0, 0,\r
31     { },\r
32     { 0 }, false };\r
33 \r
34     (void)callback;\r
35 \r
36     // Validate pointer\r
37     if (!entityHandlerRequest)\r
38     {\r
39         NS_LOG(ERROR, "Invalid request pointer");\r
40         return OC_EH_ERROR;\r
41     }\r
42 \r
43     // Initialize certain response fields\r
44     response.numSendVendorSpecificHeaderOptions = 0;\r
45     memset(response.sendVendorSpecificHeaderOptions, 0,\r
46             sizeof response.sendVendorSpecificHeaderOptions);\r
47     memset(response.resourceUri, 0, sizeof response.resourceUri);\r
48     OCRepPayload* payload = NULL;\r
49 \r
50     if (flag & OC_REQUEST_FLAG)\r
51     {\r
52         NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
53 \r
54         if (OC_REST_GET == entityHandlerRequest->method)\r
55         {\r
56             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_GET");\r
57 \r
58             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_POLICY,\r
59                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
60             ehResult = OC_EH_OK;\r
61 \r
62         }\r
63         else if (OC_REST_PUT == entityHandlerRequest->method)\r
64         {\r
65             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_PUT");\r
66             ehResult = OC_EH_OK;\r
67         }\r
68         else if (OC_REST_POST == entityHandlerRequest->method)\r
69         {\r
70             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_POST");\r
71             ehResult = OC_EH_OK;\r
72         }\r
73         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
74         {\r
75             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_DELETE");\r
76             ehResult = OC_EH_OK;\r
77         }\r
78         else\r
79         {\r
80             NS_LOG_V (DEBUG, "Received unsupported method %d from client",\r
81                     entityHandlerRequest->method);\r
82             ehResult = OC_EH_OK;\r
83         }\r
84     }\r
85 \r
86     OCPayloadDestroy(response.payload);\r
87     NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OUT");\r
88     return ehResult;\r
89 }\r
90 \r
91 OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,\r
92         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
93 {\r
94     NS_LOG(DEBUG, "NSEntityHandlerMessageCb - IN");\r
95 \r
96     OCEntityHandlerResult ehResult = OC_EH_OK;\r
97     OCEntityHandlerResponse response =\r
98     { 0, 0, OC_EH_ERROR, 0, 0,\r
99     { },\r
100     { 0 }, false };\r
101 \r
102     (void)callback;\r
103 \r
104     // Validate pointer\r
105     if (!entityHandlerRequest)\r
106     {\r
107         NS_LOG (ERROR,"Invalid request pointer");\r
108         return OC_EH_ERROR;\r
109     }\r
110 \r
111     // Initialize certain response fields\r
112     response.numSendVendorSpecificHeaderOptions = 0;\r
113     memset(response.sendVendorSpecificHeaderOptions, 0,\r
114             sizeof response.sendVendorSpecificHeaderOptions);\r
115     memset(response.resourceUri, 0, sizeof response.resourceUri);\r
116     OCRepPayload* payload = NULL;\r
117 \r
118     if (flag & OC_REQUEST_FLAG)\r
119     {\r
120         NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
121 \r
122         if (OC_REST_GET == entityHandlerRequest->method)\r
123         {\r
124             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_GET");\r
125             ehResult = OC_EH_OK;\r
126         }\r
127         else if (OC_REST_PUT == entityHandlerRequest->method)\r
128         {\r
129             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_PUT");\r
130             ehResult = OC_EH_OK;\r
131         }\r
132         else if (OC_REST_POST == entityHandlerRequest->method)\r
133         {\r
134             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_POST");\r
135             ehResult = OC_EH_OK;\r
136         }\r
137         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
138         {\r
139             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_DELETE");\r
140             ehResult = OC_EH_OK;\r
141         }\r
142         else\r
143         {\r
144             NS_LOG_V(DEBUG, "Received unsupported method %d from client",\r
145                     entityHandlerRequest->method);\r
146             ehResult = OC_EH_OK;\r
147         }\r
148     }\r
149 \r
150     if (flag & OC_OBSERVE_FLAG)\r
151     {\r
152         NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_OBSERVE_FLAG");\r
153 \r
154         OCObserveAction ocObAction = entityHandlerRequest->obsInfo.action;\r
155 \r
156         if (ocObAction == OC_OBSERVE_REGISTER)\r
157         {\r
158             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_OBSERVE_REGISTER");\r
159             NS_LOG_V(DEBUG, "NSEntityHandlerMessageCb\n"\r
160                     "Register message observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
161             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_RECV_SUBSCRIPTION,\r
162                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
163         }\r
164         else if(ocObAction == OC_OBSERVE_DEREGISTER)\r
165         {\r
166             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_OBSERVE_DEREGISTER");\r
167             NS_LOG_V(DEBUG, "NSEntityHandlerMessageCb\n - "\r
168                     "Deregister Message observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
169             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_RECV_UNSUBSCRIPTION,\r
170                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
171         }\r
172     }\r
173 \r
174     OCPayloadDestroy(response.payload);\r
175     NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OUT");\r
176     return ehResult;\r
177 }\r
178 \r
179 OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,\r
180         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
181 {\r
182     NS_LOG(DEBUG, "NSEntityHandlerSyncCb - IN");\r
183     OCEntityHandlerResult ehResult = OC_EH_OK;\r
184     OCEntityHandlerResponse response =\r
185     { 0, 0, OC_EH_ERROR, 0, 0,\r
186     { },\r
187     { 0 }, false };\r
188 \r
189     (void)callback;\r
190 \r
191     // Validate pointer\r
192     if (!entityHandlerRequest)\r
193     {\r
194         NS_LOG(ERROR, "Invalid request pointer");\r
195         return OC_EH_ERROR;\r
196     }\r
197 \r
198     // Initialize certain response fields\r
199     response.numSendVendorSpecificHeaderOptions = 0;\r
200     memset(response.sendVendorSpecificHeaderOptions, 0,\r
201             sizeof response.sendVendorSpecificHeaderOptions);\r
202     memset(response.resourceUri, 0, sizeof response.resourceUri);\r
203     OCRepPayload* payload = NULL;\r
204 \r
205     if (flag & OC_REQUEST_FLAG)\r
206     {\r
207         NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
208 \r
209         if (OC_REST_GET == entityHandlerRequest->method)\r
210         {\r
211             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_GET");\r
212             ehResult = OC_EH_OK;\r
213         }\r
214         else if (OC_REST_PUT == entityHandlerRequest->method)\r
215         {\r
216             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_PUT");\r
217             ehResult = OC_EH_OK;\r
218         }\r
219         else if (OC_REST_POST == entityHandlerRequest->method)\r
220         {\r
221             /** Receive sync data from consumer which read or dismiss notification message.\r
222                            And broadcast the sync data to all subscribers including provider app\r
223                            to synchronize the notification message status. */\r
224 \r
225             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_POST");\r
226 \r
227             NSPushQueue(NOTIFICATION_SCHEDULER, TASK_RECV_READ,\r
228                     NSGetSyncInfo(entityHandlerRequest->payload));\r
229             ehResult = OC_EH_OK;\r
230         }\r
231         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
232         {\r
233             NS_LOG(DEBUG, "Received OC_REST_DELETE from client");\r
234             ehResult = OC_EH_OK;\r
235         }\r
236         else\r
237         {\r
238             NS_LOG_V(DEBUG, "Received unsupported method %d from client",\r
239                     entityHandlerRequest->method);\r
240             ehResult = OC_EH_OK;\r
241         }\r
242     }\r
243 \r
244     if (flag & OC_OBSERVE_FLAG)\r
245     {\r
246         /** Requested by consumers to synchronize notification message status.\r
247             Store the observer IDs to storage or cache */\r
248 \r
249         NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_OBSERVE_FLAG");\r
250 \r
251         OCObserveAction ocObAction = entityHandlerRequest->obsInfo.action;\r
252 \r
253         if (ocObAction == OC_OBSERVE_REGISTER)\r
254         {\r
255             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_OBSERVE_REGISTER");\r
256             NS_LOG_V(DEBUG, "NSEntityHandlerSyncCb\n - "\r
257                     "Register Sync observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
258             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SYNC_SUBSCRIPTION,\r
259                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
260         }\r
261         else if(ocObAction == OC_OBSERVE_DEREGISTER)\r
262         {\r
263             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_OBSERVE_DEREGISTER");\r
264             NS_LOG_V(DEBUG, "NSEntityHandlerSyncCb\n - "\r
265                     "Deregister Sync observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
266             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_RECV_UNSUBSCRIPTION,\r
267                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
268         }\r
269     }\r
270 \r
271     OCPayloadDestroy(response.payload);\r
272     NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OUT");\r
273     return ehResult;\r
274 }\r
275 \r
276 void NSProviderConnectionStateListener(const CAEndpoint_t * info, bool connected)\r
277 {\r
278 \r
279     NS_LOG(DEBUG, "NSProviderConnectionStateListener - IN");\r
280 \r
281     if (connected)\r
282     {\r
283         NS_LOG(DEBUG, "CONNECTED");\r
284 \r
285         // Set Connection State\r
286         NSSetProviderConnectionState(CONNECTED);\r
287 \r
288         // Start Presence\r
289         NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
290 \r
291         if(info->adapter == CA_ADAPTER_TCP)\r
292         {\r
293             NS_LOG_V(DEBUG, "TCP Connected remote address: %s:%d", info->addr, info->port);\r
294         }\r
295     }\r
296     else\r
297     {\r
298 \r
299         NS_LOG(DEBUG, "DISCONNECTED");\r
300 \r
301         // Set Connection State\r
302         NSSetProviderConnectionState(DISCONNECTED);\r
303 \r
304         if(info->adapter == CA_ADAPTER_TCP)\r
305         {\r
306             NS_LOG_V(DEBUG, "TCP Disconnected remote address: %s:%d", info->addr, info->port);\r
307         }\r
308     }\r
309 \r
310     NS_LOG(DEBUG, "NSProviderConnectionStateListener - OUT");\r
311 }\r
312 \r
313 void NSProviderAdapterStateListener(CATransportAdapter_t adapter, bool enabled)\r
314 {\r
315     (void)adapter;\r
316 \r
317     NS_LOG(DEBUG, "NSProviderAdapterStateListener - IN");\r
318 \r
319     if (enabled)\r
320     {\r
321         NS_LOG(DEBUG, "CONNECTED");\r
322 \r
323         // Set Connection State\r
324         NSSetProviderConnectionState(CONNECTED);\r
325 \r
326         // Start Presence\r
327         NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
328     }\r
329     else\r
330     {\r
331 \r
332         NS_LOG(DEBUG, "DISCONNECTED");\r
333 \r
334         // Set Connection State\r
335         NSSetProviderConnectionState(DISCONNECTED);\r
336     }\r
337 \r
338     NS_LOG(DEBUG, "NSProviderAdapterStateListener - OUT");\r
339 }\r
340 \r