1 #ifndef NDNPH_FACE_TRANSPORT_HPP
2 #define NDNPH_FACE_TRANSPORT_HPP
4 #include "../core/region.hpp"
24 using RxCallback = void (*)(
void* ctx,
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId);
33 bool send(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId = 0) {
34 return doSend(pkt, pktLen, endpointId);
40 m_rxCb(m_rxCtx, pkt, pktLen, endpointId);
48 virtual bool doSend(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId) = 0;
52 void* m_rxCtx =
nullptr;
69 static void innerRx(
void*
self,
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId) {
73 virtual void handleRx(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId) {
77 bool doIsUp()
const override {
81 void doLoop()
override {
85 bool doSend(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId)
override {
86 return inner.
send(pkt, pktLen, endpointId);
Wrap another transport.
Definition: transport.hpp:61
TransportWrap(Transport &inner)
Definition: transport.hpp:63
Transport & inner
Definition: transport.hpp:90
virtual void handleRx(const uint8_t *pkt, size_t pktLen, uint64_t endpointId)
Definition: transport.hpp:73
Base class of low-level transport.
Definition: transport.hpp:10
virtual bool doSend(const uint8_t *pkt, size_t pktLen, uint64_t endpointId)=0
bool isUp() const
Determine whether transport is connected.
Definition: transport.hpp:15
bool send(const uint8_t *pkt, size_t pktLen, uint64_t endpointId=0)
Synchronously transmit a packet.
Definition: transport.hpp:33
virtual bool doIsUp() const =0
void loop()
Process periodical events, such as receiving packets.
Definition: transport.hpp:20
void invokeRxCallback(const uint8_t *pkt, size_t pktLen, uint64_t endpointId=0)
Invoke incoming packet callback for a received packet.
Definition: transport.hpp:39
void setRxCallback(RxCallback cb, void *ctx)
Set incoming packet callback.
Definition: transport.hpp:27
void(*)(void *ctx, const uint8_t *pkt, size_t pktLen, uint64_t endpointId) RxCallback
Definition: transport.hpp:24
virtual ~Transport()=default
transport::Transport Transport
Definition: transport.hpp:95