ndn-embeds 0.1.0
Lightweight NDN protocol stack for embedded systems
Loading...
Searching...
No Matches
face.hpp
Go to the documentation of this file.
1
12#pragma once
13
14#include "ndn/common.hpp"
15#include <functional>
16
17namespace ndn {
18
28using PacketCallback = std::function<void(FaceId faceId, const uint8_t* data, size_t len)>;
29
48class Face {
49public:
53 virtual ~Face() = default;
54
59 virtual FaceId id() const = 0;
60
72 virtual Error start() = 0;
73
79 virtual void stop() = 0;
95 virtual Error send(const uint8_t* data, size_t len) = 0;
96
105 virtual Error sendTo(FaceId destFace, const uint8_t* data, size_t len) = 0;
106
114 virtual Error broadcast(const uint8_t* data, size_t len) = 0;
125 virtual size_t maxPayloadSize() const = 0;
126
132 void setPacketCallback(PacketCallback callback) { packetCallback_ = callback; }
133
134protected:
144 void onPacketReceived(FaceId faceId, const uint8_t* data, size_t len) {
145 if (packetCallback_) {
146 packetCallback_(faceId, data, len);
147 }
148 }
149
151};
152
153} // namespace ndn
NDN Face abstract base class.
Definition face.hpp:48
void onPacketReceived(FaceId faceId, const uint8_t *data, size_t len)
Internal handler for packet reception.
Definition face.hpp:144
void setPacketCallback(PacketCallback callback)
Set the packet receive callback.
Definition face.hpp:132
virtual Error broadcast(const uint8_t *data, size_t len)=0
Broadcast a packet to all nodes.
virtual size_t maxPayloadSize() const =0
Get the maximum payload size.
PacketCallback packetCallback_
Packet receive callback.
Definition face.hpp:150
virtual ~Face()=default
Destructor.
virtual void stop()=0
Stop the Face.
virtual FaceId id() const =0
Get the Face ID.
virtual Error sendTo(FaceId destFace, const uint8_t *data, size_t len)=0
Send a packet to a specific Face.
virtual Error start()=0
Start the Face.
virtual Error send(const uint8_t *data, size_t len)=0
Send a packet.
Common definitions for the NDN protocol stack.
uint16_t FaceId
Face identifier.
Definition common.hpp:96
Error
Error codes.
Definition common.hpp:24
std::function< void(FaceId faceId, const uint8_t *data, size_t len)> PacketCallback
Packet receive callback.
Definition face.hpp:28