Update snapshot(2017-12-14)
[platform/upstream/iotivity.git] / resource / csdk / stack / include / payload_logging.h
index 5f722f4..59696c3 100644 (file)
 #ifndef __STDC_LIMIT_MACROS
 #define __STDC_LIMIT_MACROS
 #endif
+
 #include <inttypes.h>
-#include "rdpayload.h"
 #include "oic_malloc.h"
+#include "ocpayload.h"
+#include "ocstack.h"
 
 #ifdef __cplusplus
 extern "C"
@@ -47,209 +49,168 @@ extern "C"
 #ifdef TB_LOG
     #define OIC_LOG_PAYLOAD(level, payload) OCPayloadLog((level),(payload))
     #define UUID_SIZE (16)
+
+#ifdef WITH_PRESENCE
 const char *convertTriggerEnumToString(OCPresenceTrigger trigger);
 OCPresenceTrigger convertTriggerStringToEnum(const char * triggerStr);
+#endif
+
+INLINE_API void OCPayloadLogRep(LogLevel level, OCRepPayload* payload);
 
-#if defined(RD_CLIENT) || defined(RD_SERVER)
-INLINE_API void OCTagsLog(const LogLevel level, const OCTagsPayload *tags)
+INLINE_API void OCPayloadLogRepValues(LogLevel level, OCRepPayloadValue* val)
 {
-    if (tags)
+    while (val)
     {
-        if (tags->n.deviceName)
+        switch(val->type)
         {
-            OIC_LOG_V(level, PL_TAG, " Device Name : %s ", tags->n.deviceName);
-        }
-        if (tags->di.id)
-        {
-            OIC_LOG_V(level, PL_TAG, " Device ID : %s ", tags->di.id);
+            case OCREP_PROP_NULL:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s: NULL", val->name);
+                break;
+            case OCREP_PROP_INT:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(int):%" PRId64, val->name, val->i);
+                break;
+            case OCREP_PROP_DOUBLE:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(double):%f", val->name, val->d);
+                break;
+            case OCREP_PROP_BOOL:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(bool):%s", val->name, val->b ? "true" : "false");
+                break;
+            case OCREP_PROP_STRING:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(string):%s", val->name, val->str);
+                break;
+            case OCREP_PROP_BYTE_STRING:
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(binary):", val->name);
+                OIC_LOG_BUFFER(level, PL_TAG, val->ocByteStr.bytes, val->ocByteStr.len);
+                break;
+            case OCREP_PROP_OBJECT:
+                // Note: Only prints the URI (if available), to print further, you'll
+                // need to dig into the object better!
+                OIC_LOG_V(level, PL_TAG, "\t\t%s(object):", val->name);
+                OCPayloadLogRep(level, val->obj);
+                break;
+            case OCREP_PROP_ARRAY:
+                switch(val->arr.type)
+                {
+                    case OCREP_PROP_INT:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(int array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OIC_LOG_V(level, PL_TAG, "\t\t\t %" PRId64, val->arr.iArray[i]);
+                        }
+                        break;
+                    case OCREP_PROP_DOUBLE:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(double array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OIC_LOG_V(level, PL_TAG, "\t\t\t %lf", val->arr.dArray[i]);
+                        }
+                        break;
+                    case OCREP_PROP_BOOL:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(bool array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OIC_LOG_V(level, PL_TAG, "\t\t\t %d", val->arr.bArray[i]);
+                        }
+                        break;
+                    case OCREP_PROP_STRING:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(string array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OIC_LOG_V(level, PL_TAG, "\t\t\t %s", val->arr.strArray[i]);
+                        }
+                        break;
+                    case OCREP_PROP_BYTE_STRING:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(byte array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OIC_LOG_BUFFER(level, PL_TAG, val->arr.ocByteStrArray[i].bytes, val->arr.ocByteStrArray[i].len);
+                        }
+                        break;
+                    case OCREP_PROP_OBJECT:
+                        OIC_LOG_V(level, PL_TAG, "\t\t%s(object array):%zu x %zu x %zu: ",
+                                val->name,
+                                val->arr.dimensions[0], val->arr.dimensions[1],
+                                val->arr.dimensions[2]);
+                        OIC_LOG(level, PL_TAG, "\t\t Values:");
+
+                        for (size_t i = 0; i < val->arr.dimensions[0]; i++)
+                        {
+                            OCPayloadLogRep(level, val->arr.objArray[i]);
+                        }
+                        break;
+                    case OCREP_PROP_ARRAY: //Seems as nested arrays doesn't not supported in API
+                    default:
+                        OIC_LOG_V(ERROR, PL_TAG, "%s <-- Unknown/unsupported array type!",
+                                val->name);
+                        break;
+                }
+                break;
+            default:
+                OIC_LOG_V(ERROR, PL_TAG, "%s <-- Unknown type!", val->name);
+                break;
         }
-        OIC_LOG_V(level, PL_TAG, " lt : %" PRIu64 ,tags->ttl);
-    }
-    else
-    {
-        (void) level;
+        val = val -> next;
     }
 }
 
