INET Framework for OMNeT++/OMNEST
inet::queueing::IPassivePacketSource Class Referenceabstract

This class defines the interface for passive packet sources. More...

#include <IPassivePacketSource.h>

Inheritance diagram for inet::queueing::IPassivePacketSource:
inet::queueing::IPacketPuller inet::queueing::IPacketQueue inet::queueing::IPacketSource inet::queueing::MarkovClassifier inet::queueing::PacketDemultiplexer inet::queueing::PassivePacketSourceBase inet::queueing::PacketPullerBase inet::queueing::PacketQueueBase inet::queueing::IPacketFlow inet::queueing::PacketClassifierBase inet::queueing::PacketSchedulerBase inet::ClockUserModuleMixin< PassivePacketSourceBase > inet::queueing::CompoundPacketQueueBase inet::queueing::PacketQueue inet::PacketDestreamer inet::PacketStreamer inet::PreemptableStreamer inet::queueing::IPacketFilter inet::queueing::IPacketMarker inet::queueing::IPacketMeter inet::queueing::PacketFlowBase inet::ClockUserModuleMixin< PacketClassifierBase > inet::BehaviorAggregateClassifier inet::EthernetFrameClassifier inet::MultiFieldClassifier inet::PcpClassifier inet::PcpTrafficClassClassifier inet::queueing::ContentBasedClassifier inet::queueing::LabelClassifier inet::queueing::PacketClassifier inet::queueing::PriorityClassifier inet::queueing::WrrClassifier inet::StreamClassifier inet::queueing::MultiTokenBucketMixin< PacketClassifierBase > inet::queueing::TokenBucketMixin< PacketClassifierBase > inet::ClockUserModuleMixin< PacketSchedulerBase > inet::queueing::ContentBasedScheduler inet::queueing::LabelScheduler inet::queueing::PacketScheduler inet::queueing::PriorityScheduler inet::queueing::WrrScheduler inet::queueing::PassivePacketSource

Public Member Functions

virtual ~IPassivePacketSource ()
 
virtual bool canPullSomePacket (cGate *gate) const =0
 Returns false if the packet source is empty at the given gate and no more packets can be pulled from it without raising an error. More...
 
virtual PacketcanPullPacket (cGate *gate) const =0
 Returns the packet that can be pulled at the given gate. More...
 
virtual PacketpullPacket (cGate *gate)=0
 Pulls the packet from the packet source at the given gate. More...
 
virtual PacketpullPacketStart (cGate *gate, bps datarate)=0
 Starts pulling the packet from the packet source at the given gate. More...
 
virtual PacketpullPacketEnd (cGate *gate)=0
 Ends pulling the packet from the packet source at the given gate. More...
 
virtual PacketpullPacketProgress (cGate *gate, bps datarate, b position, b extraProcessableLength)=0
 Progresses pulling the packet from the packet source at the given gate. More...
 

Detailed Description

This class defines the interface for passive packet sources.

See the corresponding NED file for more details.

Constructor & Destructor Documentation

◆ ~IPassivePacketSource()

virtual inet::queueing::IPassivePacketSource::~IPassivePacketSource ( )
inlinevirtual
23 {}

Member Function Documentation

◆ canPullPacket()

◆ canPullSomePacket()

virtual bool inet::queueing::IPassivePacketSource::canPullSomePacket ( cGate *  gate) const
pure virtual

Returns false if the packet source is empty at the given gate and no more packets can be pulled from it without raising an error.

The gate must be a valid gate of this module and it must support pulling packets.

Implemented in inet::queueing::PacketFilterBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::queueing::PacketQueue, inet::queueing::PacketFlowBase, inet::PacketDestreamer, inet::queueing::PacketGateBase, inet::queueing::CompoundPacketQueueBase, inet::queueing::MarkovClassifier, inet::queueing::PassivePacketSource, inet::queueing::PacketQueueBase, inet::queueing::PacketPullerBase, inet::queueing::PacketDemultiplexer, and inet::queueing::PassivePacketSourceBase.

