iotivity 0.9.0
[platform/upstream/iotivity.git] / resource / releaseNotes / Oct14th2014.txt
1 Release notes
2 ****************************************************************************
3 Release date: Oct 14th, 2014.
4 OS: Ubuntu 12.0.4 and above
5 Requires boost version 1.55 to build.
6 Code buildable in gcc 4.6.3 and above.
7 NOTE: Boost is not distributed but should be installed in the Ubuntu machine.
8 *****************************************************************************
9
10 What is new?
11
12 --------------------------------------------
13 Class OCPlatform (Header file: OCPlatform.h)
14 --------------------------------------------
15
16 OCPlatform has new set of overloaded APIs for QoS support
17 - findResource
18 - notifyAllObservers
19 - notifyListOfObservers
20
21 These overloaded APIs allow app developers to specify QoS level. Please see 'Other notes' section for
22 details in QoS.
23
24 --------------------------------------------
25 Class OCResource (Header file: OCResource.h)
26 --------------------------------------------
27
28 OCResource has new set of overloaded APIs for QoS support
29 - get
30 - put
31 - post
32 - observe
33 - cancelObserve
34 - deleteResource
35
36 These overloaded APIs allow app developers to specify QoS level. Please see 'Other notes' section for
37 details in QoS.
38
39 *****************
40 deleteResource API
41 *****************
42
43 This new API allows the client to perform Delete operations on a resource.
44
45 NOTE: This applies to client side functionality.
46
47 *****************
48 setHeaderOptions API
49 *****************
50
51 This new API allows the client to set header options.
52
53 NOTE: Once headers options are set, it will be applicable to GET, PUT and observe request.
54 NOTE: This applies to client side functionality.
55
56 *****************
57 unsetHeaderOptions API
58 *****************
59
60 This new API allows the client to unset header options.
61 NOTE: This applies to client side functionality.
62
63 --------------------------------------------
64 Class OCHeaderOption (Header file: OCHeaderOption.h)
65 --------------------------------------------
66 OCHeaderOption class allows to create instances which comprises optionID
67 and optionData as members. These are used in setting Header options.
68 After creating instances of OCHeaderOptions, setHeaderOptions API
69 (in OCResource.h) can be used to set header Options.
70 NOTE: HeaderOptionID  is an unsigned integer value which MUST be within
71 range of 2048 to 3000 inclusive of lower and upper bound.
72 HeaderOptions instance creation fails if above condition is not satisfied.
73
74 Refer 'Other Notes' section for more details on Header options.
75 ------------
76 Other Notes:
77 ------------
78
79 Security model is still open.
80
81 Maximum length of URI supported is 64 bytes (sent from the client)
82 Maximum length of query supported is 64 bytes (sent from the client)
83 Maximum length of request and response from server for Ardunio is is 256 bytes
84 Maximum length of request and response from server for non-Ardunio is is 1024 bytes
85
86 OIC base supports Arduino WiFi shield.
87 This support has been tested with Arduino Mega 2560 and with Arduino 1.0.5 WiFi library.
88 Please refer to oic-resource/csdk/README file for building OIC base with WiFi support.
89
90 Bug fixes:
91 IOT-58
92
93 QoS
94 -QoSlevels support LowQoS, MidQoS, HighQoS and NaQoS.
95 -LowQoS and MidQoS are translated to non-conifirmable in CoAP.
96 -HighQoS translated to confirmable in CoAP.
97 -NaQoS allows the base to choose appropriate QoS level. It defaults to LowQoS.
98 -In observe notifications, it uses the same QoS level the observer used in the observe registration request.
99
100 On graceful server shutdown:
101 -Client-observers will now be notified when the resource they are observing is being deleted.
102 -Also applies for presence notifications.
103
104 Header options support:
105 - This support provides the client to send custom header options to server and vice-versa.
106 - Server handles the header options received from the clients in the entity handler.
107 - Header options sent from the server are received in get, put, post, delete, observe callbacks.
108 - Sample shown in fridge samples.
109
110 Entity handler modification:
111 -Returns OCEntityHandlerResult instead of void.
112 -OCEntityHandlerResult return types are OC_EH_RESOURCE_CREATED and OC_EH_RESOURCE_DELETED.
113
114 Exception handling:
115 -This release includes enhancements in exception handling.
116 -------------
117 How to build:
118 -------------
119
120 REFER https://oic-review.01.org/gerrit for more details on getting oic-resource repo.
121 If the code is not cloned:
122 Clone the oic-resource repo using this command: git clone oic:oic-resource
123 Clone the oic-utilities repo using this command: git clone oic:oic-utilities
124
125 NOTE: If the repo is already cloned, use 'git pull' inside oic-resource folder to get the latest code.
126
127 In repo oic-core, root folder ccf-opensource consists of 'OIC' folder.  Inside OIC folder there is a Makefile.
128
129 Before building, make sure to have contents from oic-utilities repo at the folder level where oic-resource is.
130
131 Inside oic-resource directory, use 'make'to build the entire OIC code. This would build the C++ SDK, core(i.e base) and samples.
132
133 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
134 are in 'oic-resource/debug'.
135
136 --------
137 Samples:
138 --------
139
140 Garage samples provide usage of OCRepresentation, get/set attribute values
141
142 oic-resource/examples/fridgeclient.cpp
143 oic-resource/examples/fridgeserver.cpp
144
145 Fridge samples provide usage of constructResourceObject API, std bind (for mapping request and responses), default
146 device entity handler, header options support and Delete operation.
147
148 Simpleserver and simpleclient samples provide examples for doing POST operation.
149
150 After building the code in oic-resource, executables for samples are in directory named 'oic-resource/samples/release'.
151 After building the code in oic-resource, executables are in directory named 'oic-resource/release'.
152 A sample for hosting a resource on a server and a sample for client for discovering resources are provided in the following paths:
153
154 Server sample location: oic-resource/examples/simpleserver.cpp
155 Client sample location: oic-resource/examples/simpleclient.cpp
156 Server and client mode (mode type both) location: oic-resource/examples/simpleclientserver.cpp
157
158 Sample with basic presence feature for server side: oic-resource/examples/presenceserver.cpp
159 Sample with basic presence feature for client side: oic-resource/examples/presenceclient.cpp