replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / notification / include / NSCommon.h
index fa3d1a0..35200df 100644 (file)
 #define _NS_COMMON_H_
 
 #include <stdint.h>
+#include <octypes.h>
 
-#define NS_ATTRIBUTE_POLICY "ACCEPTER"
-#define NS_ATTRIBUTE_MESSAGE "MESSAGE_URI"
-#define NS_ATTRIBUTE_SYNC "SYNC_URI"
-#define NS_ATTRIBUTE_ACCPETANCE "ACCEPTANCE"
-#define NS_ATTRIBUTE_MESSAGE_ID "MESSAGE_ID"
-#define NS_ATTRIBUTE_PROVIDER_ID "PROVIDER_ID"
-#define NS_ATTRIBUTE_TITLE "TITLE"
-#define NS_ATTRIBUTE_TEXT "CONTENTTEXT"
-#define NS_ATTRIBUTE_SOURCE "SOURCE"
-#define NS_ATTRIBUTE_STATE "STATE"
-#define NS_ATTRIBUTE_DEVICE "DEVICE"
-#define NS_ATTRIBUTE_TYPE "TYPE"
-#define NS_ATTRIBUTE_DATETIME "DATE_TIME"
-#define NS_ATTRIBUTE_TTL "TTL"
-
+#define NS_UUID_STRING_SIZE 37
+//#define WITH_MQ
 /**
  * Result code of notification service
  */
@@ -53,19 +41,20 @@ typedef enum eResult
     NS_ERROR = 200,
     NS_SUCCESS = 300,
     NS_FAIL = 400,
-    NS_ALLOW = 500,
-    NS_DENY = 600,
 
 } NSResult;
 
 /**
- * Access policy exchanged between provider and consumer during subscription process
+ * Provider state of notification consumer service
  */
-typedef enum eAccessPolicy
+typedef enum
 {
-    NS_ACCESS_ALLOW = 0,
-    NS_ACCESS_DENY = 1,
-} NSAccessPolicy;  // not used , this structure will be deleted.
+    NS_ALLOW = 1,
+    NS_DENY = 2,
+    NS_TOPIC = 3,
+    NS_DISCOVERED = 11,
+    NS_STOPPED = 12
+} NSProviderState;
 
 /**
  * Notification message status to synchronize
@@ -75,6 +64,7 @@ typedef enum
     NS_SYNC_UNREAD = 0,
     NS_SYNC_READ = 1,
     NS_SYNC_DELETED = 2,
+
 } NSSyncType;
 
 /**
@@ -90,15 +80,39 @@ typedef enum
     NS_MESSAGE_NOTICE = 2,
     NS_MESSAGE_EVENT = 3,
     NS_MESSAGE_INFO = 4,
+    NS_MESSAGE_WARNING = 5,
+    NS_MESSAGE_READ = 11,
+    NS_MESSAGE_DELETED = 12
 
 } NSMessageType;
 
 /**
+ *  Notification topic state
+ */
+typedef enum
+{
+    NS_TOPIC_UNSUBSCRIBED = 0,
+    NS_TOPIC_SUBSCRIBED = 1,
+
+} NSTopicState;
+
+/**
+ * Topic linked list
+ */
+typedef struct _nsTopic
+{
+    char * topicName;
+    NSTopicState state;
+    struct _nsTopic * next;
+
+} NSTopicLL;
+
+/**
  *  Consumer information
  */
 typedef struct
 {
-    char consumerId[37];
+    char consumerId[NS_UUID_STRING_SIZE];
 
 } NSConsumer;
 
@@ -107,7 +121,7 @@ typedef struct
  */
 typedef struct
 {
-    char providerId[37];
+    char providerId[NS_UUID_STRING_SIZE];
 
 } NSProvider;
 
@@ -127,7 +141,7 @@ typedef struct
 {
     //Mandatory
     uint64_t messageId;
-    char providerId[37];
+    char providerId[NS_UUID_STRING_SIZE];
 
     //optional
     NSMessageType type;
@@ -137,6 +151,8 @@ typedef struct
     char * contentText;
     char * sourceName;
     NSMediaContents * mediaContents;
+    char * topic;
+    OCRepPayload * extraInfo;
 
 } NSMessage;
 
@@ -146,7 +162,7 @@ typedef struct
 typedef struct
 {
     uint64_t messageId;
-    char providerId[37];
+    char providerId[NS_UUID_STRING_SIZE];
     NSSyncType state;
 
 } NSSyncInfo;