// TODO: @Erich do something with result if failed?
}
- //std::this_thread::yield();
// To minimize CPU utilization we may wish to do this with sleep
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
{
if(clientResponse->result == OC_STACK_OK)
{
- ListenContext* context = (ListenContext*)ctx;
+ ListenContext* context = static_cast<ListenContext*>(ctx);
std::stringstream requestStream;
requestStream << clientResponse->resJSONPayload;
}
}
- return OC_STACK_DELETE_TRANSACTION;
+ return OC_STACK_KEEP_TRANSACTION;
}
else
context->callback = callback;
context->clientWrapper = shared_from_this();
- cbdata->context = (void*)context;
+ cbdata->context = static_cast<void*>(context);
cbdata->cb = listenCallback;
{
{
std::stringstream requestStream;
requestStream<<clientResponse->resJSONPayload;
-
if(strlen((char*)clientResponse->resJSONPayload) == 0)
{
return AttributeMap();
values.push_back(value);
attrs[name] = values;
}
-
return attrs;
}
OCStackApplicationResult getResourceCallback(void* ctx, OCDoHandle handle, OCClientResponse* clientResponse)
{
- if(clientResponse->result == OC_STACK_OK)
- {
- GetSetContext* context = (GetSetContext*)ctx;
- AttributeMap attrs = parseGetSetCallback(clientResponse);
+ GetSetContext* context = static_cast<GetSetContext*>(ctx);
- std::thread exec(context->callback,attrs, 200);
- exec.detach();
+ AttributeMap attrs;
- return OC_STACK_DELETE_TRANSACTION;
- }
- else
+ if(clientResponse->result == OC_STACK_OK)
{
- std::cout<<"listen Callback got failed result: " << clientResponse->result<<std::endl;
- return OC_STACK_DELETE_TRANSACTION;
- }
+ attrs = parseGetSetCallback(clientResponse);
+ }
+
+ std::thread exec(context->callback, attrs, clientResponse->result);
+ exec.detach();
+ return OC_STACK_DELETE_TRANSACTION;
}
- OCStackResult InProcClientWrapper::GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback)
+ OCStackResult InProcClientWrapper::GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback)
{
OCStackResult result;
OCCallbackData* cbdata = new OCCallbackData();
GetSetContext* ctx = new GetSetContext();
ctx->callback = callback;
- cbdata->context = (void*)ctx;
+ cbdata->context = static_cast<void*>(ctx);
cbdata->cb = &getResourceCallback;
// TODO: in the future the cstack should be combining these two strings!
OCStackApplicationResult setResourceCallback(void* ctx, OCDoHandle handle, OCClientResponse* clientResponse)
{
- if(clientResponse->result == OC_STACK_OK)
- {
- GetSetContext* context = (GetSetContext*)ctx;
- AttributeMap attrs = parseGetSetCallback(clientResponse);
-
- std::thread exec(context->callback, attrs, 200);
- exec.detach();
+ GetSetContext* context = static_cast<GetSetContext*>(ctx);
+ AttributeMap attrs;
- return OC_STACK_DELETE_TRANSACTION;
- }
- else
+ if(clientResponse->result == OC_STACK_OK)
{
- std::cout<<"listen Callback got failed result: " << clientResponse->result<<std::endl;
- return OC_STACK_DELETE_TRANSACTION;
+ attrs = parseGetSetCallback(clientResponse);
}
+ std::thread exec(context->callback, attrs, clientResponse->result);
+ exec.detach();
+ return OC_STACK_DELETE_TRANSACTION;
}
std::string InProcClientWrapper::assembleSetResourceUri(std::string uri, const QueryParamsMap& queryParams)
return payload.str();
}
- OCStackResult InProcClientWrapper::SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap&,const int&)>& callback)
+ OCStackResult InProcClientWrapper::SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap,const int)>& callback)
{
OCStackResult result;
OCCallbackData* cbdata = new OCCallbackData();
// TODO: end of above
- cbdata->context = (void*)ctx;
+ cbdata->context = static_cast<void*>(ctx);
{
std::lock_guard<std::mutex> lock(m_csdkLock);
OCDoHandle handle;
};
OCStackApplicationResult observeResourceCallback(void* ctx, OCDoHandle handle, OCClientResponse* clientResponse)
- {
+ {
+ ObserveContext* context = static_cast<ObserveContext*>(ctx);
+ AttributeMap attrs;
if(clientResponse->result == OC_STACK_OK)
{
- ObserveContext* context = (ObserveContext*)ctx;
- AttributeMap attrs = parseGetSetCallback(clientResponse);
-
- std::thread exec(context->callback, attrs, 200);
- exec.detach();
- return OC_STACK_KEEP_TRANSACTION;
- }
- else
- {
- std::cout<<"Observe Callback got failed result: "<<clientResponse->result << std::endl;
- return OC_STACK_KEEP_TRANSACTION;
+ attrs = parseGetSetCallback(clientResponse);
}
+ std::thread exec(context->callback, attrs, clientResponse->result);
+ exec.detach();
+ return OC_STACK_KEEP_TRANSACTION;
}
- OCStackResult InProcClientWrapper::ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback)
+ OCStackResult InProcClientWrapper::ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback)
{
OCStackResult result;
OCCallbackData* cbdata = new OCCallbackData();
ObserveContext* ctx = new ObserveContext();
ctx->callback = callback;
- cbdata->context = (void*)ctx;
+ cbdata->context = static_cast<void*>(ctx);
cbdata->cb = &observeResourceCallback;
ostringstream os;
OCStackApplicationResult unobserveResourceCallback(void* ctx, OCDoHandle handle, OCClientResponse* clientResponse)
{
- std::cout << "Unobserve callback called...."<<std::endl;
- UnobserveContext* context = (UnobserveContext*)ctx;
- if(clientResponse->result == OC_STACK_OK)
- {
- std::thread exec(context->callback, 200);
- exec.detach();
- return OC_STACK_DELETE_TRANSACTION;
- }
- else
- {
- std::cout<<"Unobserve callback got failed result: "<<clientResponse->result <<std::endl;
- std::thread exec(context->callback, clientResponse->result);
- exec.detach();
- return OC_STACK_DELETE_TRANSACTION;
- }
+ UnobserveContext* context = static_cast<UnobserveContext*>(ctx);
+ std::thread exec(context->callback, clientResponse->result);
+ exec.detach();
+ return OC_STACK_DELETE_TRANSACTION;
}
OCStackResult InProcClientWrapper::CancelObserveResource(OCDoHandle handle, const std::string& host, const std::string& uri)
{
{
}
- OCStackResult OCResource::get(std::function<void(const AttributeMap&, const int&)> attributeHandler)
+ OCStackResult OCResource::get(std::function<void(const AttributeMap, const int)> attributeHandler)
{
return m_clientWrapper->GetResourceAttributes(m_host, m_uri, attributeHandler);
}
- OCStackResult OCResource::put(const AttributeMap& attributeMap, const QueryParamsMap& queryParametersMap, std::function<void(const AttributeMap&, const int&)> attributeHandler)
+ OCStackResult OCResource::put(const AttributeMap& attributeMap, const QueryParamsMap& queryParametersMap, std::function<void(const AttributeMap, const int)> attributeHandler)
{
return m_clientWrapper->SetResourceAttributes(m_host, m_uri, attributeMap, queryParametersMap, attributeHandler);
}
- OCStackResult OCResource::observe(std::function<void(const AttributeMap&, const int&)> observeHandler)
+ OCStackResult OCResource::observe(std::function<void(const AttributeMap, const int)> observeHandler)
{
if(m_observeHandle != nullptr)
{
using namespace OC;
-const int SUCCESS_RESPONSE = 200;
+const int SUCCESS_RESPONSE = 0;
std::shared_ptr<OCResource> curResource;
int observe_count()
return ++oc;
}
-void onObserve(const AttributeMap& attributeMap, const int& eCode)
+void onObserve(const AttributeMap attributeMap, const int eCode)
{
if(eCode == SUCCESS_RESPONSE)
{
}
// callback handler on PUT request
-void onPut(const AttributeMap& attributeMap, const int& eCode)
+void onPut(const AttributeMap attributeMap, const int eCode)
{
if(eCode == SUCCESS_RESPONSE)
{
std::cout << "PUT request was successful" << std::endl;
-
+ std::cout << "Put count: "<< attributeMap.size()<<std::endl;
for(auto it = attributeMap.begin(); it != attributeMap.end(); ++it)
{
std::cout << "\tAttribute name: "<< it->first << " value: ";
}
// callback handler on GET request
-void onGet(const AttributeMap& attributeMap, const int& eCode)
+void onGet(const AttributeMap attributeMap, const int eCode)
{
if(eCode == SUCCESS_RESPONSE)
{
typedef std::shared_ptr<IClientWrapper> Ptr;
virtual OCStackResult ListenForResource(const std::string& serviceUrl, const std::string& resourceType,
std::function<void(std::shared_ptr<OCResource>)>& callback) = 0;
- virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback)=0;
- virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap&,const int&)>& callback)=0;
- virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback)=0;
+ virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback)=0;
+ virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap,const int)>& callback)=0;
+ virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback)=0;
virtual OCStackResult CancelObserveResource(OCDoHandle handle, const std::string& host, const std::string& uri)=0;
virtual ~IClientWrapper(){}
virtual ~InProcClientWrapper();
virtual OCStackResult ListenForResource(const std::string& serviceUrl, const std::string& resourceType, std::function<void(std::shared_ptr<OCResource>)>& callback);
- virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback);
- virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap&,const int&)>& callback);
- virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback);
+ virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback);
+ virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap,const int)>& callback);
+ virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback);
virtual OCStackResult CancelObserveResource(OCDoHandle handle, const std::string& host, const std::string& uri);
// Note: this should never be called by anyone but the handler for the listen command. It is public becuase that needs to be a non-instance callback
* @return OCStackResult return value of this API. Returns OC_STACK_OK if success.
* NOTE: OCStackResult is defined in ocstack.h.
*/
- OCStackResult get(std::function<void(const AttributeMap&, const int&)> attributeHandler);
+ OCStackResult get(std::function<void(const AttributeMap, const int)> attributeHandler);
/**
* Function to set the attributes of a resource (via PUT)
* @return OCStackResult return value of this API. Returns OC_STACK_OK if success.
* NOTE: OCStackResult is defined in ocstack.h.
*/
- OCStackResult put(const AttributeMap& attributeMap, const QueryParamsMap& queryParametersMap, std::function< void(const AttributeMap&,const int&)> attributeHandler);
+ OCStackResult put(const AttributeMap& attributeMap, const QueryParamsMap& queryParametersMap, std::function< void(const AttributeMap,const int)> attributeHandler);
/**
* Function to set observation on the resource
* @return OCStackResult return value of this API. Returns OC_STACK_OK if success.
* NOTE: OCStackResult is defined in ocstack.h.
*/
- OCStackResult observe(std::function<void(const AttributeMap&, const int&)> observeHandler);
+ OCStackResult observe(std::function<void(const AttributeMap, const int)> observeHandler);
/**
* Function to cancel the observation on the resource
OutOfProcClientWrapper(PlatformConfig cfg) { }
virtual OCStackResult ListenForResource(const std::string& serviceUrl, const std::string& resourceType, std::function<void(std::shared_ptr<OCResource>)>& callback) {return OC_STACK_NOTIMPL;}
- virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback){return OC_STACK_NOTIMPL;}
- virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap&,const int&)>& callback){return OC_STACK_NOTIMPL;}
- virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap&, const int&)>& callback){return OC_STACK_NOTIMPL;}
+ virtual OCStackResult GetResourceAttributes(const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback){return OC_STACK_NOTIMPL;}
+ virtual OCStackResult SetResourceAttributes(const std::string& host, const std::string& uri, const AttributeMap& attributes, const QueryParamsMap& queryParams, std::function<void(const AttributeMap,const int)>& callback){return OC_STACK_NOTIMPL;}
+ virtual OCStackResult ObserveResource(OCDoHandle* handle, const std::string& host, const std::string& uri, std::function<void(const AttributeMap, const int)>& callback){return OC_STACK_NOTIMPL;}
virtual OCStackResult CancelObserveResource(OCDoHandle handle, const std::string& host, const std::string& uri){return OC_STACK_NOTIMPL;}
virtual std::shared_ptr<OCResource> parseOCResource(IClientWrapper::Ptr clientWrapper, const std::string& host, const boost::property_tree::ptree resourceNode) {return nullptr;}