34 : m_nfdIdCollector(nullptr)
40 const function<
void()>& onSuccess,
41 const Controller::DatasetFailCallback& onFailure,
42 const CommandOptions& options)
44 controller.fetch<ndn::nfd::ForwarderGeneralStatusDataset>(
45 [
this, onSuccess] (
const ForwarderStatus& result) {
52 static time::system_clock::Duration
55 return status.getCurrentTimestamp() - status.getStartTimestamp();
59 ForwarderGeneralModule::getNfdId()
const
61 if (m_nfdIdCollector !=
nullptr && m_nfdIdCollector->
hasNfdId()) {
65 static Name unavailable(
"/nfdId-unavailable");
77 const Name& nfdId)
const
79 os <<
"<generalStatus>";
81 os <<
"<nfdId>" << nfdId <<
"</nfdId>";
82 os <<
"<version>" <<
xml::Text{item.getNfdVersion()} <<
"</version>";
87 os <<
"<nNameTreeEntries>" << item.getNNameTreeEntries() <<
"</nNameTreeEntries>";
88 os <<
"<nFibEntries>" << item.getNFibEntries() <<
"</nFibEntries>";
89 os <<
"<nPitEntries>" << item.getNPitEntries() <<
"</nPitEntries>";
90 os <<
"<nMeasurementsEntries>" << item.getNMeasurementsEntries() <<
"</nMeasurementsEntries>";
91 os <<
"<nCsEntries>" << item.getNCsEntries() <<
"</nCsEntries>";
93 os <<
"<packetCounters>";
94 os <<
"<incomingPackets>"
95 <<
"<nInterests>" << item.getNInInterests() <<
"</nInterests>"
96 <<
"<nDatas>" << item.getNInDatas() <<
"</nDatas>"
97 <<
"<nNacks>" << item.getNInNacks() <<
"</nNacks>"
98 <<
"</incomingPackets>";
99 os <<
"<outgoingPackets>"
100 <<
"<nInterests>" << item.getNOutInterests() <<
"</nInterests>"
101 <<
"<nDatas>" << item.getNOutDatas() <<
"</nDatas>"
102 <<
"<nNacks>" << item.getNOutNacks() <<
"</nNacks>"
103 <<
"</outgoingPackets>";
104 os <<
"</packetCounters>";
106 os <<
"</generalStatus>";
112 os <<
"General NFD status:\n";
118 const Name& nfdId)
const
120 os <<
" nfdId=" << nfdId <<
"\n";
121 os <<
" version=" << item.getNfdVersion() <<
"\n";
126 os <<
" nNameTreeEntries=" << item.getNNameTreeEntries() <<
"\n";
127 os <<
" nFibEntries=" << item.getNFibEntries() <<
"\n";
128 os <<
" nPitEntries=" << item.getNPitEntries() <<
"\n";
129 os <<
" nMeasurementsEntries=" << item.getNMeasurementsEntries() <<
"\n";
130 os <<
" nCsEntries=" << item.getNCsEntries() <<
"\n";
132 os <<
" nInInterests=" << item.getNInInterests() <<
"\n";
133 os <<
" nOutInterests=" << item.getNOutInterests() <<
"\n";
134 os <<
" nInDatas=" << item.getNInDatas() <<
"\n";
135 os <<
" nOutDatas=" << item.getNOutDatas() <<
"\n";
136 os <<
" nInNacks=" << item.getNInNacks() <<
"\n";
137 os <<
" nOutNacks=" << item.getNOutNacks() <<
"\n";
141 : m_inner(
std::move(inner))
144 BOOST_ASSERT(m_inner !=
nullptr);
151 BOOST_THROW_EXCEPTION(std::runtime_error(
"NfdId is unavailable"));
159 const ndn::OnDataValidated& accept,
160 const ndn::OnDataValidationFailed& reject,
161 std::vector<shared_ptr<ndn::ValidationRequest>>& nextSteps)
163 ndn::OnDataValidated accepted = [
this, accept] (
const shared_ptr<const Data>& data) {
170 const ndn::Signature& sig = data->getSignature();
171 if (!sig.hasKeyLocator()) {
175 const ndn::KeyLocator& kl = sig.getKeyLocator();
176 if (kl.getType() != ndn::KeyLocator::KeyLocator_Name) {
180 m_nfdId = kl.getName();
184 BOOST_ASSERT(nSteps == 0);
185 m_inner->validate(data, accepted, reject);
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
std::string formatTimestamp(time::system_clock::TimePoint t)
std::string formatDuration(DURATION d, bool isLong=false)