//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-// OCClient.cpp : Defines the entry point for the console application.
-//
+/**
+ * @file SampleConsumer.cpp
+ * @brief Defines the entry point for the sample consumer application about Resource Hosting.
+ */
#include <string>
#include <cstdlib>
#include "OCPlatform.h"
#include "OCApi.h"
#include <mutex>
+
using namespace OC;
const int SUCCESS_RESPONSE = OC_STACK_OK;
-#define OC_WELL_KNOWN_COORDINATING_QUERY "coap://224.0.1.187:5683/oc/core?rt=Resource.Hosting"
+#define OC_WELL_KNOWN_COORDINATING_QUERY "224.0.1.187:5683/oc/core?rt=Resource.Hosting"
#define OBSERVE 1
#define GET 2
#define DELETE 4
std::shared_ptr< OCResource > g_curResource;
+std::shared_ptr< OCResource > g_curObserveResource;
std::mutex curResourceLock;
+
OCStackResult nmfindResource(const std::string &host , const std::string &resourceName);
void onObserve(const HeaderOptions &headerOption , const OCRepresentation &rep , const int &eCode,
const int &sequenceNumber);
}
catch (OCException &e)
{
+ std::cout << "Exception for find resource : " << e.reason() << std::endl;
}
}
return;
}
+ if(g_curObserveResource == NULL)
+ {
+ g_curObserveResource = resource;
+ std::cout << "request for new observation" << std::endl;
+ }
+ else if(g_curObserveResource == g_curResource)
+ {
+ std::cout << "already registered same observation" << std::endl;
+ return;
+ }
+ else
+ {
+ std::cout << "change observed resource" << std::endl;
+ g_curObserveResource->cancelObserve();
+ g_curObserveResource = resource;
+ }
+
QueryParamsMap test;
if (OC_STACK_OK != resource->observe(ObserveType::Observe , test , &onObserve))
std::cout << "To Fail resource observe() process" << std::endl;
std::cout << "Created Platform..." << std::endl;
g_curResource = NULL;
+ g_curObserveResource = NULL;
findResourceCandidate();