cvar.wait(lck);
}
+/*virtual*/ IOT_Device::~IOT_Device()
+{
+ std::mutex mtx;
+ std::unique_lock<std::mutex> lck(mtx);
+ std::condition_variable cvar;
+
+ if(m_account_manager->signOut( m_access_token,
+ [&](const HeaderOptions& /*_hopt*/, const OCRepresentation& /*_rep*/, const int /*_ecode*/)
+ {
+ cvar.notify_all();
+ } ) != OC_STACK_OK)
+ throw std::runtime_error("signOut failed");
+ cvar.wait(lck);
+}
+
/*******************************************************/
/*******************************************************/
std::ostream& operator<<(std::ostream& _os, const IOT_Device& _obj)
IOT_Device(OCConnectivityType _conn_type, const std::string& _host, const std::string& _auth_provider, const std::string& _auth_code, const std::string& _uid, const std::string& _access_token);
IOT_Device(const IOT_Device& _obj) = default;
- virtual ~IOT_Device() = default;
+ virtual ~IOT_Device();
IOT_Device& operator=(const IOT_Device& _obj) = default;
IOT_PolicyGroup group("tv-extension", {item1, item2});
string json_data = IOT_Policy::makePolicy({group});
- static mutex mtx;
+ static mutex mtx, mtx1;
unique_lock<mutex> lck(mtx);
condition_variable cvar;
-
auto on_observe = [&](const HeaderOptions& /*_head_options*/, const OCRepresentation& _rep, const int& _ecode, const int& _seq_number)
{
- unique_lock<mutex> lambda_lock(mtx);
+ unique_lock<mutex> lambda_lock(mtx1);
if (res) return;
- if(IOT_Resource::representationToString(_rep).find(json_data) != string::npos)
+// if(IOT_Resource::representationToString(_rep).find(json_data) != string::npos)
{
res = true;
cvar.notify_all();