// callback handler on PUT request void onPut(const OCRepresentation& rep , const int eCode) { AttributeMap attributeMap = rep.getAttributeMap(); if(eCode == SUCCESS_RESPONSE) { DBG("PUT request was successful"); printAttributeMap(attributeMap); if(OBSERVE_TYPE_TO_USE == ObserveType::Observe) INFO("Observe is used."); else if(OBSERVE_TYPE_TO_USE == ObserveType::ObserveAll) INFO("ObserveAll is used."); if(g_curResource != nullptr) { DBG("Observe Start"); QueryParamsMap test; g_curResource->observe(ObserveType::Observe , test , &onObserve); } } else { ERR("onPut Response error: %d" , eCode); //std::exit(-1); } }
void onObserve(const HeaderOptions &headerOption , const OCRepresentation& rep , const int& eCode, const int& sequenceNumber) { std::cout << "onObserve" << std::endl; // if(eCode == SUCCESS_RESPONSE) if(eCode <= OC_STACK_RESOURCE_DELETED) { AttributeMap attributeMap = rep.getAttributeMap(); for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { if(attributeMap.find(it->first) == attributeMap.end()) { return; } } if(rep.getUri().empty()) { cout << "uri is null\n"; return; } std::cout << std::endl; std::cout << "========================================================" << std::endl; std::cout << "Receive OBSERVE RESULT:" << std::endl; std::cout << "\tSequenceNumber: " << sequenceNumber << std::endl; for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { std::cout << "\tAttribute name: " << it->first << " value: "; for(auto valueItr = it->second.begin() ; valueItr != it->second.end() ; ++valueItr) { std::cout << "\t" << *valueItr << " "; } std::cout << std::endl; } if(observe_count() > 30) { std::cout << "Cancelling Observe..." << std::endl; OCStackResult result = g_curResource->cancelObserve(); std::cout << "Cancel result: " << result << std::endl; sleep(10); std::cout << "DONE" << std::endl; std::exit(0); } } else { std::cout << "onObserve Response error: " << eCode << std::endl; std::exit(-1); } }
void onPut(const OCRepresentation& rep , const int eCode) { if(eCode == SUCCESS_RESPONSE) { std::cout << "PUT request was successful" << std::endl; AttributeMap attributeMap = rep.getAttributeMap(); for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { std::cout << "\tAttribute name: " << it->first << " value: "; for(auto valueItr = it->second.begin() ; valueItr != it->second.end() ; ++valueItr) { std::cout << "\t" << *valueItr << " "; } std::cout << std::endl; } std::vector< OCRepresentation > children = rep.getChildren(); for(auto oit = children.begin() ; oit != children.end() ; ++oit) { attributeMap = oit->getAttributeMap(); for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { std::cout << "\tAttribute name: " << it->first << " value: "; for(auto valueItr = it->second.begin() ; valueItr != it->second.end() ; ++valueItr) { std::cout << "\t" << *valueItr << " "; } std::cout << 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; QueryParamsMap test; g_curResource->observe(ObserveType::Observe , test , &onObserve); } else { std::cout << "onPut Response error: " << eCode << std::endl; std::exit(-1); } }
// callback handler on GET request void onGet(const HeaderOptions &headerOption , const OCRepresentation& rep , const int eCode) { if(eCode == SUCCESS_RESPONSE) { std::cout << "GET request was successful" << std::endl; AttributeMap attributeMap = rep.getAttributeMap(); std::cout << "Resource URI: " << rep.getUri() << std::endl; for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { std::cout << "\tAttribute name: " << it->first << " value: "; for(auto valueItr = it->second.begin() ; valueItr != it->second.end() ; ++valueItr) { std::cout << "\t" << *valueItr << " "; } std::cout << std::endl; } std::vector< OCRepresentation > children = rep.getChildren(); for(auto oit = children.begin() ; oit != children.end() ; ++oit) { std::cout << "Child Resource URI: " << oit->getUri() << std::endl; attributeMap = oit->getAttributeMap(); for(auto it = attributeMap.begin() ; it != attributeMap.end() ; ++it) { std::cout << "\tAttribute name: " << it->first << " value: "; for(auto valueItr = it->second.begin() ; valueItr != it->second.end() ; ++valueItr) { std::cout << "\t" << *valueItr << " "; } std::cout << std::endl; } } } else { std::cout << "onGET Response error: " << eCode << std::endl; std::exit(-1); } }
// callback handler on GET request void onGet(const OCRepresentation& rep , const int eCode) { AttributeMap attributeMap = rep.getAttributeMap(); if(eCode == SUCCESS_RESPONSE) { DBG("GET Succeeded:"); printAttributeMap(attributeMap); updateAttribute(attributeMap); } else { ERR("onGet Response error: %d" , eCode); //std::exit(-1); } }
void onObserve(const OCRepresentation& rep , const int& eCode , const int& sequenceNumber) { AttributeMap attributeMap = rep.getAttributeMap(); if(eCode == SUCCESS_RESPONSE) { DBG("OBSERVE RESULT:"); DBG("\tSequenceNumber: %d" , sequenceNumber); printAttributeMap(attributeMap); // updateAttribute(attributeMap); g_curAttributeMap = attributeMap; onobserve(); } else { ERR("onObserve Response error: %d" , eCode); //std::exit(-1); } }