remove NSTopic state in NSCacheTopicSubData.
[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 <octypes.h>\r
29 #include "NSCommon.h"\r
30 #include "NSConstants.h"\r
31 #include "ocstack.h"\r
32 \r
33 typedef struct _nsTask\r
34 {\r
35     NSTaskType taskType;\r
36     void * taskData;\r
37     struct _nsTask * nextTask;\r
38 } NSTask;\r
39 \r
40 typedef void * NSCacheData;\r
41 \r
42 typedef struct _NSCacheElement\r
43 {\r
44     NSCacheData * data;\r
45     struct _NSCacheElement * next;\r
46 } NSCacheElement;\r
47 \r
48 typedef struct\r
49 {\r
50     NSCacheType cacheType;\r
51     NSCacheElement * head;\r
52     NSCacheElement * tail;\r
53 } NSCacheList;\r
54 \r
55 typedef struct\r
56 {\r
57     char id[NS_UUID_STRING_SIZE];\r
58     int syncObId; // sync resource observer ID for local consumer\r
59     int messageObId; // message resource observer ID for local consumer\r
60     int remote_syncObId; //sync observer ID subscribed through remote server\r
61     int remote_messageObId; //message observer ID subscribed through remote server\r
62     bool isWhite; // access state -> True: allowed / False: blocked\r
63 } NSCacheSubData;\r
64 \r
65 typedef struct\r
66 {\r
67     char * id;\r
68     int messageType; // noti = 1, read = 2, dismiss = 3\r
69     NSMessage * nsMessage;\r
70 } NSCacheMsgData;\r
71 \r
72 typedef struct\r
73 {\r
74     char * topicName;\r
75     NSTopicState state;\r
76 \r
77 } NSCacheTopicData;\r
78 \r
79 typedef struct\r
80 {\r
81     char id[NS_UUID_STRING_SIZE];\r
82     char * topicName;\r
83 \r
84 } NSCacheTopicSubData;\r
85 \r
86 typedef struct\r
87 {\r
88     OCResourceHandle handle;\r
89     int accepter;\r
90     char * message_uri;\r
91     char * sync_uri;\r
92 \r
93     //optional\r
94     char * topic_uri;\r
95 } NSNotificationResource;\r
96 \r
97 typedef struct\r
98 {\r
99     OCResourceHandle handle;\r
100 \r
101     uint64_t messageId;\r
102     char providerId[NS_UUID_STRING_SIZE];\r
103 \r
104     //optional\r
105     NSMessageType type;\r
106     char * dateTime;\r
107     uint64_t ttl;\r
108     char * title;\r
109     char * contentText;\r
110     char * sourceName;\r
111     NSMediaContents * mediaContents;\r
112 } NSMessageResource;\r
113 \r
114 typedef struct\r
115 {\r
116     OCResourceHandle handle;\r
117     char * id;\r
118     char * state;\r
119 } NSSyncResource;\r
120 \r
121 typedef struct\r
122 {\r
123     OCResourceHandle handle;\r
124     char consumerId[NS_UUID_STRING_SIZE];\r
125     NSTopicList ** TopicList;\r
126 } NSTopicResource;\r
127 \r
128 typedef struct\r
129 {\r
130     char providerId[NS_UUID_STRING_SIZE];\r
131     char * providerName;\r
132     char * userInfo;\r
133 } NSProviderInfo;\r
134 \r
135 #endif /* _NS_STRUCTS_H_ */\r