mgmt: replace FaceFlags with individual fields
refs #1992 Change-Id: I41d55b3227c916a253705aaeefbe66c7c18e22a9
This commit is contained in:
1 parent
77c8751576
commit
f9c2bb19fe
7 files changed
+66
-134
No files matched your search
@@ -1,48 +0,0 @@
|
||||
/* -*- 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
|
||||
*
|
||||
* This file is part of NFD (Named Data Networking Forwarding Daemon).
|
||||
* See AUTHORS.md for complete list of NFD authors and contributors.
|
||||
*
|
||||
* NFD is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Foundation,
|
||||
* either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* 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_FACE_FLAGS_HPP
|
||||
#define NFD_DAEMON_MGMT_FACE_FLAGS_HPP
|
||||
|
||||
#include "face/face.hpp"
|
||||
#include <ndn-cxx/management/nfd-face-flags.hpp>
|
||||
|
||||
namespace nfd {
|
||||
|
||||
inline uint64_t
|
||||
getFaceFlags(const Face& face)
|
||||
{
|
||||
uint64_t flags = 0;
|
||||
if (face.isLocal()) {
|
||||
flags |= ndn::nfd::FACE_IS_LOCAL;
|
||||
}
|
||||
if (face.isOnDemand()) {
|
||||
flags |= ndn::nfd::FACE_IS_ON_DEMAND;
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
|
||||
} // namespace nfd
|
||||
|
||||
#endif // NFD_DAEMON_MGMT_FACE_FLAGS_HPP
|
||||
+30
-6
@@ -24,7 +24,6 @@
|
||||
*/
|
||||
|
||||
#include "face.hpp"
|
||||
#include "face-flags.hpp"
|
||||
#include "core/logger.hpp"
|
||||
|
||||
namespace nfd {
|
||||
@@ -125,19 +124,44 @@ Face::fail(const std::string& reason)
|
||||
this->onFail.clear();
|
||||
}
|
||||
|
||||
template<typename FaceTraits>
|
||||
void
|
||||
Face::copyStatusTo(FaceTraits& traits) const
|
||||
{
|
||||
traits.setFaceId(getId())
|
||||
.setRemoteUri(getRemoteUri().toString())
|
||||
.setLocalUri(getLocalUri().toString());
|
||||
|
||||
if (isLocal()) {
|
||||
traits.setFaceScope(ndn::nfd::FACE_SCOPE_LOCAL);
|
||||
}
|
||||
else {
|
||||
traits.setFaceScope(ndn::nfd::FACE_SCOPE_NON_LOCAL);
|
||||
}
|
||||
|
||||
if (isOnDemand()) {
|
||||
traits.setFacePersistency(ndn::nfd::FACE_PERSISTENCY_ON_DEMAND);
|
||||
}
|
||||
else {
|
||||
traits.setFacePersistency(ndn::nfd::FACE_PERSISTENCY_PERSISTENT);
|
||||
}
|
||||
}
|
||||
|
||||
template void
|
||||
Face::copyStatusTo<ndn::nfd::FaceStatus>(ndn::nfd::FaceStatus&) const;
|
||||
|
||||
template void
|
||||
Face::copyStatusTo<ndn::nfd::FaceEventNotification>(ndn::nfd::FaceEventNotification&) const;
|
||||
|
||||
ndn::nfd::FaceStatus
|
||||
Face::getFaceStatus() const
|
||||
{
|
||||
ndn::nfd::FaceStatus status;
|
||||
status.setFaceId(getId())
|
||||
.setRemoteUri(getRemoteUri().toString())
|
||||
.setLocalUri(getLocalUri().toString())
|
||||
.setFlags(getFaceFlags(*this));
|
||||
copyStatusTo(status);
|
||||
|
||||
this->getCounters().copyTo(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
} //namespace nfd
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "face-counters.hpp"
|
||||
|
||||
#include <ndn-cxx/management/nfd-face-status.hpp>
|
||||
#include <ndn-cxx/management/nfd-face-event-notification.hpp>
|
||||
|
||||
namespace nfd {
|
||||
|
||||
@@ -163,6 +164,12 @@ public: // attributes
|
||||
const FaceUri&
|
||||
getLocalUri() const;
|
||||
|
||||
/** \return FaceTraits data structure filled with the current FaceTraits status
|
||||
*/
|
||||
template<typename FaceTraits>
|
||||
void
|
||||
copyStatusTo(FaceTraits& traits) const;
|
||||
|
||||
/** \return FaceStatus data structure filled with the current Face status
|
||||
*/
|
||||
virtual ndn::nfd::FaceStatus
|
||||
@@ -202,7 +209,6 @@ private:
|
||||
friend class FaceTable;
|
||||
};
|
||||
|
||||
|
||||
inline bool
|
||||
Face::isLocal() const
|
||||
{
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include "core/face-uri.hpp"
|
||||
#include "core/network-interface.hpp"
|
||||
#include "fw/face-table.hpp"
|
||||
#include "face/face-flags.hpp"
|
||||
#include "face/tcp-factory.hpp"
|
||||
#include "face/udp-factory.hpp"
|
||||
#include "core/config-file.hpp"
|
||||
@@ -1030,11 +1029,8 @@ void
|
||||
FaceManager::onAddFace(shared_ptr<Face> face)
|
||||
{
|
||||
ndn::nfd::FaceEventNotification notification;
|
||||
notification.setKind(ndn::nfd::FACE_EVENT_CREATED)
|
||||
.setFaceId(face->getId())
|
||||
.setRemoteUri(face->getRemoteUri().toString())
|
||||
.setLocalUri(face->getLocalUri().toString())
|
||||
.setFlags(getFaceFlags(*face));
|
||||
notification.setKind(ndn::nfd::FACE_EVENT_CREATED);
|
||||
face->copyStatusTo(notification);
|
||||
|
||||
m_notificationStream.postNotification(notification);
|
||||
}
|
||||
@@ -1043,16 +1039,12 @@ void
|
||||
FaceManager::onRemoveFace(shared_ptr<Face> face)
|
||||
{
|
||||
ndn::nfd::FaceEventNotification notification;
|
||||
notification.setKind(ndn::nfd::FACE_EVENT_DESTROYED)
|
||||
.setFaceId(face->getId())
|
||||
.setRemoteUri(face->getRemoteUri().toString())
|
||||
.setLocalUri(face->getLocalUri().toString())
|
||||
.setFlags(getFaceFlags(*face));
|
||||
notification.setKind(ndn::nfd::FACE_EVENT_DESTROYED);
|
||||
face->copyStatusTo(notification);
|
||||
|
||||
m_notificationStream.postNotification(notification);
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
FaceManager::extractLocalControlParameters(const Interest& request,
|
||||
ControlParameters& parameters,
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
/* -*- 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
|
||||
*
|
||||
* This file is part of NFD (Named Data Networking Forwarding Daemon).
|
||||
* See AUTHORS.md for complete list of NFD authors and contributors.
|
||||
*
|
||||
* NFD is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Foundation,
|
||||
* either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* 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 "face/face-flags.hpp"
|
||||
|
||||
#include "tests/test-common.hpp"
|
||||
#include "tests/daemon/face/dummy-face.hpp"
|
||||
|
||||
namespace nfd {
|
||||
namespace tests {
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(FaceFaceFlags, BaseFixture)
|
||||
|
||||
template<typename DummyFaceBase>
|
||||
class DummyOnDemandFace : public DummyFaceBase
|
||||
{
|
||||
public:
|
||||
DummyOnDemandFace()
|
||||
{
|
||||
this->setOnDemand(true);
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Get)
|
||||
{
|
||||
DummyFace face1;
|
||||
BOOST_CHECK_EQUAL(getFaceFlags(face1), 0);
|
||||
|
||||
DummyLocalFace face2;
|
||||
BOOST_CHECK_EQUAL(getFaceFlags(face2), static_cast<uint64_t>(ndn::nfd::FACE_IS_LOCAL));
|
||||
|
||||
DummyOnDemandFace<DummyFace> face3;
|
||||
BOOST_CHECK_EQUAL(getFaceFlags(face3), static_cast<uint64_t>(ndn::nfd::FACE_IS_ON_DEMAND));
|
||||
|
||||
DummyOnDemandFace<DummyLocalFace> face4;
|
||||
BOOST_CHECK_EQUAL(getFaceFlags(face4), static_cast<uint64_t>(ndn::nfd::FACE_IS_LOCAL |
|
||||
ndn::nfd::FACE_IS_ON_DEMAND));
|
||||
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
} // namespace tests
|
||||
} // namespace nfd
|
||||
@@ -1493,6 +1493,9 @@ public:
|
||||
BOOST_CHECK_EQUAL(notification.getFaceId(), expectedFaceEvent.getFaceId());
|
||||
BOOST_CHECK_EQUAL(notification.getRemoteUri(), expectedFaceEvent.getRemoteUri());
|
||||
BOOST_CHECK_EQUAL(notification.getLocalUri(), expectedFaceEvent.getLocalUri());
|
||||
BOOST_CHECK_EQUAL(notification.getFaceScope(), expectedFaceEvent.getFaceScope());
|
||||
BOOST_CHECK_EQUAL(notification.getFacePersistency(), expectedFaceEvent.getFacePersistency());
|
||||
BOOST_CHECK_EQUAL(notification.getLinkType(), expectedFaceEvent.getLinkType());
|
||||
}
|
||||
|
||||
bool
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include "mgmt/face-status-publisher.hpp"
|
||||
#include "mgmt/app-face.hpp"
|
||||
#include "mgmt/internal-face.hpp"
|
||||
#include "face/face-flags.hpp"
|
||||
#include "fw/forwarder.hpp"
|
||||
|
||||
#include "tests/test-common.hpp"
|
||||
@@ -135,7 +134,28 @@ public:
|
||||
BOOST_CHECK_EQUAL(status.getFaceId(), reference->getId());
|
||||
BOOST_CHECK_EQUAL(status.getRemoteUri(), reference->getRemoteUri().toString());
|
||||
BOOST_CHECK_EQUAL(status.getLocalUri(), reference->getLocalUri().toString());
|
||||
BOOST_CHECK_EQUAL(status.getFlags(), getFaceFlags(*reference));
|
||||
|
||||
if (reference->isLocal()) {
|
||||
BOOST_CHECK_EQUAL(status.getFaceScope(), ndn::nfd::FACE_SCOPE_LOCAL);
|
||||
}
|
||||
else {
|
||||
BOOST_CHECK_EQUAL(status.getFaceScope(), ndn::nfd::FACE_SCOPE_NON_LOCAL);
|
||||
}
|
||||
|
||||
if (reference->isOnDemand()) {
|
||||
BOOST_CHECK_EQUAL(status.getFacePersistency(), ndn::nfd::FACE_PERSISTENCY_ON_DEMAND);
|
||||
}
|
||||
else {
|
||||
BOOST_CHECK_EQUAL(status.getFacePersistency(), ndn::nfd::FACE_PERSISTENCY_PERSISTENT);
|
||||
}
|
||||
|
||||
if (reference->isMultiAccess()) {
|
||||
BOOST_CHECK_EQUAL(status.getLinkType(), ndn::nfd::LINK_TYPE_MULTI_ACCESS);
|
||||
}
|
||||
else {
|
||||
BOOST_CHECK_EQUAL(status.getLinkType(), ndn::nfd::LINK_TYPE_POINT_TO_POINT);
|
||||
}
|
||||
|
||||
BOOST_CHECK_EQUAL(status.getNInInterests(), counters.getNInInterests());
|
||||
BOOST_CHECK_EQUAL(status.getNInDatas(), counters.getNInDatas());
|
||||
BOOST_CHECK_EQUAL(status.getNOutInterests(), counters.getNOutInterests());
|
||||
|
||||
Reference in new issue
Block a user