-INLINE_API void OCLinksLog(const LogLevel level, const OCLinksPayload *links)
+INLINE_API void OCPayloadLogRep(LogLevel level, OCRepPayload* payload)
 {
-    if (!links)
-    {
-        return;
-    }
-
-    while (links)
+    OIC_LOG(level, (PL_TAG), "Payload Type: Representation");
+    int i = 1;
+    for (OCRepPayload* rep = payload; rep; rep = rep->next, ++i)
     {
-        if (links->href)
+        OIC_LOG_V(level, PL_TAG, "\tResource #%d", i);
+        if (rep->uri)
         {
-            OIC_LOG_V(level, PL_TAG, "   href: %s ",links->href);
+            OIC_LOG_V(level, PL_TAG, "\tURI:%s", rep->uri);
         }
-        OIC_LOG(level, PL_TAG, "   RT: ");
-        OCStringLL *rt = links->rt;
-        while (rt)
+        if (rep->types)
         {
-            if (rt->value)
-            {
-                OIC_LOG_V(level, PL_TAG, "   %s", rt->value);
-            }
-            rt = rt->next;
-        }
-        OIC_LOG(level, PL_TAG, "   IF: ");
-        OCStringLL *itf = links->itf;
-        while (itf)
-        {
-            if (itf->value)
+            OIC_LOG(level, PL_TAG, "\tResource Types:");
+            for (OCStringLL* strll = rep->types; strll; strll = strll->next)
             {
-                OIC_LOG_V(level, PL_TAG, "   %s", itf->value);
+                OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
             }
-            itf = itf->next;
         }
-        OIC_LOG(level, PL_TAG, "   MT: ");
-        OCStringLL *mt = links->type;
-        while (mt)
+        if (rep->interfaces)
         {
-            if (mt->value)
+            OIC_LOG(level, PL_TAG, "\tInterfaces:");
+            for (OCStringLL* strll = rep->interfaces; strll; strll = strll->next)
             {
-                OIC_LOG_V(level, PL_TAG, "   %s", mt->value);
+                OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
             }
-            mt = mt->next;
-        }
-        if (links->type)
-        {
-            OIC_LOG_V(level, PL_TAG, "   %s", links->type->value);
-        }
-        OIC_LOG_V(level, PL_TAG, "   INS: %d", links->ins);
-        OIC_LOG_V(level, PL_TAG, "   TTL: %" PRIu64 , links->ttl);
-        OIC_LOG_V(level, PL_TAG, "   P: %d", links->p);
-        if (links->rel)
-        {
-            OIC_LOG_V(level, PL_TAG, "   REL: %s", links->rel);
-        }
-        if (links->title)
-        {
-            OIC_LOG_V(level, PL_TAG, "   TITLE: %s", links->title);
-        }
-        if (links->anchor)
-        {
-            OIC_LOG_V(level, PL_TAG, "   URI: %s", links->anchor);
         }
-        links = links->next;
+        OIC_LOG(level, PL_TAG, "\tValues:");
+        OCPayloadLogRepValues(level, rep->values);
     }
 }
