EMANE  1.2.1
EMANE::Models::TDMA::Scheduler Class Referenceabstract

Scheduler interface used by BaseModel to communicate with a scheduler module. More...

#include <scheduler.h>

Inheritance diagram for EMANE::Models::TDMA::Scheduler:
EMANE::Component EMANE::PlatformServiceUser EMANE::RunningStateMutable EMANE::EventServiceUser EMANE::TimerServiceUser EMANE::Models::TDMA::EventScheduler

Public Member Functions

virtual ~Scheduler ()
 
virtual std::pair< RxSlotInfo, bool > getRxSlotInfo (const TimePoint &timePoint) const =0
 
virtual std::pair< TxSlotInfos, TimePointgetTxSlotInfo (const TimePoint &timePoint, int multiframes) const =0
 
virtual SlotInfo getSlotInfo (std::uint64_t u64AbsoluteSlotIndex) const =0
 
virtual SlotInfo getSlotInfo (const TimePoint &timePoint) const =0
 
virtual void processSchedulerPacket (UpstreamPacket &pkt, const PacketMetaInfo &packetMetaInfo)=0
 
virtual void processPacketMetaInfo (const PacketMetaInfo &packetMetaInfo)=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 processEvent (const EventId &eventId, const Serialization &serialization)
 
virtual void processTimedEvent (TimerEventId eventId, const TimePoint &expireTime, const TimePoint &scheduleTime, const TimePoint &fireTime, const void *arg)
 
virtual void processConfiguration (const ConfigurationUpdate &update)
 

Protected Member Functions

 Scheduler (NEMId id, PlatformServiceProvider *pPlatformServiceProvider, SchedulerUser *pSchedulerUser)
 

Protected Attributes

SchedulerUserpSchedulerUser_
 
NEMId id_
 
PlatformServiceProviderpPlatformService_
 

Detailed Description

Scheduler interface used by BaseModel to communicate with a scheduler module.

Definition at line 56 of file scheduler.h.

Constructor & Destructor Documentation

◆ ~Scheduler()

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

Destroys an instance.

Definition at line 64 of file scheduler.h.

◆ Scheduler()

EMANE::Models::TDMA::Scheduler::Scheduler ( NEMId  id,
PlatformServiceProvider pPlatformServiceProvider,
SchedulerUser pSchedulerUser 
)
inlineprotected

Creates an instance.

Definition at line 145 of file scheduler.h.

Member Function Documentation

◆ configure()

◆ destroy()

◆ getRxSlotInfo()

virtual std::pair<RxSlotInfo,bool> EMANE::Models::TDMA::Scheduler::getRxSlotInfo ( const TimePoint timePoint) const
pure virtual

Gets the RxSlotInfo for a specified time.

Parameters
timePointCurrent time
Returns
A pair holding the RxSlotInfo and a bool set to true if the slot is a valid receive slot.

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ getSlotInfo() [1/2]

virtual SlotInfo EMANE::Models::TDMA::Scheduler::getSlotInfo ( std::uint64_t  u64AbsoluteSlotIndex) const
pure virtual

Gets the slot info for a specified absolute slot index

Parameters
u64AbsoluteSlotIndexAbsolute slot index
Returns
Slot information

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ getSlotInfo() [2/2]

virtual SlotInfo EMANE::Models::TDMA::Scheduler::getSlotInfo ( const TimePoint timePoint) const
pure virtual

Gets the slot info for a specified time

Parameters
timePointTime of desired slot info
Returns
Slot information

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ getTxSlotInfo()

virtual std::pair<TxSlotInfos,TimePoint> EMANE::Models::TDMA::Scheduler::getTxSlotInfo ( const TimePoint timePoint,
int  multiframes 
) const
pure virtual

Gets the transmit slot info for a specified number of multiframes occurring on or after a specified time.

Parameters
timePointStart time of transmit opportunity search
multiframesNumber of mulitframes worth of transmit opportunities to return
Returns
A pair holding a list of TxSlotInfo entries and the next time to use when requesting more transmit opportunities.
Note
Using the returned time value during the next request allows you to determine the number of missed opportunities due to system timing/resource issues.

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ 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.

◆ processEvent()

virtual void EMANE::EventServiceUser::processEvent ( const EventId eventId,
const Serialization serialization 
)
inlinevirtualinherited

◆ processPacketMetaInfo()

virtual void EMANE::Models::TDMA::Scheduler::processPacketMetaInfo ( const PacketMetaInfo packetMetaInfo)
pure virtual

Process packet information for a received over-the-air data packet.

Parameters
packetMetaInfoMeta information associated with received packet

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ processSchedulerPacket()

virtual void EMANE::Models::TDMA::Scheduler::processSchedulerPacket ( UpstreamPacket pkt,
const PacketMetaInfo packetMetaInfo 
)
pure virtual

Process a Scheduler message received over-the-air.

Parameters
pktReceived UpstreamPacket
packetMetaInfoMeta information associated with received packet

Implemented in EMANE::Models::TDMA::EventScheduler.

◆ processTimedEvent()

virtual void EMANE::TimerServiceUser::processTimedEvent ( TimerEventId  eventId,
const TimePoint expireTime,
const TimePoint scheduleTime,
const TimePoint fireTime,
const void *  arg 
)
inlinevirtualinherited

Process a timed event

Parameters
eventIdIdentifier corresponding to the timer being processed
expireTimeThe time the timer was scheduled to expire
scheduleTimeThe Time the timer was scheduled
fireTimeTime time The time the timer actually fired
argOpaque timed event data
Note
All times are abosulte using CLOCK_REALTIME

Reimplemented in EMANE::NEMStatefulLayer, EMANE::Models::Bypass::PHYLayer, EMANE::NEMQueuedLayer, EMANE::Models::PHYAPITest::ShimLayer, EMANE::Models::CommEffect::Shim, EMANE::Agents::GPSDLocation::Agent, EMANE::TimerServiceProxy, and EMANE::NEMTimerServiceProxy.

Definition at line 62 of file timerserviceuser.h.

◆ start()

◆ stop()

Member Data Documentation

◆ id_

NEMId EMANE::Models::TDMA::Scheduler::id_
protected

Definition at line 140 of file scheduler.h.

◆ pPlatformService_

PlatformServiceProvider* EMANE::PlatformServiceUser::pPlatformService_
protectedinherited

Definition at line 64 of file platformserviceuser.h.

◆ pSchedulerUser_

SchedulerUser* EMANE::Models::TDMA::Scheduler::pSchedulerUser_
protected

Definition at line 139 of file scheduler.h.


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