void Controller::startCommand(const shared_ptr<ControlCommand>& command, const ControlParameters& parameters, const CommandSucceedCallback& onSuccess1, const CommandFailCallback& onFailure1, const CommandOptions& options) { const CommandSucceedCallback& onSuccess = onSuccess1 ? onSuccess1 : [] (const ControlParameters&) {}; const CommandFailCallback& onFailure = onFailure1 ? onFailure1 : [] (const ControlResponse&) {}; Name requestName = command->getRequestName(options.getPrefix(), parameters); Interest interest(requestName); interest.setInterestLifetime(options.getTimeout()); m_keyChain.sign(interest, options.getSigningInfo()); m_face.expressInterest(interest, [=] (const Interest&, const Data& data) { this->processCommandResponse(data, command, onSuccess, onFailure); }, [=] (const Interest&, const lp::Nack&) { onFailure(ControlResponse(Controller::ERROR_NACK, "network Nack received")); }, [=] (const Interest&) { onFailure(ControlResponse(Controller::ERROR_TIMEOUT, "request timed out")); }); }
void Controller::startCommand(const shared_ptr<ControlCommand>& command, const ControlParameters& parameters, const CommandSucceedCallback& onSuccess, const CommandFailCallback& onFailure, const CommandOptions& options) { Name requestName = command->getRequestName(options.getPrefix(), parameters); Interest interest = m_signer.makeCommandInterest(requestName, options.getSigningInfo()); interest.setInterestLifetime(options.getTimeout()); m_face.expressInterest(interest, [=] (const Interest&, const Data& data) { processCommandResponse(data, command, onSuccess, onFailure); }, [=] (const Interest&, const lp::Nack&) { if (onFailure) onFailure(ControlResponse(Controller::ERROR_NACK, "network Nack received")); }, [=] (const Interest&) { if (onFailure) onFailure(ControlResponse(Controller::ERROR_TIMEOUT, "request timed out")); }); }