-#endif
-INLINE_API void OCPayloadLogRep(LogLevel level, OCRepPayload* payload)
+
+static void OCStringLLPrint(LogLevel level, OCStringLL *type)
 {
-    OIC_LOG(level, (PL_TAG), "Payload Type: Representation");
-    OCRepPayload* rep = payload;
-    int i = 1;
-    while(rep)
+    for (OCStringLL *strll = type; strll; strll = strll->next)
     {
-        OIC_LOG_V(level, PL_TAG, "\tResource #%d", i);
-        OIC_LOG_V(level, PL_TAG, "\tURI:%s", rep->uri);
-        OIC_LOG(level, PL_TAG, "\tResource Types:");
-        OCStringLL* strll =  rep->types;
-        while(strll)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-            strll = strll->next;
-        }
-        OIC_LOG(level, PL_TAG, "\tInterfaces:");
-        strll =  rep->interfaces;
-        while(strll)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-            strll = strll->next;
-        }
-
-        // TODO Finish Logging: Values
-        OCRepPayloadValue* val = rep->values;
-
-        OIC_LOG(level, PL_TAG, "\tValues:");
-
-        while(val)
-        {
-            switch(val->type)
-            {
-                case OCREP_PROP_NULL:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s: NULL", val->name);
-                    break;
-                case OCREP_PROP_INT:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(int):%zd", val->name, val->i);
-                    break;
-                case OCREP_PROP_DOUBLE:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(double):%f", val->name, val->d);
-                    break;
-                case OCREP_PROP_BOOL:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(bool):%s", val->name, val->b ? "true" : "false");
-                    break;
-                case OCREP_PROP_STRING:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(string):%s", val->name, val->str);
-                    break;
-                case OCREP_PROP_BYTE_STRING:
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(binary):", val->name);
-                    OIC_LOG_BUFFER(level, PL_TAG, val->ocByteStr.bytes, val->ocByteStr.len);
-                    break;
-                case OCREP_PROP_OBJECT:
-                    // Note: Only prints the URI (if available), to print further, you'll
-                    // need to dig into the object better!
-                    OIC_LOG_V(level, PL_TAG, "\t\t%s(OCRep):%s", val->name, val->obj->uri);
-                    break;
-                case OCREP_PROP_ARRAY:
-                    switch(val->arr.type)
-                    {
-                        case OCREP_PROP_INT:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(int array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        case OCREP_PROP_DOUBLE:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(double array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        case OCREP_PROP_BOOL:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(bool array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        case OCREP_PROP_STRING:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(string array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        case OCREP_PROP_BYTE_STRING:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(byte array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        case OCREP_PROP_OBJECT:
-                            OIC_LOG_V(level, PL_TAG, "\t\t%s(OCRep array):%zu x %zu x %zu",
-                                    val->name,
-                                    val->arr.dimensions[0], val->arr.dimensions[1],
-                                    val->arr.dimensions[2]);
-                            break;
-                        default:
-                            OIC_LOG_V(ERROR, PL_TAG, "\t\t%s <-- Unknown/unsupported array type!",
-                                    val->name);
-                            break;
-                    }
-                    break;
-                default:
-                    OIC_LOG_V(ERROR, PL_TAG, "\t\t%s <-- Unknown type!", val->name);
-                    break;
-            }
-            val = val -> next;
-        }
-
-        ++i;
-        rep = rep->next;
+        OIC_LOG_V(level, PL_TAG, "\t\t %s", strll->value);
     }
-
 }
 
 INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payload)
@@ -258,7 +219,7 @@ INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payloa
 
     while(payload && payload->resources)
     {
-        OIC_LOG_V(level, PL_TAG, "\tSID: %s", payload->sid);
+        OIC_LOG_V(level, PL_TAG, "\tDI: %s", payload->sid);
         if (payload->baseURI)
         {
             OIC_LOG_V(level, PL_TAG, "\tBase URI:%s", payload->baseURI);
@@ -267,21 +228,17 @@ INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payloa
         {
             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, "\tResource Type:");
+            OCStringLLPrint(level, payload->type);
         }
-        OIC_LOG(level, PL_TAG, "\tInterface:");
-        for (OCStringLL *itf = payload->iface; itf; itf = itf->next)
+
+        if (payload->iface)
         {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", itf->value);
+            OIC_LOG(level, PL_TAG, "\tInterface:");
+            OCStringLLPrint(level, payload->iface);
         }
 
         OCResourcePayload* res = payload->resources;
@@ -289,7 +246,7 @@ INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payloa
         int i = 1;
         while(res)
         {
-            OIC_LOG_V(level, PL_TAG, "\tResource #%d", i);
+            OIC_LOG_V(level, PL_TAG, "\tLink#%d", i);
             OIC_LOG_V(level, PL_TAG, "\tURI:%s", res->uri);
             OIC_LOG(level, PL_TAG, "\tResource Types:");
             OCStringLL* strll =  res->types;
@@ -317,72 +274,7 @@ INLINE_API void OCPayloadLogDiscovery(LogLevel level, OCDiscoveryPayload* payloa
     }
 }
 
-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);
-    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:");
-        for (OCStringLL *strll = payload->types; strll; strll = strll->next)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-        }
-    }
-    if (payload->interfaces)
-    {
-        OIC_LOG(level, PL_TAG, "\tInterface:");
-        for (OCStringLL *strll = payload->interfaces; strll; strll = strll->next)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-        }
-    }
-}
-
-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);
-    OIC_LOG_V(level, PL_TAG, "\tPlatform ID:%s", payload->info.platformID);
-    OIC_LOG_V(level, PL_TAG, "\tMfg Name:%s", payload->info.manufacturerName);
-    OIC_LOG_V(level, PL_TAG, "\tMfg URL:%s", payload->info.manufacturerUrl);
-    OIC_LOG_V(level, PL_TAG, "\tModel Number:%s", payload->info.modelNumber);
-    OIC_LOG_V(level, PL_TAG, "\tDate of Mfg:%s", payload->info.dateOfManufacture);
-    OIC_LOG_V(level, PL_TAG, "\tPlatform Version:%s", payload->info.platformVersion);
-    OIC_LOG_V(level, PL_TAG, "\tOS Version:%s", payload->info.operatingSystemVersion);
-    OIC_LOG_V(level, PL_TAG, "\tHardware Version:%s", payload->info.hardwareVersion);
-    OIC_LOG_V(level, PL_TAG, "\tFirmware Version:%s", payload->info.firmwareVersion);
-    OIC_LOG_V(level, PL_TAG, "\tSupport URL:%s", payload->info.supportUrl);
-    OIC_LOG_V(level, PL_TAG, "\tSystem Time:%s", payload->info.systemTime);
-
-    if (payload->rt)
-    {
-        OIC_LOG(level, PL_TAG, "\tResource Types:");
-        for (OCStringLL *strll = payload->rt; strll; strll = strll->next)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-        }
-    }
-    if (payload->interfaces)
-    {
-        OIC_LOG(level, PL_TAG, "\tResource Interfaces:");
-        for (OCStringLL *strll = payload->interfaces; strll; strll = strll->next)
-        {
-            OIC_LOG_V(level, PL_TAG, "\t\t%s", strll->value);
-        }
-    }
-}
-
+#ifdef WITH_PRESENCE
 INLINE_API void OCPayloadLogPresence(LogLevel level, OCPresencePayload* payload)
 {
     OIC_LOG(level, PL_TAG, "Payload Type: Presence");
@@ -391,6 +283,7 @@ INLINE_API void OCPayloadLogPresence(LogLevel level, OCPresencePayload* payload)
     OIC_LOG_V(level, PL_TAG, "\tTrigger:%s", convertTriggerEnumToString(payload->trigger));
     OIC_LOG_V(level, PL_TAG, "\tResource Type:%s", payload->resourceType);
 }
