OCResource *headResource = NULL;
static OCResource *tailResource = NULL;
+static OCResourceHandle platformResource = {0};
+static OCResourceHandle deviceResource = {0};
#ifdef WITH_PRESENCE
static OCPresenceState presenceState = OC_PRESENCE_UNINITIALIZED;
static PresenceResource presenceResource;
#endif
OCDeviceEntityHandler defaultDeviceHandler;
void* defaultDeviceHandlerCallbackParameter = NULL;
-
-#ifdef TCP_ADAPTER
static const char COAP_TCP[] = "coap+tcp:";
-#endif
//-----------------------------------------------------------------------------
// Macros
TAG, #arg " is NULL"); return (retVal); } }
#define VERIFY_NON_NULL_NR(arg, logLevel) { if (!(arg)) { OC_LOG((logLevel), \
TAG, #arg " is NULL"); return; } }
-#define VERIFY_NON_NULL_V(arg) { if (!arg) {OC_LOG_V(FATAL, TAG, "%s is NULL", #arg);\
+#define VERIFY_NON_NULL_V(arg) { if (!arg) {OC_LOG(FATAL, TAG, #arg " is NULL");\
goto exit;} }
//TODO: we should allow the server to define this
caglobals.clientFlags = (CATransportFlags_t)(caglobals.clientFlags|CA_IPV4|CA_IPV6);
}
-#ifdef TCP_ADAPTER
- if (!(caglobals.serverFlags & CA_IPFAMILY_MASK))
- {
- caglobals.serverFlags = (CATransportFlags_t)(caglobals.serverFlags|CA_IPV4);
- }
- if (!(caglobals.clientFlags & CA_IPFAMILY_MASK))
- {
- caglobals.clientFlags = (CATransportFlags_t)(caglobals.clientFlags|CA_IPV4);
- }
-#endif
-
defaultDeviceHandler = NULL;
defaultDeviceHandlerCallbackParameter = NULL;
- OCSeedRandom();
result = CAResultToOCResult(CAInitialize());
VERIFY_SUCCESS(result, OC_STACK_OK);
return OC_STACK_INVALID_URI;
}
-#ifdef TCP_ADAPTER
// process url scheme
size_t prefixLen = slash2 - fullUri;
bool istcp = false;
istcp = true;
}
}
-#endif
// TODO: this logic should come in with unit tests exercising the various strings
// processs url prefix, if any
{ // ipv4 address
colon = strchr(start, ':');
end = (colon && colon < slash) ? colon : slash;
-#ifdef TCP_ADAPTER
+
if (istcp)
{ // coap over tcp
adapter = (OCTransportAdapter)(adapter | OC_ADAPTER_TCP);
}
else
-#endif
{
adapter = (OCTransportAdapter)(adapter | OC_ADAPTER_IP);
flags = (OCTransportFlags)(flags | OC_IP_USE_V4);
&(((OCResource *) presenceResource.handle)->resourceProperties),
OC_ACTIVE, 0);
#endif
-
+#ifndef WITH_ARDUINO
if (result == OC_STACK_OK)
{
result = SRMInitSecureResources();
}
+#endif
+
+ if(result == OC_STACK_OK)
+ {
+ result = OCCreateResource(&deviceResource,
+ OC_RSRVD_RESOURCE_TYPE_DEVICE,
+ OC_RSRVD_INTERFACE_DEFAULT,
+ OC_RSRVD_DEVICE_URI,
+ NULL,
+ NULL,
+ OC_DISCOVERABLE);
+ if(result == OC_STACK_OK)
+ {
+ result = BindResourceInterfaceToResource((OCResource *)deviceResource,
+ OC_RSRVD_INTERFACE_READ);
+ }
+ }
+
+ if(result == OC_STACK_OK)
+ {
+ result = OCCreateResource(&platformResource,
+ OC_RSRVD_RESOURCE_TYPE_PLATFORM,
+ OC_RSRVD_INTERFACE_DEFAULT,
+ OC_RSRVD_PLATFORM_URI,
+ NULL,
+ NULL,
+ OC_DISCOVERABLE);
+ if(result == OC_STACK_OK)
+ {
+ result = BindResourceInterfaceToResource((OCResource *)platformResource,
+ OC_RSRVD_INTERFACE_READ);
+ }
+ }
return result;
}