Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
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;
}