EMANE  1.2.1
EMANE::Models::TDMA::QueueManager Class Referenceabstract

Queue management interface used by BaseModel More...

#include <queuemanager.h>

Inheritance diagram for EMANE::Models::TDMA::QueueManager:
EMANE::Component EMANE::PlatformServiceUser EMANE::RunningStateMutable EMANE::Models::TDMA::PacketStatusPublisherUser EMANE::EventServiceUser EMANE::TimerServiceUser EMANE::Models::TDMA::BasicQueueManager

Public Member Functions

virtual ~QueueManager ()
 
virtual size_t enqueue (std::uint8_t u8QueueIndex, DownstreamPacket &&pkt)=0
 
virtual std::tuple< EMANE::Models::TDMA::MessageComponents, size_t > dequeue (std::uint8_t u8QueueIndex, size_t length, NEMId destination)=0
 
virtual QueueInfos getPacketQueueInfo () const =0
 
virtual void initialize (Registrar &registrar)=0
 
virtual void configure (const ConfigurationUpdate &update)=0
 
virtual void start ()=0
 
virtual void postStart ()
 
virtual void stop ()=0
 
virtual void destroy ()=0 throw ()
 
virtual void processConfiguration (const ConfigurationUpdate &update)
 
void setPacketStatusPublisher (PacketStatusPublisher *pPacketStatusPublisher)
 

Protected Member Functions

 QueueManager (NEMId id, PlatformServiceProvider *pPlatformServiceProvider)
 

Protected Attributes

NEMId id_
 
PlatformServiceProviderpPlatformService_
 
PacketStatusPublisherpPacketStatusPublisher_
 

Detailed Description

Queue management interface used by BaseModel

Definition at line 57 of file queuemanager.h.

Constructor & Destructor Documentation

◆ ~QueueManager()

virtual EMANE::Models::TDMA::QueueManager::~QueueManager ( )
inlinevirtual

Destroys an instance.

Definition at line 66 of file queuemanager.h.

◆ QueueManager()

EMANE::Models::TDMA::QueueManager::QueueManager ( NEMId  id,
PlatformServiceProvider pPlatformServiceProvider 
)
inlineprotected

Creates an instance.

Definition at line 120 of file queuemanager.h.

Member Function Documentation

◆ configure()

◆ dequeue()

virtual std::tuple<EMANE::Models::TDMA::MessageComponents, size_t> EMANE::Models::TDMA::QueueManager::dequeue ( std::uint8_t  u8QueueIndex,
size_t  length,
NEMId  destination 
)
pure virtual

Dequeues a specified number of bytes from a specified queue.

Parameters
u8QueueIndexQueue index of target queue
lengthlength to dequeue in bytes
destinationNEM destination to dequeue, 0 indicates any NEM.
Returns
A tuple containing a list of MessageComponent entries and the the total size in bytes across all entries.
Note
Unless restricted by configuration, the dequeue operation will search multiple queues (highest priority first) in order to return the specified number of bytes. If fragmentation is disabled, all packets in the initially specified queue that are larger than the requested size will be discarded.

Implemented in EMANE::Models::TDMA::BasicQueueManager.

◆ destroy()

◆ enqueue()

virtual size_t EMANE::Models::TDMA::QueueManager::enqueue ( std::uint8_t  u8QueueIndex,
DownstreamPacket &&  pkt 
)
pure virtual

Enqueues a packet in to a specified queue.

Parameters
u8QueueIndexQueue index of target queue
pktPacket to enqueue
Returns
The number of packets dropped as a result of this enqueue. This value would be non-zero in the case of overflow.

Implemented in EMANE::Models::TDMA::BasicQueueManager.

◆ getPacketQueueInfo()

virtual QueueInfos EMANE::Models::TDMA::QueueManager::getPacketQueueInfo ( ) const
pure virtual

Gets queue status.

Returns
A list of QueueInfo entries.

Implemented in EMANE::Models::TDMA::BasicQueueManager.

◆ initialize()

◆ postStart()

◆ processConfiguration()

virtual void EMANE::RunningStateMutable::processConfiguration ( const ConfigurationUpdate update)
inlinevirtualinherited

Process dynamic running-state configuration updates

Parameters
updateConfiguration update
Note
Running state configuration errors are indicated using a validator. Validators can be registered using the ConfigurationRegistrar.

Reimplemented in EMANE::Models::IEEE80211ABG::MACLayer, EMANE::Models::RFPipe::MACLayer, EMANE::Models::TDMA::BaseModel::Implementation, EMANE::Models::TDMA::BaseModel, EMANE::NEMStatefulLayer, EMANE::NEMQueuedLayer, and EMANE::FrameworkPHY.

Definition at line 63 of file runningstatemutable.h.

◆ setPacketStatusPublisher()

void EMANE::Models::TDMA::PacketStatusPublisherUser::setPacketStatusPublisher ( PacketStatusPublisher pPacketStatusPublisher)
inlineinherited

Sets the PacketStatusPublisher

Parameters
pPacketStatusPublisherPacketStatusPublisher reference

Definition at line 64 of file packetstatuspublisheruser.h.

◆ start()

◆ stop()

Member Data Documentation

◆ id_

NEMId EMANE::Models::TDMA::QueueManager::id_
protected

Definition at line 115 of file queuemanager.h.

◆ pPacketStatusPublisher_

PacketStatusPublisher* EMANE::Models::TDMA::PacketStatusPublisherUser::pPacketStatusPublisher_
protectedinherited

Definition at line 70 of file packetstatuspublisheruser.h.

◆ pPlatformService_

PlatformServiceProvider* EMANE::PlatformServiceUser::pPlatformService_
protectedinherited

Definition at line 64 of file platformserviceuser.h.


The documentation for this class was generated from the following file: