Release notes
****************************************************************************
Release date: Oct 31st, 2014.
OS: Ubuntu 12.0.4 and above
Requires boost version 1.55 to build.
Code buildable in gcc 4.6.3 and above.
NOTE: Boost is not distributed but should be installed in the Ubuntu machine.
*****************************************************************************

Release commit number: c8ba162fe83db3832ae889a0cb31904d888826d1

What is new?

--------------------------------------------
Class OCPlatform (Header file: OCPlatform.h)
--------------------------------------------
This release includes support for using OCPlatform instance in multiple threads.
OCPlatform functions are now supported to be called from multiple threads.
Applications need not create OCPlatform object explicitly.


***************
Configure API
***************
Applications can set the PlatformConfig and then invoke new API "Configure" in OCPlatform.h.
NOTE: This API is optional. First time an OCPlatform API is called, stack creates the singleton
instance internally. After which, setting the configuration will have no effect.

NOTE: OCPlatform functions can be called without OCPlatform instance.
Sample:

OCStackResult result = OCPlatform::registerResource(... );

NOTE: For clarity, registerResource parameters are not shown above.
NOTE: Iotivity stack internally creates a singleton instance.
NOTE: C++ sample applications are updated accordingly. Please refer oic-resource/examples

------------
Other Notes:
------------

Security model is still open.

Maximum length of URI supported is 64 bytes (sent from the client)
Maximum length of query supported is 64 bytes (sent from the client)
Maximum length of request and response from server for Ardunio is is 256 bytes
Maximum length of request and response from server for non-Ardunio is is 1024 bytes

OIC base supports Arduino WiFi shield.
This support has been tested with Arduino Mega 2560 and with Arduino 1.0.5 WiFi library.
Please refer to oic-resource/csdk/README file for building OIC base with WiFi support.

Minor bug fixes done.

Simple attribute sample update:
This release has updates to roomserver and roomclient applications to demonstrate simple
attribute support in collections.

C++ unit test infrastructure:
This release includes infrastructure for C++ unit tests (oic-resource/unittests)
-------------
How to build:
-------------

REFER https://oic-review.01.org/gerrit for more details on getting oic-resource repo.
If the code is not cloned:
Clone the oic-resource repo using this command: git clone oic:oic-resource
Clone the oic-utilities repo using this command: git clone oic:oic-utilities

NOTE: If the repo is already cloned, use 'git pull' inside oic-resource folder to get the latest code.

In repo oic-core, root folder ccf-opensource consists of 'OIC' folder.  Inside OIC folder there is a Makefile.

Before building, make sure to have contents from oic-utilities repo at the folder level where oic-resource is.

Inside oic-resource directory, use 'make'to build the entire OIC code. This would build the C++ SDK, core(i.e base) and samples.

Use 'make BUILD=debug' to build the entire OIC code in debug mode. This would build the C++ SDK, core(i.e base) and samples. All the executables for debug build
are in 'oic-resource/debug'.

--------
Samples:
--------

A basic sample for hosting a resource on a server and a sample for client for discovering resources are provided here:
Simple server sample location: oic-resource/examples/simpleserver.cpp
Simple client sample location: oic-resource/examples/simpleclient.cpp
Server and client mode (mode type both) location: oic-resource/examples/simpleclientserver.cpp
Simpleserver and simpleclient samples also provide examples for doing POST operation.

Garage samples provide usage of OCRepresentation, get/set attribute values
oic-resource/examples/garageclient.cpp
oic-resource/examples/garageserver.cpp

Fridge samples provide usage of constructResourceObject API, std bind (for mapping request and responses), default
device entity handler, header options support and Delete operation.
oic-resource/examples/fridgeclient.cpp
oic-resource/examples/fridgeserver.cpp

Presence samples provides examples to use presence APIs
Sample with basic presence feature for server side: oic-resource/examples/presenceserver.cpp
Sample with basic presence feature for client side: oic-resource/examples/presenceclient.cpp

Room samples provides examples to use resource collection.
oic-resource/examples/roomclient.cpp
oic-resource/examples/roomserver.cpp

After building the code in oic-resource, executables for samples are in directory named 'oic-resource/samples/release'.
After building the code in oic-resource, executables are in directory named 'oic-resource/release'.

