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

This class defines the interface for packet processors. More...

#include <IPacketProcessor.h>

Inheritance diagram for inet::queueing::IPacketProcessor:
inet::queueing::PacketProcessorBase inet::ClockUserModuleMixin< PacketProcessorBase > inet::DscpMarker inet::NetworkInterface inet::PacketDestreamer inet::PacketMeterBase inet::queueing::EmptyPacketSource inet::queueing::PacketBufferBase inet::queueing::PacketClassifierBase inet::queueing::PacketCloner inet::queueing::PacketDemultiplexer inet::queueing::PacketDuplicatorBase inet::queueing::PacketFilterBase inet::queueing::PacketFlowBase inet::queueing::PacketMultiplexer inet::queueing::PacketPullerBase inet::queueing::PacketPusherBase inet::queueing::PacketQueueBase inet::queueing::PacketSchedulerBase inet::queueing::PacketSendToPush inet::queueing::PacketServerBase inet::queueing::PacketSinkBase inet::queueing::PacketSourceBase inet::queueing::TokenGeneratorBase inet::OperationalMixin< PacketProcessorBase >

Public Member Functions

virtual ~IPacketProcessor ()
 
virtual bool supportsPacketSending (cGate *gate) const =0
 Returns true if the processor supports sending packets at the given gate. More...
 
virtual bool supportsPacketPushing (cGate *gate) const =0
 Returns true if the processor supports pushing packets at the given gate. More...
 
virtual bool supportsPacketPulling (cGate *gate) const =0
 Returns true if the processor supports pulling packets at the given gate. More...
 
virtual bool supportsPacketPassing (cGate *gate) const =0
 Returns true if the processor supports passing packets as a whole at the given gate. More...
 
virtual bool supportsPacketStreaming (cGate *gate) const =0
 Returns true if the processor supports streaming packets at the given gate. More...
 

Detailed Description

This class defines the interface for packet processors.

Constructor & Destructor Documentation

◆ ~IPacketProcessor()

virtual inet::queueing::IPacketProcessor::~IPacketProcessor ( )
inlinevirtual
22 {}

Member Function Documentation

◆ supportsPacketPassing()

virtual bool inet::queueing::IPacketProcessor::supportsPacketPassing ( cGate *  gate) const
pure virtual

Returns true if the processor supports passing packets as a whole at the given gate.

A passed packet is handed over from one module to another by either the standard OMNeT++ handleMessage() mechanism, or by directly calling pushPacket() or pullPacket().

For example, packets are passed as a whole to and from a queue module.

Connecting incompatible gates raises an error during initialize. The gate parameter must be a valid gate of this module. The gate should be marked with @labels(pass) in the NED file.

Implemented in inet::NetworkInterface, inet::queueing::PacketProcessorBase, inet::PreemptableStreamer, inet::PacketStreamer, and inet::PacketDestreamer.

◆ supportsPacketPulling()

virtual bool inet::queueing::IPacketProcessor::supportsPacketPulling ( cGate *  gate) const
pure virtual

Returns true if the processor supports pulling packets at the given gate.

Pulling a packet is a synchronous operation that is initiated by the sink module. A pulled packet can be passed as a whole using pullPacket(), or it can be streamed from the source to the sink using pullPacketStart(), pullPacketEnd(), and pullPacketProgress().

For output gates, true means that the connected module can pull packets from this module. For input gates, true means that this module can pull packets from the connected module. For example, a packet server module can pull packets from a queue module.

Connecting incompatible gates raises an error during initialize. The gate parameter must be a valid gate of this module. The gate should be marked with @labels(pull) in the NED file.

Implemented in inet::NetworkInterface, inet::PacketTransmitterBase, inet::queueing::PacketQueue, inet::queueing::PacketFilterBase, inet::PacketReceiverBase, inet::queueing::CompoundPacketQueueBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketGateBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::InterpacketGapInserter, inet::queueing::PacketFlowBase, inet::queueing::PacketBuffer, inet::PacketDestreamer, inet::queueing::PacketMultiplexer, inet::queueing::MarkovClassifier, inet::queueing::MarkovScheduler, inet::DscpMarker, inet::queueing::PassivePacketSource, inet::queueing::PacketPusherBase, inet::queueing::PassivePacketSink, inet::PacketMeterBase, inet::queueing::PacketPullerBase, inet::queueing::PacketServerBase, inet::queueing::PacketBasedTokenGenerator, inet::queueing::TimeBasedTokenGenerator, inet::queueing::PacketDemultiplexer, inet::queueing::PacketDuplicatorBase, inet::queueing::TokenGeneratorBase, inet::queueing::PacketCloner, inet::queueing::QueueBasedTokenGenerator, inet::queueing::PacketSendToPush, inet::queueing::PcapFilePacketConsumer, inet::queueing::ActivePacketSinkBase, inet::queueing::ActivePacketSourceBase, inet::queueing::PassivePacketSinkBase, inet::queueing::EmptyPacketSource, inet::queueing::PassivePacketSourceBase, and inet::queueing::SignalBasedTokenGenerator.

