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);
33 bool send(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId = 0) {
…}
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) {
73 virtual void handleRx(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId) {
…}
85 bool doSend(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId)
override {
86 return inner.
send(pkt, pktLen, endpointId);
85 bool doSend(
const uint8_t* pkt,
size_t pktLen, uint64_t endpointId)
override {
…}
Wrap another transport.
Definition transport.hpp:61
TransportWrap(Transport &inner)
Definition transport.hpp:63
void doLoop() override
Definition transport.hpp:81
bool doSend(const uint8_t *pkt, size_t pktLen, uint64_t endpointId) override
Definition transport.hpp:85
bool doIsUp() const override
Definition transport.hpp:77
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