+#endif // WITH_PRESENCE
 
 INLINE_API void OCPayloadLogSecurity(LogLevel level, OCSecurityPayload* payload)
 {
@@ -401,11 +294,11 @@ INLINE_API void OCPayloadLogSecurity(LogLevel level, OCSecurityPayload* payload)
     {
         // Add a zero-character string terminator.
         char *securityData = (char *)OICMalloc(payloadSize + 1);
-        
+
         if (securityData)
         {
             memcpy(securityData, payload->securityData, payloadSize);
-            assert(securityData[payloadSize - 1] != '\0');
+            // assert(securityData[payloadSize - 1] != '\0');
             securityData[payloadSize] = '\0';
             OIC_LOG_V(level, PL_TAG, "\tSecurity Data: %s", securityData);
             OICFree(securityData);
@@ -413,30 +306,6 @@ INLINE_API void OCPayloadLogSecurity(LogLevel level, OCSecurityPayload* payload)
     }
 }
 
-#if defined(RD_CLIENT) || defined(RD_SERVER)
-INLINE_API void OCRDPayloadLog(const LogLevel level, const OCRDPayload *payload)
-{
-    if (!payload)
-    {
-        return;
-    }
-
-    if (payload->rdDiscovery)
-    {
-        OIC_LOG(level, PL_TAG, "RD Discovery");
-        OIC_LOG_V(level, PL_TAG, "  Device Name : %s", payload->rdDiscovery->n.deviceName);
-        OIC_LOG_V(level, PL_TAG, "  Device Identity : %s", payload->rdDiscovery->di.id);
-        OIC_LOG_V(level, PL_TAG, "  Bias: %d", payload->rdDiscovery->sel);
-    }
-    if (payload->rdPublish)
-    {
-        OIC_LOG(level, PL_TAG, "RD Publish");
-        OCResourceCollectionPayload *rdPublish = payload->rdPublish;
-        OCTagsLog(level, rdPublish->tags);
-        OCLinksLog(level, rdPublish->setLinks);
-    }
-}
-#endif
 INLINE_API void OCPayloadLog(LogLevel level, OCPayload* payload)
 {
     if(!payload)
@@ -452,23 +321,14 @@ INLINE_API void OCPayloadLog(LogLevel level, OCPayload* payload)
         case PAYLOAD_TYPE_DISCOVERY:
             OCPayloadLogDiscovery(level, (OCDiscoveryPayload*)payload);
             break;
-        case PAYLOAD_TYPE_DEVICE:
-            OCPayloadLogDevice(level, (OCDevicePayload*)payload);
-            break;
-        case PAYLOAD_TYPE_PLATFORM:
-            OCPayloadLogPlatform(level, (OCPlatformPayload*)payload);
-            break;
+#ifdef WITH_PRESENCE
         case PAYLOAD_TYPE_PRESENCE:
             OCPayloadLogPresence(level, (OCPresencePayload*)payload);
             break;
+#endif
         case PAYLOAD_TYPE_SECURITY:
             OCPayloadLogSecurity(level, (OCSecurityPayload*)payload);
             break;
-#if defined(RD_CLIENT) || defined(RD_SERVER)
-        case PAYLOAD_TYPE_RD:
-            OCRDPayloadLog(level, (OCRDPayload*)payload);
-            break;
-#endif
         default:
             OIC_LOG_V(level, PL_TAG, "Unknown Payload Type: %d", payload->type);
             break;