Implemented InternalFace.setInterestFilter to loosen coupling refs: #1138 Change-Id: Ie58daed35bc3613398c8d3fc1de8b796e29907b8
77 lines
1.8 KiB
C++
77 lines
1.8 KiB
C++
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
|
|
/**
|
|
* Copyright (C) 2014 Named Data Networking Project
|
|
* See COPYING for copyright and distribution information.
|
|
*/
|
|
|
|
#include "manager-base.hpp"
|
|
#include "mgmt/app-face.hpp"
|
|
|
|
#include <ndn-cpp-dev/management/control-response.hpp>
|
|
|
|
namespace nfd {
|
|
|
|
NFD_LOG_INIT("ManagerBase");
|
|
|
|
ManagerBase::ManagerBase(shared_ptr<AppFace> face)
|
|
: m_face(face)
|
|
{
|
|
|
|
}
|
|
|
|
ManagerBase::~ManagerBase()
|
|
{
|
|
|
|
}
|
|
|
|
void
|
|
ManagerBase::sendResponse(const Name& name,
|
|
uint32_t code,
|
|
const std::string& text)
|
|
{
|
|
// Path 1 - runtime exception on receive's wireDecode.
|
|
// Set Data response's content payload to the
|
|
// encoded Block.
|
|
{
|
|
ndn::ControlResponse control(code, text);
|
|
const Block& encodedControl = control.wireEncode();
|
|
|
|
NFD_LOG_DEBUG("sending control response (Path 1)"
|
|
<< " Name: " << name
|
|
<< " code: " << code
|
|
<< " text: " << text);
|
|
|
|
NFD_LOG_DEBUG("sending raw control block size = " << encodedControl.size());
|
|
|
|
Data response(name);
|
|
response.setContent(encodedControl);
|
|
|
|
m_face->put(response);
|
|
}
|
|
|
|
// Path 2 - works, but not conformant to protocol.
|
|
// Encode ControlResponse and append Block as
|
|
// the last component of the name.
|
|
// {
|
|
// ndn::ControlResponse control(code, text);
|
|
// const Block& encodedControl = control.wireEncode();
|
|
|
|
// NFD_LOG_DEBUG("sending control response (Path 2)"
|
|
// << " Name: " << name
|
|
// << " code: " << code
|
|
// << " text: " << text);
|
|
|
|
// NFD_LOG_DEBUG("sending raw control block size = " << encodedControl.size());
|
|
|
|
// Name responseName(name);
|
|
// responseName.append(encodedControl);
|
|
|
|
// Data response(responseName);
|
|
// m_face->put(response);
|
|
// }
|
|
|
|
}
|
|
|
|
|
|
} // namespace nfd
|