Implement slow response feature.
authorDoug Hudson <douglas.hudson@intel.com>
Thu, 4 Dec 2014 21:37:22 +0000 (16:37 -0500)
committerDoug Hudson <douglas.hudson@intel.com>
Thu, 4 Dec 2014 21:37:22 +0000 (16:37 -0500)
commitd77842b219057f672a02b6a60a0320357419f86c
tree72aebb81ba10a20e5cdc1df843846997ec787295
parent0246565dfc944fb3dfb5326728c1f337729da0ec
Implement slow response feature.

This feature allows a resource entity handler to provide a "slow response"
to a client request.  That is, if a request is received but the server cannot
respond immediately (e.g. response data is not available), the server can
instead respond at a later time.  The same API is used for both immediate
and slow responses.

Updated collection's batch interface to aggregate responses of local resources
contained in the collection.  Note that the aggregate response only applies
to local resources, not remote resources.

This feature introduces a new C API, OCDoResponse and a new C++ API,
OCPlatform::sendResponse.  The C++ modifications also include a change to
the the signature of the applications entity handler.

Change-Id: Ic33ab0c7ff52481bed86e9a77319baa3813dd6cd
Signed-off-by: Doug Hudson <douglas.hudson@intel.com>
Signed-off-by: Yamin Al-Mousa <yamin.s.al-mousa@intel.com>
Signed-off-by: Sashi Penta <sashi.kumar.penta@intel.com>
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
Signed-off-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
Signed-off-by: Erich Keane <erich.keane@intel.com>
74 files changed:
resource/buildScript.mk
resource/csdk/SConscript
resource/csdk/libcoap-4.1.1/block.h
resource/csdk/libcoap-4.1.1/net.c
resource/csdk/libcoap-4.1.1/net.h
resource/csdk/libcoap-4.1.1/pdu.h
resource/csdk/libcoap-4.1.1/sec/netdtls.c
resource/csdk/makefile
resource/csdk/occoap/include/occoap.h
resource/csdk/occoap/include/occoaphelper.h
resource/csdk/occoap/src/occoap.c
resource/csdk/occoap/src/occoaphelper.c
resource/csdk/stack/include/internal/occollection.h
resource/csdk/stack/include/internal/ocobserve.h
resource/csdk/stack/include/internal/ocresource.h
resource/csdk/stack/include/internal/ocserverrequest.h [new file with mode: 0644]
resource/csdk/stack/include/internal/ocstackinternal.h
resource/csdk/stack/include/ocstack.h
resource/csdk/stack/samples/arduino/SimpleClientServer/ocserver/ocserver.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/common.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/makefile
resource/csdk/stack/samples/linux/SimpleClientServer/occlient.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/occlient.h
resource/csdk/stack/samples/linux/SimpleClientServer/occlientbasicops.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/occlientbasicops.h
resource/csdk/stack/samples/linux/SimpleClientServer/occlientcoll.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/occlientslow.cpp [new file with mode: 0644]
resource/csdk/stack/samples/linux/SimpleClientServer/occlientslow.h [new file with mode: 0644]
resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.h
resource/csdk/stack/samples/linux/SimpleClientServer/ocserverbasicops.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/ocserverbasicops.h
resource/csdk/stack/samples/linux/SimpleClientServer/ocservercoll.cpp
resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp [new file with mode: 0644]
resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.h [new file with mode: 0644]
resource/csdk/stack/samples/linux/secure/common.cpp
resource/csdk/stack/samples/linux/secure/ocserverbasicops.cpp
resource/csdk/stack/samples/linux/secure/ocserverbasicops.h
resource/csdk/stack/src/occollection.c
resource/csdk/stack/src/ocobserve.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/ocserverrequest.c [new file with mode: 0644]
resource/csdk/stack/src/ocstack.c
resource/csdk/stack/test/arduino/makefile
resource/csdk/stack/test/makefile
resource/csdk/stack/test/stacktests.cpp
resource/examples/fridgeserver.cpp
resource/examples/garageserver.cpp
resource/examples/ocicuc/light_resource.cpp
resource/examples/ocicuc/light_resource.hpp
resource/examples/presenceclient.cpp
resource/examples/presenceserver.cpp
resource/examples/roomserver.cpp
resource/examples/simpleclient.cpp
resource/examples/simpleclientHQ.cpp
resource/examples/simpleclientserver.cpp
resource/examples/simpleserver.cpp
resource/examples/simpleserverHQ.cpp
resource/examples/threadingsample.cpp
resource/include/IServerWrapper.h
resource/include/InProcServerWrapper.h
resource/include/OCApi.h
resource/include/OCPlatform.h
resource/include/OCPlatform_impl.h
resource/include/OCResourceRequest.h
resource/include/OCResourceResponse.h
resource/include/OutOfProcServerWrapper.h
resource/include/StringConstants.h
resource/src/InProcServerWrapper.cpp
resource/src/OCException.cpp
resource/src/OCPlatform.cpp
resource/src/OCPlatform_impl.cpp
resource/src/OCUtilities.cpp
resource/unittests/tests.cpp