mgmt: Change InternalFace::processEvents to accept shared_ptr, instead of weak_ptr
Change-Id: I13af9a4b07a339cf66be1fa8783dc0475ded75f0
Refs: #1753
diff --git a/daemon/mgmt/internal-face.cpp b/daemon/mgmt/internal-face.cpp
index de77009..9fad328 100644
--- a/daemon/mgmt/internal-face.cpp
+++ b/daemon/mgmt/internal-face.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 "internal-face.hpp"
#include "core/logger.hpp"
@@ -42,29 +43,20 @@
// Invoke .processInterest a bit later,
// to avoid potential problems in forwarding pipelines.
- weak_ptr<const Interest> interestWeak = interest.shared_from_this();
getGlobalIoService().post(bind(&InternalFace::processInterest,
- this, interestWeak));
+ this, interest.shared_from_this()));
}
void
-InternalFace::processInterest(weak_ptr<const Interest> interestWeak)
+InternalFace::processInterest(const shared_ptr<const Interest>& interest)
{
- shared_ptr<const Interest> interestPtr = interestWeak.lock();
- if (!static_cast<bool>(interestPtr)) {
- // Interest is gone because it's satisfied and removed from PIT
- NFD_LOG_DEBUG("processInterest: Interest is gone");
- return;
- }
- const Interest& interest = *interestPtr;
-
if (m_interestFilters.size() == 0)
{
NFD_LOG_DEBUG("no Interest filters to match against");
return;
}
- const Name& interestName(interest.getName());
+ const Name& interestName(interest->getName());
NFD_LOG_DEBUG("received Interest: " << interestName);
std::map<Name, OnInterest>::const_iterator filter =
@@ -92,7 +84,7 @@
if (filter->first.isPrefixOf(interestName))
{
NFD_LOG_DEBUG("found Interest filter for " << filter->first << " (before end match)");
- filter->second(interestName, interest);
+ filter->second(interestName, *interest);
}
else
{
@@ -102,7 +94,7 @@
else if (filter->first == interestName)
{
NFD_LOG_DEBUG("found Interest filter for " << filter->first << " (exact match)");
- filter->second(interestName, interest);
+ filter->second(interestName, *interest);
}
else if (filter != m_interestFilters.begin())
{
@@ -113,7 +105,7 @@
if (filter->first.isPrefixOf(interestName))
{
NFD_LOG_DEBUG("found Interest filter for " << filter->first << " (previous match)");
- filter->second(interestName, interest);
+ filter->second(interestName, *interest);
}
else
{
diff --git a/daemon/mgmt/internal-face.hpp b/daemon/mgmt/internal-face.hpp
index ff89ac8..c35676f 100644
--- a/daemon/mgmt/internal-face.hpp
+++ b/daemon/mgmt/internal-face.hpp
@@ -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/>.
- **/
+ */
#ifndef NFD_DAEMON_MGMT_INTERNAL_FACE_HPP
#define NFD_DAEMON_MGMT_INTERNAL_FACE_HPP
@@ -78,7 +79,7 @@
private:
void
- processInterest(weak_ptr<const Interest> interestWeak);
+ processInterest(const shared_ptr<const Interest>& interest);
private:
std::map<Name, OnInterest> m_interestFilters;