abstract Face class
refs #1153 Change-Id: I0b0dd71300d9b2d747a48c72fa8850c9afb75448
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
|
||||
/**
|
||||
* Copyright (C) 2014 Named Data Networking Project
|
||||
* See COPYING for copyright and distribution information.
|
||||
*/
|
||||
|
||||
#include "face.hpp"
|
||||
|
||||
namespace ndn {
|
||||
|
||||
Face::Face(FaceId id)
|
||||
: m_id(id)
|
||||
{
|
||||
}
|
||||
|
||||
Face::~Face()
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
Face::isUp() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
Face::setDescription(const std::string& description)
|
||||
{
|
||||
m_description = description;
|
||||
}
|
||||
|
||||
const std::string&
|
||||
Face::getDescription() const
|
||||
{
|
||||
return m_description;
|
||||
}
|
||||
|
||||
bool
|
||||
Face::isMultiAccess() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
Face::isLocalControlHeaderEnabled() const
|
||||
{
|
||||
// TODO add local control header functionality
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
} //namespace ndn
|
||||
@@ -8,6 +8,7 @@
|
||||
#define NFD_FACE_FACE_H
|
||||
|
||||
#include "common.hpp"
|
||||
#include "util/event-emitter.hpp"
|
||||
|
||||
namespace ndn {
|
||||
|
||||
@@ -21,6 +22,62 @@ typedef int FaceId;
|
||||
*/
|
||||
class Face : noncopyable
|
||||
{
|
||||
public:
|
||||
Face(FaceId id);
|
||||
|
||||
virtual
|
||||
~Face();
|
||||
|
||||
/// fires when an Interest is received
|
||||
EventEmitter<const Interest&> onReceiveInterest;
|
||||
|
||||
/// fires when a Data is received
|
||||
EventEmitter<const Data&> onReceiveData;
|
||||
|
||||
/// send an Interest
|
||||
virtual void
|
||||
sendInterest(const Interest &interest) =0;
|
||||
|
||||
/// send a Data
|
||||
virtual void
|
||||
sendData(const Data &data) =0;
|
||||
|
||||
/** \brief Get whether underlying communicate is up
|
||||
* In this base class this property is always true.
|
||||
*/
|
||||
virtual bool
|
||||
isUp() const;
|
||||
|
||||
/** \brief Set the description
|
||||
* This is typically invoked by mgmt on set description command
|
||||
*/
|
||||
virtual void
|
||||
setDescription(const std::string& description);
|
||||
|
||||
/// Get the description
|
||||
virtual const std::string&
|
||||
getDescription() const;
|
||||
|
||||
/** \brief Get whether packets sent this Face may reach multiple peers
|
||||
* In this base class this property is always false.
|
||||
*/
|
||||
virtual bool
|
||||
isMultiAccess() const;
|
||||
|
||||
/// Get whether the face has opted in for local control header
|
||||
virtual bool
|
||||
isLocalControlHeaderEnabled() const;
|
||||
|
||||
protected:
|
||||
// void
|
||||
// receiveInterest();
|
||||
|
||||
// void
|
||||
// receiveData();
|
||||
|
||||
private:
|
||||
FaceId m_id;
|
||||
std::string m_description;
|
||||
};
|
||||
|
||||
} // namespace ndn
|
||||
|
||||
+25
-1
@@ -12,7 +12,31 @@ namespace ndn {
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(FaceFace)
|
||||
|
||||
// no unit test here: this ensures face.hpp can compile on its own
|
||||
class FaceTestFace : public Face
|
||||
{
|
||||
public:
|
||||
FaceTestFace()
|
||||
: Face(1)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void
|
||||
sendInterest(const Interest &interest)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void
|
||||
sendData(const Data &data)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Description)
|
||||
{
|
||||
FaceTestFace face;
|
||||
face.setDescription("3pFsKrvWr");
|
||||
BOOST_CHECK_EQUAL(face.getDescription(), "3pFsKrvWr");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user