Parsing about a payload including resource information of multiple devices
[platform/upstream/iotivity.git] / resource / csdk / stack / include / payload_logging.h
index 2199c7e..0939955 100644 (file)
@@ -46,10 +46,10 @@ extern "C"
 #ifdef TB_LOG
     #define OIC_LOG_PAYLOAD(level, payload) OCPayloadLog((level),(payload))
     #define UUID_SIZE (16)
-const char *convertTriggerEnumToString(OCPresenceTrigger trigger);
-OCPresenceTrigger convertTriggerStringToEnum(const char * triggerStr);
+OC_EXPORT const char *convertTriggerEnumToString(OCPresenceTrigger trigger);
+OC_EXPORT OCPresenceTrigger convertTriggerStringToEnum(const char * triggerStr);
 
-static inline void OCPayloadLogRep(LogLevel level, OCRepPayload* payload)
+INLINE_API void OCPayloadLogRep(LogLevel level, OCRepPayload* payload)
 {
     OIC_LOG(level, (PL_TAG), "Payload Type: Representation");
     OCRepPayload* rep = payload;
@@ -164,76 +164,85 @@ static inline void OCPayloadLogRep(LogLevel level, OCRepPayload* payload)
 
 }
 
-static inline void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payload)
+INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Discovery");
-    int i = 1;
-
-    if(!payload->resources)
-    {
-        OIC_LOG(level, PL_TAG, "\tNO Resources");
-        return;
-    }
-    OIC_LOG_V(level, PL_TAG, "\tSID: %s", payload->sid);
-    if (payload->baseURI)
-    {
-        OIC_LOG_V(level, PL_TAG, "\tBase URI:%s", payload->baseURI);
-    }
-    if (payload->name)
-    {
-        OIC_LOG_V(level, PL_TAG, "\tNAME: %s", payload->name);
-    }
-    if (payload->uri)
-    {
-        OIC_LOG_V(level, PL_TAG, "\tURI: %s", payload->uri);
-    }
-    if (payload->type)
-    {
-        OIC_LOG_V(level, PL_TAG, "\tResource Type: %s", payload->type);
-    }
-    OIC_LOG(level, PL_TAG, "\tInterface:");
-    for (OCStringLL *itf = payload->iface; itf; itf = itf->next)
-    {
-        OIC_LOG_V(level, PL_TAG, "\t\t%s", itf->value);
-    }
 
-    OCResourcePayload* res = payload->resources;
-
-    while(res)
+    while(payload && payload->resources)
     {
-        OIC_LOG_V(level, PL_TAG, "\tResource #%d", i);
-        OIC_LOG_V(level, PL_TAG, "\tURI:%s", res->uri);
-        OIC_LOG(level, PL_TAG, "\tResource Types:");
-        OCStringLL* strll =  res->types;
-        while(strll)
+        OIC_LOG_V(level, PL_TAG, "\tSID: %s", payload->sid);
+        if (payload->baseURI)
         {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-            strll = strll->next;
+            OIC_LOG_V(level, PL_TAG, "\tBase URI:%s", payload->baseURI);
         }
-        OIC_LOG(level, PL_TAG, "\tInterfaces:");
-        strll =  res->interfaces;
-        while(strll)
+        if (payload->name)
         {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-            strll = strll->next;
+            OIC_LOG_V(level, PL_TAG, "\tNAME: %s", payload->name);
+        }
+        if (payload->uri)
+        {
+            OIC_LOG_V(level, PL_TAG, "\tURI: %s", payload->uri);
+        }
+        if (payload->type)
+        {
+            for (OCStringLL *strll = payload->type; strll; strll = strll->next)
+            {
+                OIC_LOG_V(level, PL_TAG, "\tResource Type: %s", strll->value);
+            }
+        }
+        OIC_LOG(level, PL_TAG, "\tInterface:");
+        for (OCStringLL *itf = payload->iface; itf; itf = itf->next)
+        {
+            OIC_LOG_V(level, PL_TAG, "\t\t%s", itf->value);
         }
 
-        OIC_LOG_V(level, PL_TAG, "\tBitmap: %u", res->bitmap);
-        OIC_LOG_V(level, PL_TAG, "\tSecure?: %s", res->secure ? "true" : "false");
-        OIC_LOG_V(level, PL_TAG, "\tPort: %u", res->port);
-        OIC_LOG(level, PL_TAG, "");
-        res = res->next;
-        ++i;
+        OCResourcePayload* res = payload->resources;
+
+        int i = 1;
+        while(res)
+        {
+            OIC_LOG_V(level, PL_TAG, "\tResource #%d", i);
+            OIC_LOG_V(level, PL_TAG, "\tURI:%s", res->uri);
+            OIC_LOG(level, PL_TAG, "\tResource Types:");
+            OCStringLL* strll =  res->types;
+            while(strll)
+            {
+                OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
+                strll = strll->next;
+            }
+            OIC_LOG(level, PL_TAG, "\tInterfaces:");
+            strll =  res->interfaces;
+            while(strll)
+            {
+                OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
+                strll = strll->next;
+            }
+
+            OIC_LOG_V(level, PL_TAG, "\tBitmap: %u", res->bitmap);
+            OIC_LOG_V(level, PL_TAG, "\tSecure?: %s", res->secure ? "true" : "false");
+            OIC_LOG_V(level, PL_TAG, "\tPort: %u", res->port);
+            OIC_LOG(level, PL_TAG, "");
+            res = res->next;
+            ++i;
+        }
+        payload = payload->next;
     }
 }
 
