OCStackResult InProcClientWrapper::DoDirectPairing(std::shared_ptr<OCDirectPairing> peer, const OCPrm_t& pmSel, const std::string& pinNumber, DirectPairingCallback& callback) { if (!peer || !callback) { oclog() << "Invalid parameters" << std::flush; return OC_STACK_INVALID_PARAM; } OCStackResult result = OC_STACK_ERROR; ClientCallbackContext::DirectPairingContext* context = new ClientCallbackContext::DirectPairingContext(callback); auto cLock = m_csdkLock.lock(); if (cLock) { std::lock_guard<std::recursive_mutex> lock(*cLock); result = OCDoDirectPairing(static_cast<void*>(context), peer->getDev(), pmSel, const_cast<char*>(pinNumber.c_str()), directPairingCallback); } else { delete context; result = OC_STACK_ERROR; } return result; }
OCStackResult DoDirectPairing(OCDPDev_t* peer, OCPrm_t pmSel, char *pinNumber) { if (NULL == peer || NULL == pinNumber) { OIC_LOG(ERROR, TAG, "invalid parameter"); return OC_STACK_INVALID_PARAM; } // start direct pairing OIC_LOG(INFO, TAG, " Start Direct Pairing.."); if(OC_STACK_OK != OCDoDirectPairing(peer, pmSel, pinNumber, pairingReqCB)) { OIC_LOG(ERROR, TAG, "OCDoDirectPairing API error"); return OC_STACK_ERROR; } return OC_STACK_OK; }