1 //******************************************************************
3 // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 //******************************************************************
25 // Description: Implementation of the OCPlatform.
29 //*********************************************************************
30 #include <OCPlatform.h>
35 void Configure(const PlatformConfig& config)
37 OCPlatform_impl::Configure(config);
40 OCStackResult setDefaultDeviceEntityHandler(EntityHandler entityHandler)
42 return OCPlatform_impl::Instance().setDefaultDeviceEntityHandler(entityHandler);
45 OCStackResult notifyAllObservers(OCResourceHandle resourceHandle,
48 return OCPlatform_impl::Instance().notifyAllObservers(resourceHandle, QoS);
51 OCStackResult notifyAllObservers(OCResourceHandle resourceHandle)
53 return OCPlatform_impl::Instance().notifyAllObservers(resourceHandle);
56 OCStackResult notifyListOfObservers(OCResourceHandle resourceHandle,
57 ObservationIds& observationIds,
58 const std::shared_ptr<OCResourceResponse> pResponse)
60 return OCPlatform_impl::Instance().notifyListOfObservers(resourceHandle,
61 observationIds, pResponse);
64 OCStackResult notifyListOfObservers(OCResourceHandle resourceHandle,
65 ObservationIds& observationIds,
66 const std::shared_ptr<OCResourceResponse> pResponse,
69 return OCPlatform_impl::Instance().notifyListOfObservers(resourceHandle,
70 observationIds, pResponse, QoS);
74 OCResource::Ptr constructResourceObject(const std::string& host,
75 const std::string& uri, uint8_t connectivityType,
77 const std::vector<std::string>& resourceTypes,
78 const std::vector<std::string>& interfaces)
80 return OCPlatform_impl::Instance().constructResourceObject(host, uri, connectivityType,
82 resourceTypes, interfaces);
85 OCStackResult findResource(const std::string& host,
86 const std::string& resourceName,
87 uint8_t connectivityType,
88 FindCallback resourceHandler)
90 return OCPlatform_impl::Instance().findResource(host, resourceName,
91 connectivityType, resourceHandler);
94 OCStackResult findResource(const std::string& host,
95 const std::string& resourceName,
96 uint8_t connectivityType,
97 FindCallback resourceHandler, QualityOfService QoS)
99 return OCPlatform_impl::Instance().findResource(host, resourceName, connectivityType,
100 resourceHandler, QoS);
103 OCStackResult getDeviceInfo(const std::string& host,
104 const std::string& deviceURI,
105 uint8_t connectivityType,
106 FindDeviceCallback deviceInfoHandler)
108 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI,
109 connectivityType, deviceInfoHandler);
112 OCStackResult getDeviceInfo(const std::string& host,
113 const std::string& deviceURI,
114 uint8_t connectivityType,
115 FindDeviceCallback deviceInfoHandler,
116 QualityOfService QoS)
118 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI, connectivityType,
119 deviceInfoHandler, QoS);
123 OCStackResult findResource(const std::string& host,
124 const std::string& resourceName,
125 FindCallback resourceHandler)
127 //TODO-CA Revisit this API
129 return OCPlatform_impl::Instance().findResource(host, resourceName,
130 OC_WIFI | OC_ETHERNET, resourceHandler);
132 return OCPlatform_impl::Instance().findResource(host, resourceName, resourceHandler);
136 OCStackResult findResource(const std::string& host,
137 const std::string& resourceName,
138 FindCallback resourceHandler, QualityOfService QoS)
140 //TODO-CA Revisit this API
142 return OCPlatform_impl::Instance().findResource(host, resourceName,
143 OC_WIFI | OC_ETHERNET, resourceHandler, QoS);
145 return OCPlatform_impl::Instance().findResource(host, resourceName,
146 resourceHandler, QoS);
150 OCResource::Ptr constructResourceObject(const std::string& host,
151 const std::string& uri,
153 const std::vector<std::string>& resourceTypes,
154 const std::vector<std::string>& interfaces)
156 //TODO-CA Revisit this API
158 return OCPlatform_impl::Instance().constructResourceObject(host, uri, isObservable,
159 OC_WIFI | OC_ETHERNET, resourceTypes, interfaces);
161 return OCPlatform_impl::Instance().constructResourceObject(host, uri, isObservable,
162 resourceTypes, interfaces);
166 OCStackResult getDeviceInfo(const std::string& host,
167 const std::string& deviceURI,
168 FindDeviceCallback deviceInfoHandler)
171 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI, OC_WIFI | OC_ETHERNET,
174 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI, deviceInfoHandler);
178 OCStackResult getDeviceInfo(const std::string& host,
179 const std::string& deviceURI,
180 FindDeviceCallback deviceInfoHandler,
181 QualityOfService QoS)
184 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI, OC_WIFI | OC_ETHERNET,
185 deviceInfoHandler, QoS);
187 return OCPlatform_impl::Instance().getDeviceInfo(host, deviceURI, deviceInfoHandler, QoS);
192 OCStackResult registerResource(OCResourceHandle& resourceHandle,
193 std::string& resourceURI,
194 const std::string& resourceTypeName,
195 const std::string& resourceInterface,
196 EntityHandler entityHandler,
197 uint8_t resourceProperty)
199 return OCPlatform_impl::Instance().registerResource(resourceHandle, resourceURI,
200 resourceTypeName, resourceInterface,
201 entityHandler, resourceProperty);
204 OCStackResult registerResource(OCResourceHandle& resourceHandle,
205 const std::shared_ptr< OCResource > resource)
207 return OCPlatform_impl::Instance().registerResource(resourceHandle, resource);
210 OCStackResult registerDeviceInfo(const OCDeviceInfo deviceInfo)
212 return OCPlatform_impl::Instance().registerDeviceInfo(deviceInfo);
215 OCStackResult unregisterResource(const OCResourceHandle& resourceHandle)
217 return OCPlatform_impl::Instance().unregisterResource(resourceHandle);
220 OCStackResult unbindResource(OCResourceHandle collectionHandle,
221 OCResourceHandle resourceHandle)
223 return OCPlatform_impl::Instance().unbindResource(collectionHandle, resourceHandle);
226 OCStackResult unbindResources(const OCResourceHandle collectionHandle,
227 const std::vector<OCResourceHandle>& resourceHandles
230 return OCPlatform_impl::Instance().unbindResources(collectionHandle, resourceHandles);
233 OCStackResult bindResource(const OCResourceHandle collectionHandle,
234 const OCResourceHandle resourceHandle)
236 return OCPlatform_impl::Instance().bindResource(collectionHandle, resourceHandle);
239 OCStackResult bindResources(const OCResourceHandle collectionHandle,
240 const std::vector<OCResourceHandle>& resourceHandles
243 return OCPlatform_impl::Instance().bindResources(collectionHandle, resourceHandles);
246 OCStackResult bindTypeToResource(const OCResourceHandle& resourceHandle,
247 const std::string& resourceTypeName)
249 return OCPlatform_impl::Instance().bindTypeToResource(resourceHandle,resourceTypeName);
252 OCStackResult bindInterfaceToResource(const OCResourceHandle& resourceHandle,
253 const std::string& resourceInterfaceName)
255 return OCPlatform_impl::Instance().bindInterfaceToResource(resourceHandle,
256 resourceInterfaceName);
259 OCStackResult startPresence(const unsigned int announceDurationSeconds)
261 return OCPlatform_impl::Instance().startPresence(announceDurationSeconds);
264 OCStackResult stopPresence()
266 return OCPlatform_impl::Instance().stopPresence();
270 OCStackResult subscribePresence(OCPresenceHandle& presenceHandle,
271 const std::string& host,
272 uint8_t connectivityType,
273 SubscribeCallback presenceHandler)
275 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
276 connectivityType, presenceHandler);
279 OCStackResult subscribePresence(OCPresenceHandle& presenceHandle,
280 const std::string& host,
281 const std::string& resourceType,
282 uint8_t connectivityType,
283 SubscribeCallback presenceHandler)
285 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
286 resourceType, connectivityType, presenceHandler);
289 OCStackResult subscribePresence(OCPresenceHandle& presenceHandle,
290 const std::string& host,
291 SubscribeCallback presenceHandler)
293 //TODO-CA Revisit this API
295 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
296 OC_WIFI | OC_ETHERNET, presenceHandler);
298 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
303 OCStackResult subscribePresence(OCPresenceHandle& presenceHandle,
304 const std::string& host,
305 const std::string& resourceType,
306 SubscribeCallback presenceHandler)
308 //TODO-CA Revisit this API
310 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
311 resourceType, OC_WIFI | OC_ETHERNET,
314 return OCPlatform_impl::Instance().subscribePresence(presenceHandle, host,
315 resourceType, presenceHandler);
319 OCStackResult unsubscribePresence(OCPresenceHandle presenceHandle)
321 return OCPlatform_impl::Instance().unsubscribePresence(presenceHandle);
324 OCStackResult sendResponse(const std::shared_ptr<OCResourceResponse> pResponse)
326 return OCPlatform_impl::Instance().sendResponse(pResponse);
328 } // namespace OCPlatform