tools: autoreg uses RibRegisterCommand
refs #1710
Change-Id: I158817af5f25d97f11a81b4e03d2523157f49c7d
diff --git a/tools/nfd-autoreg.cpp b/tools/nfd-autoreg.cpp
index 26fba9d..21dbc83 100644
--- a/tools/nfd-autoreg.cpp
+++ b/tools/nfd-autoreg.cpp
@@ -1,11 +1,12 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2014 Regents of the University of California,
- * Arizona Board of Regents,
- * Colorado State University,
- * University Pierre & Marie Curie, Sorbonne University,
- * Washington University in St. Louis,
- * Beijing Institute of Technology
+ * Copyright (c) 2014, Regents of the University of California,
+ * Arizona Board of Regents,
+ * Colorado State University,
+ * University Pierre & Marie Curie, Sorbonne University,
+ * Washington University in St. Louis,
+ * Beijing Institute of Technology,
+ * The University of Memphis
*
* This file is part of NFD (Named Data Networking Forwarding Daemon).
* See AUTHORS.md for complete list of NFD authors and contributors.
@@ -20,7 +21,7 @@
*
* You should have received a copy of the GNU General Public License along with
* NFD, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
- **/
+ */
#include <ndn-cxx/face.hpp>
#include <ndn-cxx/name.hpp>
@@ -43,7 +44,7 @@
using namespace ndn::nfd;
using ndn::Face;
-class AutoregServer
+class AutoregServer : boost::noncopyable
{
public:
AutoregServer()
@@ -54,19 +55,23 @@
}
void
- onNfdCommandSuccess(const FaceEventNotification& notification)
+ onRegisterCommandSuccess(const FaceEventNotification& notification, const Name& prefix)
{
- std::cerr << "SUCCEED: " << notification << std::endl;
+ std::cerr << "SUCCEED: register " << prefix << " on face "
+ << notification.getFaceId() << std::endl;
}
void
- onNfdCommandFailure(const FaceEventNotification& notification,
- uint32_t code, const std::string& reason)
+ onRegisterCommandFailure(const FaceEventNotification& notification, const Name& prefix,
+ uint32_t code, const std::string& reason)
{
- std::cerr << "FAILED: " << notification
+ std::cerr << "FAILED: register " << prefix << " on face " << notification.getFaceId()
<< " (code: " << code << ", reason: " << reason << ")" << std::endl;
}
+ /**
+ * \return true if auto-register should not be performed for uri
+ */
bool
isFiltered(const FaceUri& uri)
{
@@ -103,23 +108,24 @@
if (isFiltered(uri))
{
- std::cerr << "Not processing (filtered): " << notification << std::endl;
+ std::cerr << "FILTERED: " << notification << std::endl;
return;
}
+ std::cerr << "PROCESSING: " << notification << std::endl;
for (std::vector<ndn::Name>::const_iterator prefix = m_autoregPrefixes.begin();
prefix != m_autoregPrefixes.end();
++prefix)
{
- std::cout << "Try auto-register: " << *prefix << std::endl;
-
- m_controller.start<FibAddNextHopCommand>(
+ m_controller.start<RibRegisterCommand>(
ControlParameters()
.setName(*prefix)
.setFaceId(notification.getFaceId())
- .setCost(m_cost),
- bind(&AutoregServer::onNfdCommandSuccess, this, notification),
- bind(&AutoregServer::onNfdCommandFailure, this, notification, _1, _2));
+ .setOrigin(ROUTE_ORIGIN_AUTOREG)
+ .setCost(m_cost)
+ .setExpirationPeriod(time::milliseconds::max()),
+ bind(&AutoregServer::onRegisterCommandSuccess, this, notification, *prefix),
+ bind(&AutoregServer::onRegisterCommandFailure, this, notification, *prefix, _1, _2));
}
}
@@ -139,7 +145,7 @@
}
else
{
- std::cout << "IGNORED: " << notification << std::endl;
+ std::cerr << "IGNORED: " << notification << std::endl;
}
Name nextNotification("/localhost/nfd/faces/events");
@@ -192,7 +198,7 @@
void
startProcessing()
{
- std::cout << "AUTOREG prefixes: " << std::endl;
+ std::cerr << "AUTOREG prefixes: " << std::endl;
for (std::vector<ndn::Name>::const_iterator prefix = m_autoregPrefixes.begin();
prefix != m_autoregPrefixes.end();
++prefix)
@@ -202,7 +208,7 @@
if (!m_blackList.empty())
{
- std::cout << "Blacklisted networks: " << std::endl;
+ std::cerr << "Blacklisted networks: " << std::endl;
for (std::vector<Network>::const_iterator network = m_blackList.begin();
network != m_blackList.end();
++network)
@@ -211,7 +217,7 @@
}
}
- std::cout << "Whitelisted networks: " << std::endl;
+ std::cerr << "Whitelisted networks: " << std::endl;
for (std::vector<Network>::const_iterator network = m_whiteList.begin();
network != m_whiteList.end();
++network)