fw: use Signal in FaceTable
refs #2272 Change-Id: I831963b8311c257178ad0da16d62e48b476bfee3
This commit is contained in:
1 parent
cd4ee5fcb4
commit
1e064171da
5 files changed
+18
-18
No files matched your search
+4
-2
@@ -58,7 +58,8 @@
|
||||
#include <ndn-cxx/common.hpp>
|
||||
#include <ndn-cxx/interest.hpp>
|
||||
#include <ndn-cxx/data.hpp>
|
||||
#include <ndn-cxx/util/event-emitter.hpp>
|
||||
#include <ndn-cxx/util/event-emitter.hpp> // deprecated
|
||||
#include <ndn-cxx/util/signal.hpp>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
@@ -94,7 +95,7 @@ using ndn::Data;
|
||||
using ndn::Name;
|
||||
using ndn::Exclude;
|
||||
using ndn::Block;
|
||||
using ndn::util::EventEmitter;
|
||||
using ndn::util::EventEmitter; // deprecated
|
||||
|
||||
namespace tlv {
|
||||
// Don't write "namespace tlv = ndn::tlv", because NFD can add other members into this namespace.
|
||||
@@ -103,6 +104,7 @@ using namespace ndn::tlv;
|
||||
|
||||
namespace name = ndn::name;
|
||||
namespace time = ndn::time;
|
||||
namespace signal = ndn::util::signal;
|
||||
|
||||
} // namespace nfd
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
#include "face/face.hpp"
|
||||
#include <boost/range/adaptor/map.hpp>
|
||||
|
||||
namespace nfd
|
||||
{
|
||||
namespace nfd {
|
||||
|
||||
class Forwarder;
|
||||
|
||||
@@ -73,16 +72,16 @@ public: // enumeration
|
||||
const_iterator
|
||||
end() const;
|
||||
|
||||
public: // events
|
||||
public: // signals
|
||||
/** \brief fires after a Face is added
|
||||
*/
|
||||
EventEmitter<shared_ptr<Face> > onAdd;
|
||||
signal::Signal<FaceTable, shared_ptr<Face>> onAdd;
|
||||
|
||||
/** \brief fires before a Face is removed
|
||||
*
|
||||
* FaceId is valid when this event is fired
|
||||
*/
|
||||
EventEmitter<shared_ptr<Face> > onRemove;
|
||||
signal::Signal<FaceTable, shared_ptr<Face>> onRemove;
|
||||
|
||||
private:
|
||||
void
|
||||
|
||||
@@ -124,6 +124,8 @@ FaceManager::FaceManager(FaceTable& faceTable,
|
||||
ndn::KeyChain& keyChain)
|
||||
: ManagerBase(face, FACE_MANAGER_PRIVILEGE, keyChain)
|
||||
, m_faceTable(faceTable)
|
||||
, m_faceAddConn(m_faceTable.onAdd.connect(bind(&FaceManager::onAddFace, this, _1)))
|
||||
, m_faceRemoveConn(m_faceTable.onRemove.connect(bind(&FaceManager::onRemoveFace, this, _1)))
|
||||
, m_faceStatusPublisher(m_faceTable, *m_face, FACES_LIST_DATASET_PREFIX, keyChain)
|
||||
, m_channelStatusPublisher(m_factories, *m_face, CHANNELS_LIST_DATASET_PREFIX, keyChain)
|
||||
, m_notificationStream(*m_face, FACE_EVENTS_PREFIX, keyChain)
|
||||
@@ -137,9 +139,6 @@ FaceManager::FaceManager(FaceTable& faceTable,
|
||||
{
|
||||
face->setInterestFilter("/localhost/nfd/faces",
|
||||
bind(&FaceManager::onFaceRequest, this, _2));
|
||||
|
||||
m_faceTable.onAdd += bind(&FaceManager::onAddFace, this, _1);
|
||||
m_faceTable.onRemove += bind(&FaceManager::onRemoveFace, this, _1);
|
||||
}
|
||||
|
||||
FaceManager::~FaceManager()
|
||||
|
||||
@@ -173,6 +173,8 @@ PUBLIC_WITH_TESTS_ELSE_PRIVATE:
|
||||
|
||||
private:
|
||||
FaceTable& m_faceTable;
|
||||
signal::ScopedConnection m_faceAddConn;
|
||||
signal::ScopedConnection m_faceRemoveConn;
|
||||
FaceStatusPublisher m_faceStatusPublisher;
|
||||
ChannelStatusPublisher m_channelStatusPublisher;
|
||||
NotificationStream<AppFace> m_notificationStream;
|
||||
|
||||
@@ -34,12 +34,6 @@ namespace tests {
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(FwFaceTable, BaseFixture)
|
||||
|
||||
static inline void
|
||||
saveFaceId(std::vector<FaceId>& faceIds, shared_ptr<Face> face)
|
||||
{
|
||||
faceIds.push_back(face->getId());
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddRemove)
|
||||
{
|
||||
Forwarder forwarder;
|
||||
@@ -47,8 +41,12 @@ BOOST_AUTO_TEST_CASE(AddRemove)
|
||||
FaceTable& faceTable = forwarder.getFaceTable();
|
||||
std::vector<FaceId> onAddHistory;
|
||||
std::vector<FaceId> onRemoveHistory;
|
||||
faceTable.onAdd += bind(&saveFaceId, ndn::ref(onAddHistory ), _1);
|
||||
faceTable.onRemove += bind(&saveFaceId, ndn::ref(onRemoveHistory), _1);
|
||||
faceTable.onAdd.connect([&] (shared_ptr<Face> face) {
|
||||
onAddHistory.push_back(face->getId());
|
||||
});
|
||||
faceTable.onRemove.connect([&] (shared_ptr<Face> face) {
|
||||
onRemoveHistory.push_back(face->getId());
|
||||
});
|
||||
|
||||
shared_ptr<Face> face1 = make_shared<DummyFace>();
|
||||
shared_ptr<Face> face2 = make_shared<DummyFace>();
|
||||
|
||||
Reference in new issue
Block a user