Merge branch 'master' into notification-service
[platform/upstream/iotivity.git] / service / notification / src / common / NSStructs.h
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 #ifndef _NS_STRUCTS_H_\r
22 #define _NS_STRUCTS_H_\r
23 \r
24 #include <string.h>\r
25 #include <stdlib.h>\r
26 #include <stdio.h>\r
27 #include <stdbool.h>\r
28 #include "NSCommon.h"\r
29 #include "NSConstants.h"\r
30 \r
31 typedef struct _nsTask\r
32 {\r
33     NSTaskType taskType;\r
34     void * taskData;\r
35     struct _nsTask * nextTask;\r
36 } NSTask;\r
37 \r
38 typedef void * NSCacheData;\r
39 \r
40 typedef struct _NSCacheElement\r
41 {\r
42     NSCacheData * data;\r
43     struct _NSCacheElement * next;\r
44 } NSCacheElement;\r
45 \r
46 typedef struct\r
47 {\r
48     NSCacheType cacheType;\r
49     NSCacheElement * head;\r
50     NSCacheElement * tail;\r
51 } NSCacheList;\r
52 \r
53 typedef struct\r
54 {\r
55     char id[37]; // ip\r
56     int syncObId;\r
57     int messageObId;\r
58     bool isWhite;\r
59 } NSCacheSubData;\r
60 \r
61 typedef struct\r
62 {\r
63     char * id; // ip ? ? ?\r
64     int messageType; // noti = 1, read = 2, dismiss = 3\r
65     NSMessage * nsMessage;\r
66 } NSCacheMsgData;\r
67 \r
68 typedef struct\r
69 {\r
70     OCResourceHandle handle;\r
71     int accepter;\r
72     char * message_uri;\r
73     char * sync_uri;\r
74 } NSNotificationResource;\r
75 \r
76 typedef struct\r
77 {\r
78     OCResourceHandle handle;\r
79 \r
80     uint64_t messageId;\r
81     char providerId[37];\r
82 \r
83     //optional\r
84     NSMessageType type;\r
85     char * dateTime;\r
86     uint64_t ttl;\r
87     char * title;\r
88     char * contentText;\r
89     char * sourceName;\r
90     NSMediaContents * mediaContents;\r
91 } NSMessageResource;\r
92 \r
93 typedef struct\r
94 {\r
95     OCResourceHandle handle;\r
96     char * id;\r
97     char * state;\r
98 } NSSyncResource;\r
99 \r
100 typedef struct\r
101 {\r
102   char providerId[37];\r
103   char * providerName;\r
104 } NSProviderInfo;\r
105 \r
106 #endif /* _NS_STRUCTS_H_ */\r