本文整理汇总了C++中OCRepresentation::hasAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ OCRepresentation::hasAttribute方法的具体用法?C++ OCRepresentation::hasAttribute怎么用?C++ OCRepresentation::hasAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OCRepresentation
的用法示例。
在下文中一共展示了OCRepresentation::hasAttribute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: put
void SensorResource::put(OCRepresentation rep)
{
if (rep.hasAttribute("name")) {
m_sensorName = rep.getValue<std::string>("name");
}
if (rep.hasAttribute("address")) {
m_sensorAddr = rep.getValue<std::string>("address");
}
std::cout << "Registered sensor name : " << m_sensorName << " address : " << m_sensorAddr<< std::endl;
if ((!m_sensorName.empty()) && (!m_sensorAddr.empty())) {
if (m_sensorMap.find(m_sensorName) == m_sensorMap.end()) {
m_sensorMap.insert(SensorMap::value_type(m_sensorName, m_sensorAddr));
}
}
else {
return;
}
if (m_sensorName == "gas") {
m_gas.s_name = m_sensorName;
}
else if (m_sensorName == "fan") {
m_fan.s_name = m_sensorName;
}
else if (m_sensorName == "led") {
m_led.s_name = m_sensorName;
}
else if (m_sensorName == "pri") {
m_pri.s_name = m_sensorName;
}
StartMonitor(m_sensorAddr);
}
示例2: onObserve
void SensorResource::onObserve(const HeaderOptions headerOptions, const OCRepresentation& rep,
const int& eCode, const int& sequenceNumber)
{
int density = 0;
int ledColor = 0;
bool motion = false;
try
{
if(eCode == OC_STACK_OK) {
if (rep.hasAttribute("density")) {
m_gas.s_active = true;
rep.getValue("density", density);
std::cout << "\tdensity: " << density << std::endl;
if (m_rr->m_kitchenMonitor) {
std::cout << "Kitchen Monitor is enabled" << std::endl;
executeGasRule(density);
}
}
if (rep.hasAttribute("fanstate")) {
m_fan.s_active = true;
std::string state = rep.getValue<std::string>("fanstate");
m_fanState = (state == "on" ? true:false);
std::cout << "\tfanstate: " << m_fanState << std::endl;
}
if (rep.hasAttribute("ledColor")) {
m_led.s_active = true;
rep.getValue("ledColor", ledColor);
std::cout << "\tledColor: " << ledColor << std::endl;
}
if (rep.hasAttribute("motion")) {
m_pri.s_active = true;
rep.getValue("motion", motion);
std::cout << "\tmotion: " << motion << std::endl;
PutCallback p (std::bind(&SensorResource::onPut, this, PH::_1, PH::_2, PH::_3));
if ((motion == true) && (m_led.s_active == true)) {
OCRepresentation ledrep;
ledrep.setValue("ledColor", BLUE);
m_led.s_resource->put(ledrep, QueryParamsMap(), p);
}
}
}
else {
std::cout << "onObserve Response error: " << eCode << std::endl;
}
}
catch(std::exception& e) {
std::cout << "Exception: " << e.what() << " in onObserve" << std::endl;
}
}
示例3: onPost
void onPost(const HeaderOptions& headerOptions, const OCRepresentation& rep,
const int eCode)
{
printf("\nonPost\n");
if (rep.hasAttribute("ActionSet"))
{
std::string plainText;
if (rep.getValue("ActionSet", plainText))
{
ActionSet *actionset = groupMgr->getActionSetfromString(plainText);
if (actionset != NULL)
{
cout << endl << "\tACTIONSET NAME :: "
<< actionset->actionsetName << endl;
for (auto actIter = actionset->listOfAction.begin();
actIter != actionset->listOfAction.end(); ++actIter)
{
cout << "\t\tTARGET :: " << (*actIter)->target << endl;
for (auto capaIter = (*actIter)->listOfCapability.begin();
capaIter != (*actIter)->listOfCapability.end();
++capaIter)
{
cout << "\t\t\t" << (*capaIter)->capability << " :: "
<< (*capaIter)->status << endl;
}
}
}
delete actionset;
}
// printf( "\tPlain Text :: %s\n", plainText.c_str() );
}
else if (rep.hasAttribute("DoAction"))
{
std::string plainText;
if (rep.getValue("DoAction", plainText))
{
cout << "\t" << plainText << endl;
}
}
else
{
}
}
示例4: onPost
void onPost(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode)
{
printf("\nonPost\n");
std::vector< OCRepresentation > children = rep.getChildren();
cout << "\n\n\nCHILD RESOURCE OF GROUP" << endl;
for (auto iter = children.begin(); iter != children.end(); ++iter)
{
std::string power;
(*iter).getValue("power", power);
cout << "\tURI :: " << (*iter).getUri() << endl;
cout << "\t\tpower :: " << power << endl;
}
if (rep.hasAttribute("ActionSet"))
{
std::string plainText;
rep.getValue("ActionSet", plainText);
printf("\tPlain Text :: %s\n", plainText.c_str());
}
else
{
printf("Not found ActionSet\n");
}
}
示例5: onGet
void onGet(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode)
{
pthread_mutex_lock(&mutex_lock);
isWaiting = 0;
pthread_mutex_unlock(&mutex_lock);
if (eCode != SUCCESS_RESPONSE)
{
return ;
}
std::cout << "\tResource URI: " << rep.getUri() << std::endl;
if (rep.hasAttribute("loc"))
std::cout << "\t\tLocation:" << rep.getValue< std::string >("loc") << std::endl;
if (rep.hasAttribute("st"))
std::cout << "\t\tSystemTime:" << rep.getValue< std::string >("st") << std::endl;
if (rep.hasAttribute("c"))
std::cout << "\t\tCurrency:" << rep.getValue< std::string >("c") << std::endl;
if (rep.hasAttribute("r"))
std::cout << "\t\tRegion:" << rep.getValue< std::string >("r") << std::endl;
}
示例6: LOGD
JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcRepresentation_hasAttribute
(JNIEnv *env, jobject thiz, jstring jstr)
{
LOGD("OcRepresentation_hasAttribute");
if (!jstr)
{
ThrowOcException(OC_STACK_INVALID_PARAM, "attributeKey cannot be null");
return false;
}
OCRepresentation *rep = JniOcRepresentation::getOCRepresentationPtr(env, thiz);
if (!rep) return false;
std::string str = env->GetStringUTFChars(jstr, nullptr);
return rep->hasAttribute(str);
}
示例7: onPost
void onPost(const HeaderOptions& /*headerOptions*/,
const OCRepresentation& rep, const int eCode)
{
try
{
if(eCode == OC_STACK_OK || eCode == OC_STACK_RESOURCE_CREATED)
{
std::cout << "POST request was successful" << std::endl;
if(rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("state", mylight.m_state);
rep.getValue("power", mylight.m_power);
rep.getValue("name", mylight.m_name);
//std::cout << "\tstate: " << mylight.m_state << std::endl;
//std::cout << "\tpower: " << mylight.m_power << std::endl;
//std::cout << "\tname: " << mylight.m_name << std::endl;
}
OCRepresentation rep2;
std::cout << "Posting light representation..."<<std::endl;
mylight.m_state = true;
mylight.m_power = 55;
rep2.setValue("state", mylight.m_state);
rep2.setValue("power", mylight.m_power);
curResource->post(rep2, QueryParamsMap(), &onPost2);
}
else
{
std::cout << "onPost Response error: " << eCode << std::endl;
std::exit(-1);
}
}
catch(std::exception& e)
{
std::cout << "Exception: " << e.what() << " in onPost" << std::endl;
}
}
示例8: onPost
void onPost(const HeaderOptions &headerOptions, const OCRepresentation &rep, const int eCode)
{
(void)headerOptions;
try
{
if (eCode == OC_STACK_OK || eCode == OC_STACK_RESOURCE_CREATED)
{
std::cout << "POST request was successful" << std::endl;
if (rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("on-off", mylight.m_on_off);
rep.getValue("color", mylight.m_color);
rep.getValue("dim", mylight.m_dim);
std::cout << "\ton-off: " << mylight.m_on_off << std::endl;
std::cout << "\tcolor: " << mylight.m_color << std::endl;
std::cout << "\tdim: " << mylight.m_dim << std::endl;
}
OCRepresentation rep2;
std::cout << "Posting light representation..." << std::endl;
mylight.m_on_off = true;
rep2.setValue("on-off", mylight.m_on_off);
curResource->post(rep2, QueryParamsMap(), &onPost2);
}
else
{
std::cout << "onPost Response error: " << eCode << std::endl;
}
}
catch (std::exception &e)
{
std::cout << "Exception: " << e.what() << " in onPost" << std::endl;
}
}
示例9: onPost2
void onPost2(const HeaderOptions& /*headerOptions*/,
const OCRepresentation& rep, const int eCode)
{
try
{
if(eCode == OC_STACK_OK || eCode == OC_STACK_RESOURCE_CREATED)
{
std::cout << "POST request was successful" << std::endl;
if(rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("state", mylight.m_state);
rep.getValue("power", mylight.m_power);
rep.getValue("name", mylight.m_name);
//std::cout << "\tstate: " << mylight.m_state << std::endl;
//std::cout << "\tpower: " << mylight.m_power << std::endl;
//std::cout << "\tname: " << mylight.m_name << std::endl;
}
if (OBSERVE_TYPE_TO_USE == ObserveType::Observe)
std::cout << std::endl << "Observe is used." << std::endl << std::endl;
else if (OBSERVE_TYPE_TO_USE == ObserveType::ObserveAll)
std::cout << std::endl << "ObserveAll is used." << std::endl << std::endl;
curResource->observe(OBSERVE_TYPE_TO_USE, QueryParamsMap(), &onObserve);
}
else
{
std::cout << "onPost2 Response error: " << eCode << std::endl;
std::exit(-1);
}
}
catch(std::exception& e)
{
std::cout << "Exception: " << e.what() << " in onPost2" << std::endl;
}
}
示例10: onPut
void SensorResource::onPut(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode)
{
try {
if(eCode == OC_STACK_OK) {
if (rep.hasAttribute("fanstate")) {
std::string state = rep.getValue<std::string>("fanstate");
m_fanState = (state == "on" ? true:false);
std::cout << "\tfanstate: " << m_fanState << std::endl;
}
}
else {
std::cout << "onPut Response error: " << eCode << std::endl;
}
}
catch(std::exception& e) {
std::cout << "Exception: " << e.what() << " in onPut" << std::endl;
}
}
示例11: onPost2
void onPost2(const HeaderOptions &headerOptions, const OCRepresentation &rep, const int eCode)
{
(void)headerOptions;
try
{
if (eCode == OC_STACK_OK || eCode == OC_STACK_RESOURCE_CREATED)
{
std::cout << "POST request was successful" << std::endl;
if (rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("on-off", mylight.m_on_off);
rep.getValue("color", mylight.m_color);
rep.getValue("dim", mylight.m_dim);
std::cout << "\ton-off: " << mylight.m_on_off << std::endl;
std::cout << "\tcolor: " << mylight.m_color << std::endl;
std::cout << "\tdim: " << mylight.m_dim << std::endl;
}
if (OBSERVE_TYPE_TO_USE == ObserveType::Observe)
std::cout << std::endl << "Observe is used." << std::endl << std::endl;
else if (OBSERVE_TYPE_TO_USE == ObserveType::ObserveAll)
std::cout << std::endl << "ObserveAll is used." << std::endl << std::endl;
curResource->observe(OBSERVE_TYPE_TO_USE, QueryParamsMap(), &onObserve);
}
else
{
std::cout << "onPost2 Response error: " << eCode << std::endl;
}
}
catch (std::exception &e)
{
std::cout << "Exception: " << e.what() << " in onPost2" << std::endl;
}
}
示例12: onPost
void onPost(const HeaderOptions& /*headerOptions*/,
const OCRepresentation& rep, const int eCode)
{
if(eCode == SUCCESS_RESPONSE)
{
std::cout << "POST request was successful" << std::endl;
if(rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("state", mylight.m_state);
rep.getValue("power", mylight.m_power);
rep.getValue("name", mylight.m_name);
std::cout << "\tstate: " << mylight.m_state << std::endl;
std::cout << "\tpower: " << mylight.m_power << std::endl;
std::cout << "\tname: " << mylight.m_name << std::endl;
}
OCRepresentation rep2;
std::cout << "Posting light representation..."<<std::endl;
mylight.m_state = true;
mylight.m_power = 55;
rep2.setValue("state", mylight.m_state);
rep2.setValue("power", mylight.m_power);
sleep(1);
curResource->post(rep2, QueryParamsMap(), &onPost2, OC::QualityOfService::HighQos);
}
else
{
std::cout << "onPost Response error: " << eCode << std::endl;
std::exit(-1);
}
}
示例13: onPost2
void onPost2(const HeaderOptions& /*headerOptions*/, const OCRepresentation& rep, const int eCode)
{
if(eCode == SUCCESS_RESPONSE)
{
std::cout << "POST request was successful" << std::endl;
if(rep.hasAttribute("createduri"))
{
std::cout << "\tUri of the created resource: "
<< rep.getValue<std::string>("createduri") << std::endl;
}
else
{
rep.getValue("state", mylight.m_state);
rep.getValue("power", mylight.m_power);
rep.getValue("name", mylight.m_name);
std::cout << "\tstate: " << mylight.m_state << std::endl;
std::cout << "\tpower: " << mylight.m_power << std::endl;
std::cout << "\tname: " << mylight.m_name << std::endl;
}
if (OBSERVE_TYPE_TO_USE == ObserveType::Observe)
std::cout << std::endl << "Observe is used." << std::endl << std::endl;
else if (OBSERVE_TYPE_TO_USE == ObserveType::ObserveAll)
std::cout << std::endl << "ObserveAll is used." << std::endl << std::endl;
sleep(1);
curResource->observe(OBSERVE_TYPE_TO_USE, QueryParamsMap(), &onObserve,
OC::QualityOfService::HighQos);
}
else
{
std::cout << "onPost2 Response error: " << eCode << std::endl;
std::exit(-1);
}
}
示例14: printRepresentation
void printRepresentation(const OCRepresentation& rep)
{
// Check if attribute "name" exists, and then getValue
if(rep.hasAttribute("name"))
{
myGarage.m_name = rep.getValue<std::string>("name");
}
std::cout << "\tname: " << myGarage.m_name << std::endl;
// You can directly try to get the value. this function
// return false if there is no attribute "state"
if(!rep.getValue("state", myGarage.m_state))
{
std::cout << "Attribute state doesn't exist in the representation\n";
}
std::cout << "\tstate: " << myGarage.m_state << std::endl;
OCRepresentation rep2 = rep;
std::cout << "Number of attributes in rep2: "
<< rep2.numberOfAttributes() << std::endl;
if(rep2.erase("name"))
{
std::cout << "attribute: name, was removed successfully from rep2.\n";
}
std::cout << "Number of attributes in rep2: "
<< rep2.numberOfAttributes() << std::endl;
if(rep.isNULL("nullAttribute"))
{
std::cout << "\tnullAttribute is null." << std::endl;
}
else
{
std::cout << "\tnullAttribute is not null." << std::endl;
}
rep.getValue("light", myGarage.m_lightRep);
myGarage.m_lightRep.getValue("states", myGarage.m_lightStates);
myGarage.m_lightRep.getValue("powers", myGarage.m_lightPowers);
std::cout << "\tlightRep: states: ";
int first = 1;
for(auto state: myGarage.m_lightStates)
{
if(first)
{
std::cout << state;
first = 0;
}
else
{
std::cout << "," << state;
}
}
std::cout << std::endl;
std::cout << "\tlightRep: powers: ";
first = 1;
for(auto power: myGarage.m_lightPowers)
{
if(first)
{
std::cout << power;
first = 0;
}
else
{
std::cout << "," << power;
}
}
std::cout << std::endl;
// Get vector of representations
rep.getValue("reps", myGarage.m_reps);
// Client know that server is sending two representations
// and has key1 and key2 repsectively
std::cout << "\treps[0].key1: " << myGarage.m_reps[0].getValue<int>("key1") << std::endl;
std::cout << "\treps[0].key2: " << myGarage.m_reps[1].getValue<int>("key2") << std::endl;
std::cout << "\tjson: " << rep.getValue<std::string>("json") << std::endl;
}
示例15: LEDEntityHandler
OCEntityHandlerResult IoTServer::LEDEntityHandler(shared_ptr<OCResourceRequest> Request)
{
OCEntityHandlerResult result = OC_EH_ERROR;
if (Request)
{
string requestType = Request->getRequestType();
int requestFlag = Request->getRequestHandlerFlag();
if (requestFlag & RequestHandlerFlag::RequestFlag)
{
auto Response = std::make_shared<OC::OCResourceResponse>();
Response->setRequestHandle(Request->getRequestHandle());
Response->setResourceHandle(Request->getResourceHandle());
if (requestType == "PUT")
{
cout << "PUT request for platform LED" << endl;
OCRepresentation requestRep = Request->getResourceRepresentation();
if (requestRep.hasAttribute(LED_RESOURCE_KEY))
{
try
{
requestRep.getValue<int>(LED_RESOURCE_KEY);
}
catch (...)
{
Response->setResponseResult(OC_EH_ERROR);
OCPlatform::sendResponse(Response);
cerr << "Client sent invalid resource value type" << endl;
return result;
}
}
else
{
Response->setResponseResult(OC_EH_ERROR);
OCPlatform::sendResponse(Response);
cerr << "Client sent invalid resource key" << endl;
return result;
}
m_ledRepresentation = requestRep;
putLEDRepresentation();
if (Response)
{
Response->setErrorCode(200);
Response->setResourceRepresentation(getLEDRepresentation());
Response->setResponseResult(OC_EH_OK);
if (OCPlatform::sendResponse(Response) == OC_STACK_OK)
{
result = OC_EH_OK;
}
}
}
else if (requestType == "GET")
{
cout << "GET request for platform LED" << endl;
if (Response)
{
Response->setErrorCode(200);
Response->setResourceRepresentation(getLEDRepresentation());
Response->setResponseResult(OC_EH_OK);
if (OCPlatform::sendResponse(Response) == OC_STACK_OK)
{
result = OC_EH_OK;
}
}
}
else
{
Response->setResponseResult(OC_EH_ERROR);
OCPlatform::sendResponse(Response);
cerr << "Unsupported request type" << endl;
}
}
}
return result;
}