Implements Transport for datagram-based protocols. More...
#include <datagram-transport.hpp>
Public Types | |
typedef Protocol | protocol |
Public Types inherited from nfd::face::Transport | |
typedef uint64_t | EndpointId |
identifies an endpoint on the link More... | |
typedef TransportCounters | Counters |
counters provided by Transport More... | |
Public Member Functions | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
void | receiveDatagram (const uint8_t *buffer, size_t nBytesReceived, const boost::system::error_code &error) |
Receive datagram, translate buffer into packet, deliver to parent class. More... | |
Public Member Functions inherited from nfd::face::Transport | |
Transport () | |
constructor More... | |
virtual | ~Transport () |
void | setFaceAndLinkService (Face &face, LinkService &service) |
set Face and LinkService for Transport More... | |
const Face * | getFace () const |
const LinkService * | getLinkService () const |
LinkService * | getLinkService () |
virtual const Counters & | getCounters () const |
void | close () |
request the transport to be closed More... | |
void | send (Packet &&packet) |
send a link-layer packet More... | |
FaceUri | getLocalUri () const |
FaceUri | getRemoteUri () const |
ndn::nfd::FaceScope | getScope () const |
ndn::nfd::FacePersistency | getPersistency () const |
void | setPersistency (ndn::nfd::FacePersistency persistency) |
changes face persistency setting More... | |
ndn::nfd::LinkType | getLinkType () const |
ssize_t | getMtu () const |
TransportState | getState () const |
time::steady_clock::TimePoint | getExpirationTime () const |
Protected Member Functions | |
virtual void | doClose () 1 |
performs Transport specific operations to close the transport More... | |
virtual void | doSend (Transport::Packet &&packet) 1 |
performs Transport specific operations to send a packet More... | |
void | handleSend (const boost::system::error_code &error, size_t nBytesSent, const Block &payload) |
void | handleReceive (const boost::system::error_code &error, size_t nBytesReceived) |
void | processErrorCode (const boost::system::error_code &error) |
bool | hasBeenUsedRecently () const |
void | resetRecentUsage () |
NFD_LOG_INCLASS_DECLARE () | |
template<> | |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
template<> | |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
Protected Member Functions inherited from nfd::face::Transport | |
void | receive (Packet &&packet) |
receive a link-layer packet More... | |
void | setLocalUri (const FaceUri &uri) |
void | setRemoteUri (const FaceUri &uri) |
void | setScope (ndn::nfd::FaceScope scope) |
void | setLinkType (ndn::nfd::LinkType linkType) |
void | setMtu (ssize_t mtu) |
void | setState (TransportState newState) |
set transport state More... | |
void | setExpirationTime (const time::steady_clock::TimePoint &expirationTime) |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency)=0 |
invoked before persistency is changed More... | |
Static Protected Member Functions | |
static EndpointId | makeEndpointId (const typename protocol::endpoint &ep) |
Protected Attributes | |
protocol::socket | m_socket |
protocol::endpoint | m_sender |
Protected Attributes inherited from nfd::face::TransportCounters | |
PacketCounter | nInPackets |
count of incoming packets More... | |
PacketCounter | nOutPackets |
count of outgoing packets More... | |
ByteCounter | nInBytes |
total incoming bytes More... | |
ByteCounter | nOutBytes |
total outgoing bytes More... | |
Additional Inherited Members | |
Public Attributes inherited from nfd::face::Transport | |
signal::Signal< Transport, TransportState, TransportState > | afterStateChange |
signals when transport state changes More... | |
Implements Transport for datagram-based protocols.
Protocol | a datagram-based protocol in Boost.Asio |
Definition at line 45 of file datagram-transport.hpp.
typedef Protocol nfd::face::DatagramTransport< Protocol, Addressing >::protocol |
Definition at line 48 of file datagram-transport.hpp.
|
explicit |
Construct datagram transport.
socket | Protocol-specific socket for the created transport |
Definition at line 103 of file datagram-transport.hpp.
void nfd::face::DatagramTransport< T, U >::receiveDatagram | ( | const uint8_t * | buffer, |
size_t | nBytesReceived, | ||
const boost::system::error_code & | error | ||
) |
Receive datagram, translate buffer into packet, deliver to parent class.
Definition at line 149 of file datagram-transport.hpp.
|
protectedvirtual |
performs Transport specific operations to close the transport
This is invoked once by close()
after changing state to CLOSING. It will not be invoked by Transport class if the transport is already CLOSING or CLOSED.
When the cleanup procedure is complete, this method should change state to CLOSED. This transition can happen synchronously or asynchronously.
Implements nfd::face::Transport.
Reimplemented in nfd::face::DECL_CLASS_FINAL, and nfd::face::DECL_CLASS_FINAL.
Definition at line 115 of file datagram-transport.hpp.
|
protectedvirtual |
performs Transport specific operations to send a packet
packet | the packet, which must be a well-formed TLV block |
Implements nfd::face::Transport.
Definition at line 136 of file datagram-transport.hpp.
|
protected |
Definition at line 193 of file datagram-transport.hpp.
|
protected |
Definition at line 179 of file datagram-transport.hpp.
|
protected |
Definition at line 205 of file datagram-transport.hpp.
|
inlineprotected |
Definition at line 230 of file datagram-transport.hpp.
|
inlineprotected |
Definition at line 237 of file datagram-transport.hpp.
|
inlinestaticprotected |
Definition at line 244 of file datagram-transport.hpp.
|
protected |
|
protected |
Definition at line 92 of file multicast-udp-transport.cpp.
|
protected |
|
protected |
Definition at line 91 of file datagram-transport.hpp.
|
protected |
Definition at line 92 of file datagram-transport.hpp.