OCStackResult DirectPairingDiscovery() { // initiate direct pairing discovery OIC_LOG(INFO, TAG, " Discovering Only Owned Devices on Network.."); discoveredDevs = OCDiscoverDirectPairingDevices(DP_DISCOVERY_TIMEOUT); if(NULL == discoveredDevs) { OIC_LOG(ERROR, TAG, "OCDiscoverDirectPairingDevices API error"); return OC_STACK_ERROR; } // display the discovered unowned list printf(" > Discovered Direct-Pairing Support Devices\n"); printList(discoveredDevs); return OC_STACK_OK; }
OCStackResult InProcClientWrapper::FindDirectPairingDevices(unsigned short waittime, GetDirectPairedCallback& callback) { if (!callback || 0 == waittime) { return OC_STACK_INVALID_PARAM; } OCStackResult result = OC_STACK_ERROR; const OCDPDev_t *list = nullptr; PairedDevices dpDeviceList; auto cLock = m_csdkLock.lock(); if (cLock) { std::lock_guard<std::recursive_mutex> lock(*cLock); list = OCDiscoverDirectPairingDevices(waittime); if (NULL == list) { result = OC_STACK_NO_RESOURCE; oclog() << "findDirectPairingDevices(): No device found for direct pairing" << std::flush; } else { convert(list, dpDeviceList); std::thread exec(callback, dpDeviceList); exec.detach(); result = OC_STACK_OK; } } else { result = OC_STACK_ERROR; } return result; }