◆ supportsPacketPushing()

virtual bool inet::queueing::IPacketProcessor::supportsPacketPushing ( cGate *  gate) const
pure virtual

Returns true if the processor supports pushing packets at the given gate.

Pushing a packet is a synchronous operation that is initiated by the source module. A pushed packet can be passed as a whole using pushPacket(), or it can be streamed from the source to the sink using pushPacketStart(), pushPacketEnd(), and pushPacketProgress().

For output gates, true means that this module can push packets into the connected module. For input gates, true means that the connected module can push packets into this module. For example, a packet generator module can push packets into a queue module.

Connecting incompatible gates raises an error during initialize. The gate parameter must be a valid gate of this module. The gate should be marked with @labels(push) in the NED file.

Implemented in inet::NetworkInterface, inet::PacketTransmitterBase, inet::queueing::PacketQueue, inet::queueing::PacketFilterBase, inet::PacketReceiverBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketGateBase, inet::queueing::PacketSchedulerBase, inet::queueing::CompoundPacketQueueBase, inet::PacketStreamer, inet::InterpacketGapInserter, inet::queueing::PacketFlowBase, inet::queueing::PacketBuffer, inet::queueing::PacketMultiplexer, inet::PacketDestreamer, inet::queueing::MarkovClassifier, inet::queueing::MarkovScheduler, inet::DscpMarker, inet::queueing::PassivePacketSource, inet::queueing::PacketPusherBase, inet::queueing::PassivePacketSink, inet::PacketMeterBase, inet::queueing::PacketPullerBase, inet::queueing::PacketServerBase, inet::queueing::PacketBasedTokenGenerator, inet::queueing::TimeBasedTokenGenerator, inet::queueing::PacketDemultiplexer, inet::queueing::PacketDuplicatorBase, inet::queueing::TokenGeneratorBase, inet::queueing::PacketCloner, inet::queueing::QueueBasedTokenGenerator, inet::queueing::PacketSendToPush, inet::queueing::PcapFilePacketConsumer, inet::queueing::ActivePacketSinkBase, inet::queueing::ActivePacketSourceBase, inet::queueing::PassivePacketSinkBase, inet::queueing::EmptyPacketSource, inet::queueing::PassivePacketSourceBase, and inet::queueing::SignalBasedTokenGenerator.

◆ supportsPacketSending()

virtual bool inet::queueing::IPacketProcessor::supportsPacketSending ( cGate *  gate) const
pure virtual

Returns true if the processor supports sending packets at the given gate.

Sending a packet is an asynchronous operation that is initiated by the source module. A sent packet is always passed as a whole using standard handleMessage().

For output gates, true means that this module can send packets into the connected module. For input gates, true means that the connected module can send packets into this module. For example, a standard OMNeT++ module can send packets to an INET packet processor module, or an INET packet processor module can send packets to a standard OMNeT++ module.

Connecting incompatible gates raises an error during initialize. The gate parameter must be a valid gate of this module. The gate should be marked with @labels(send) in the NED file.

Implemented in inet::NetworkInterface, and inet::queueing::PacketProcessorBase.

◆ supportsPacketStreaming()

virtual bool inet::queueing::IPacketProcessor::supportsPacketStreaming ( cGate *  gate) const
pure virtual

Returns true if the processor supports streaming packets at the given gate.

A streamed packet is handed over from one module to another using several method calls and potentially exending to a non-zero simulation duration.

For example, packets are streamed to a preemptable signal transmitter module.

Connecting incompatible gates raises an error during initialize. The gate parameter must be a valid gate of this module. The gate should be marked with @labels(stream) in the NED file.

Implemented in inet::NetworkInterface, inet::queueing::PacketProcessorBase, inet::queueing::PacketFilterBase, inet::PreemptableStreamer, inet::queueing::PacketClassifierBase, inet::queueing::PacketSchedulerBase, inet::PacketStreamer, inet::queueing::PacketFlowBase, inet::PacketDestreamer, inet::queueing::PacketMultiplexer, inet::StreamThroughTransmitter, inet::DestreamingReceiver, inet::StreamingTransmitter, and inet::StreamThroughReceiver.


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