34 #ifndef EMANEMACLAYERIMPL_HEADER_ 35 #define EMANEMACLAYERIMPL_HEADER_ 89 NEMLayer{id,pPlatformServiceProvider},
104 #define DECLARE_MAC_LAYER(X) \ 105 extern "C" EMANE::MACLayerImplementor * create(EMANE::NEMId id, \ 106 EMANE::PlatformServiceProvider *p, \ 107 EMANE::RadioServiceProvider * r) \ 108 {return new X{id,p,r};} \ 109 extern "C" void destroy(EMANE::MACLayerImplementor * p) \ 114 #endif //EMANEMACLAYERIMPL_HEADER_ virtual void processUpstreamPacket(const CommonMACHeader &hdr, UpstreamPacket &pkt, const ControlMessages &msgs=UpstreamTransport::empty)=0
A Packet class that allows upstream processing to strip layer headers as the packet travels up the st...
Radio service user interface allows access to the radio services.
MACLayerImplementor(NEMId id, PlatformServiceProvider *pPlatformServiceProvider, RadioServiceProvider *pRadioServiceProvider)
std::list< const ControlMessage * > ControlMessages
void(* destroyMACFunc)(MACLayerImplementor *)
virtual ~MACLayerImplementor()
Base class for NEMLayer containers. Builders construct NEMLayer objects to contain derived instances ...
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
static const ControlMessages empty
The RadioServiceProvider interface provides access to radio (RF) model specific services.
void sendDownstreamPacket(const CommonMACHeader &hdr, DownstreamPacket &pkt, const ControlMessages &msgs=DownstreamTransport::empty)
static const ControlMessages empty
Interface used to create a MAC layer plugin implementation.