-static inline void OCPayloadLogDevice(LogLevel level, OCDevicePayload* payload)
+INLINE_API void OCPayloadLogDevice(LogLevel level, OCDevicePayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Device");
     OIC_LOG_V(level, PL_TAG, "\tSID:%s", payload->sid);
     OIC_LOG_V(level, PL_TAG, "\tDevice Name:%s", payload->deviceName);
-    OIC_LOG_V(level, PL_TAG, "\tSpec Version%s", payload->specVersion);
-    OIC_LOG_V(level, PL_TAG, "\tData Model Version:%s", payload->dataModelVersion);
+    OIC_LOG_V(level, PL_TAG, "\tSpec Version:%s", payload->specVersion);
+    if (payload->dataModelVersions)
+    {
+        OIC_LOG(level, PL_TAG, "\tData Model Version:");
+        for (OCStringLL *strll = payload->dataModelVersions; strll; strll = strll->next)
+        {
+            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
+        }
+    }
     if (payload->types)
     {
         OIC_LOG(level, PL_TAG, "\tResource Type:");
@@ -252,7 +261,7 @@ static inline void OCPayloadLogDevice(LogLevel level, OCDevicePayload* payload)
     }
 }
 
-static inline void OCPayloadLogPlatform(LogLevel level, OCPlatformPayload* payload)
+INLINE_API void OCPayloadLogPlatform(LogLevel level, OCPlatformPayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Platform");
     OIC_LOG_V(level, PL_TAG, "\tURI:%s", payload->uri);
@@ -271,7 +280,10 @@ static inline void OCPayloadLogPlatform(LogLevel level, OCPlatformPayload* paylo
     if (payload->rt)
     {
         OIC_LOG(level, PL_TAG, "\tResource Types:");
-        OIC_LOG_V(level, PL_TAG, "\t\t%s", payload->rt);
+        for (OCStringLL *strll = payload->rt; strll; strll = strll->next)
+        {
+            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
+        }
     }
     if (payload->interfaces)
     {
@@ -283,7 +295,7 @@ static inline void OCPayloadLogPlatform(LogLevel level, OCPlatformPayload* paylo
     }
 }
 
-static inline void OCPayloadLogPresence(LogLevel level, OCPresencePayload* payload)
+INLINE_API void OCPayloadLogPresence(LogLevel level, OCPresencePayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Presence");
     OIC_LOG_V(level, PL_TAG, "\tSequence Number:%u", payload->sequenceNumber);
@@ -292,13 +304,13 @@ static inline void OCPayloadLogPresence(LogLevel level, OCPresencePayload* paylo
     OIC_LOG_V(level, PL_TAG, "\tResource Type:%s", payload->resourceType);
 }
 
-static inline void OCPayloadLogSecurity(LogLevel level, OCSecurityPayload* payload)
+INLINE_API void OCPayloadLogSecurity(LogLevel level, OCSecurityPayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Security");
     OIC_LOG_V(level, PL_TAG, "\tSecurity Data: %s", payload->securityData);
 }
 
-static inline void OCRDPayloadLog(const LogLevel level, const OCRDPayload *payload)
+INLINE_API void OCRDPayloadLog(const LogLevel level, const OCRDPayload *payload)
 {
     if (!payload)
     {
@@ -321,7 +333,7 @@ static inline void OCRDPayloadLog(const LogLevel level, const OCRDPayload *paylo
     }
 }
 
-static inline void OCPayloadLog(LogLevel level, OCPayload* payload)
+INLINE_API void OCPayloadLog(LogLevel level, OCPayload* payload)
 {
     if(!payload)
     {