To come on this changeset: All convergences between and server and client observation...
[platform/upstream/iotivity.git] / csdk / stack / include / internal / ocobserve.h
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #ifndef OC_OBSERVE_H
22 #define OC_OBSERVE_H
23
24 /* In CoAP sequence number is a 24 bit field */
25 #define MAX_SEQUENCE_NUMBER              0xFFFFFF
26 #define OC_RESOURCE_OBSERVE_REGISTER     "0"
27 #define OC_RESOURCE_OBSERVE_DEREGISTER   "1"
28
29 /* This information is stored for each registerd observer */
30 typedef struct ObserveResourceServer {
31     // URI of observed resource
32     unsigned char *resUri;
33     // Query
34     unsigned char *query;
35     // CoAP token for the observe request
36     OCCoAPToken *token;
37     // Resource handle
38     OCResource *resource;
39     // IP address & port of client registered for observe
40     OCDevAddr *addr;
41     // next node in this list
42     struct ObserveResourceServer *next;
43 } ObserveResourceServer;
44
45 OCStackResult ProcessObserveRequest (OCResource *resource, OCRequest *request);
46
47 OCStackResult SendObserverNotification (OCResourceHandle handle, OCResource *resPtr);
48
49 void DeleteObserverList();
50
51 #endif //OC_OBSERVE_H