19 Controller::processCommandResponse(
const Data& data,
20 const shared_ptr<ControlCommand>& command,
21 const CommandSucceedCallback& onSuccess,
22 const CommandFailCallback& onFailure)
26 const uint32_t serverErrorCode = 500;
33 if (static_cast<bool>(onFailure))
34 onFailure(serverErrorCode, e.what());
38 uint32_t code = response.
getCode();
39 const uint32_t errorCodeLowerBound = 400;
40 if (code >= errorCodeLowerBound) {
41 if (static_cast<bool>(onFailure))
42 onFailure(code, response.
getText());
48 parameters.wireDecode(response.
getBody());
51 if (static_cast<bool>(onFailure))
52 onFailure(serverErrorCode, e.what());
57 command->validateResponse(parameters);
59 catch (ControlCommand::ArgumentError& e) {
60 if (static_cast<bool>(onFailure))
61 onFailure(serverErrorCode, e.what());
65 onSuccess(parameters);
74 const uint32_t selfFaceId = 0;
77 parameters.
setName(prefixToRegister)
80 this->start<FibAddNextHopCommand>(parameters,
90 const uint32_t selfFaceId = 0;
93 parameters.
setName(prefixToDeRegister)
96 this->start<FibRemoveNextHopCommand>(parameters,
ControlParameters & setFaceId(uint64_t faceId)
represents parameters in a ControlCommand request or response
const Block & getBody() const
function< void()> SuccessCallback
Block blockFromValue() const
function< void(const std::string &)> FailCallback
Class defining abstraction of ControlResponse for NFD Control Protocol.
Abstraction to communicate with local or remote NDN forwarder.
const std::string & getText() const
void wireDecode(const Block &block)
A Name holds an array of Name::Component and represents an NDN name.
const Block & getContent() const
Get content Block.
ControlParameters & setName(const Name &name)
virtual void selfRegisterPrefix(const Name &prefixToRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)
virtual void selfDeregisterPrefix(const Name &prefixToDeRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)