Referenced by inet::queueing::InstantServer::canProcessPacket(), inet::queueing::PacketDemultiplexer::canPullSomePacket(), inet::queueing::PacketPullerBase::canPullSomePacket(), inet::queueing::CompoundPacketQueueBase::canPullSomePacket(), inet::PacketDestreamer::canPullSomePacket(), inet::PacketStreamer::canPullSomePacket(), inet::PreemptableStreamer::canPullSomePacket(), inet::EthernetCutthroughSink::canPushPacket(), inet::queueing::PacketServer::canStartProcessingPacket(), inet::queueing::PreemptingServer::canStartStreaming(), inet::queueing::ActivePacketSink::handleCanPullPacketChanged(), inet::queueing::PacketDemultiplexer::handleCanPullPacketChanged(), inet::queueing::ActivePacketSink::handleMessage(), and inet::queueing::ActivePacketSink::initialize().

◆ pullPacket()

◆ pullPacketEnd()

virtual Packet* inet::queueing::IPassivePacketSource::pullPacketEnd ( cGate *  gate)
pure virtual

Ends pulling the packet from the packet source at the given gate.

This is a packet streaming operation. The onwership of the packet is transferred to the sink.

Packet streaming can be started with any of the streaming operations, and ends when the streaming position plus the extra processable packet length equals to the total packet length.

This method is called, for example, when a preemption supporting server module ends streaming a packet from the the source.

The source must not be empty at the gate and no other packet streaming can be in progress. The gate must be a valid gate of this module and it must support pulling and streaming packets. The returned packet must not be nullptr.

Implemented in inet::queueing::PacketFilterBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::queueing::PacketFlowBase, inet::PacketDestreamer, inet::queueing::MarkovClassifier, inet::queueing::PacketQueueBase, inet::queueing::PassivePacketSource, inet::queueing::PacketPullerBase, inet::queueing::PacketDemultiplexer, and inet::queueing::PassivePacketSourceBase.

Referenced by inet::queueing::PreemptingServer::endStreaming(), inet::queueing::PreemptingServer::handlePushPacketProcessed(), and inet::PacketDestreamer::pullPacket().

◆ pullPacketProgress()

virtual Packet* inet::queueing::IPassivePacketSource::pullPacketProgress ( cGate *  gate,
bps  datarate,
b  position,
b  extraProcessableLength 
)
pure virtual

Progresses pulling the packet from the packet source at the given gate.

This is a packet streaming operation. The position specifies where the packet streaming is at the moment. The extra length parameter partially fixes the future of the packet streaming operation. The onwership of the packet is transferred to the sink.

Packet streaming can be started with any of the streaming operations, and ends when the streaming position plus the extra processable packet length equals to the total packet length.

This method is called, for example, to notify the source about a change in the packet data when a preemption occurs.

The source must not be empty at the gate and no other packet streaming can be in progress. The gate must be a valid gate of this module and it must support pulling and streaming packets. The returned packet must not be nullptr.

Implemented in inet::queueing::PacketPullerBase, inet::queueing::PassivePacketSourceBase, inet::queueing::PacketFilterBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::queueing::PacketFlowBase, inet::PacketDestreamer, inet::queueing::MarkovClassifier, inet::queueing::PacketQueueBase, inet::queueing::PassivePacketSource, and inet::queueing::PacketDemultiplexer.

◆ pullPacketStart()

virtual Packet* inet::queueing::IPassivePacketSource::pullPacketStart ( cGate *  gate,
bps  datarate 
)
pure virtual

Starts pulling the packet from the packet source at the given gate.

This is a packet streaming operation. The onwership of the packet is transferred to the sink.

Packet streaming can be started with any of the streaming operations, and ends when the streaming position plus the extra processable packet length equals to the total packet length.

This method is called, for example, when a preemption supporting server module starts streaming a packet from the source.

The source must not be empty at the gate and no other packet streaming can be in progress. The gate must be a valid gate of this module and it must support pulling and streaming packets. The returned packet must not be nullptr.

Implemented in inet::queueing::PacketFilterBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::queueing::PacketFlowBase, inet::PacketDestreamer, inet::queueing::MarkovClassifier, inet::queueing::PacketQueueBase, inet::queueing::PassivePacketSource, inet::queueing::PacketPullerBase, inet::queueing::PacketDemultiplexer, and inet::queueing::PassivePacketSourceBase.

Referenced by inet::PacketDestreamer::pullPacket(), and inet::queueing::PreemptingServer::startStreaming().


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