|
INET Framework for OMNeT++/OMNEST
|
#include <PacketQueueBase.h>
Public Member Functions | |
| virtual bool | canPullSomePacket (cGate *gate) const override |
| 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 bool | canPushSomePacket (cGate *gate) const override |
| Returns false if the packet sink is full at the given gate and no more packets can be pushed into it without raising an error. More... | |
| virtual void | enqueuePacket (Packet *packet) override |
| Enqueues the packet into the packet queue. More... | |
| virtual Packet * | dequeuePacket () override |
| Dequeues the packet from the packet queue. More... | |
| virtual void | pushPacketStart (Packet *packet, cGate *gate, bps datarate) override |
| Starts pushing the packet into the packet sink at the given gate. More... | |
| virtual void | pushPacketEnd (Packet *packet, cGate *gate) override |
| Ends pushing the packet into the packet sink at the given gate. More... | |
| virtual void | pushPacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength=b(0)) override |
| Progresses pushing the packet into the packet sink at the given gate. More... | |
| virtual Packet * | pullPacketStart (cGate *gate, bps datarate) override |
| Starts pulling the packet from the packet source at the given gate. More... | |
| virtual Packet * | pullPacketEnd (cGate *gate) override |
| Ends pulling the packet from the packet source at the given gate. More... | |
| virtual Packet * | pullPacketProgress (cGate *gate, bps datarate, b position, b extraProcessableLength) override |
| Progresses pulling the packet from the packet source at the given gate. More... | |
Public Member Functions inherited from inet::queueing::PacketProcessorBase | |
| virtual bool | supportsPacketSending (cGate *gate) const override |
| Returns true if the processor supports sending packets at the given gate. More... | |
| virtual bool | supportsPacketPassing (cGate *gate) const override |
| Returns true if the processor supports passing packets as a whole at the given gate. More... | |
| virtual bool | supportsPacketStreaming (cGate *gate) const override |
| Returns true if the processor supports streaming packets at the given gate. More... | |
Public Member Functions inherited from inet::queueing::IPacketProcessor | |
| virtual | ~IPacketProcessor () |
| 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... | |
Public Member Functions inherited from inet::queueing::IPacketCollection | |
| virtual int | getMaxNumPackets () const =0 |
| Returns maximum allowed number of packets in the collection. More... | |
| virtual int | getNumPackets () const =0 |
| Returns the number of available packets in the collection in the range [0, inf). More... | |
| virtual b | getMaxTotalLength () const =0 |
| Returns maximum allowed total length of all packets in the collection. More... | |
| virtual b | getTotalLength () const =0 |
| Returns the total length of all packets in the collection in the range [0, inf). More... | |
| virtual Packet * | getPacket (int index) const =0 |
| Returns the packet at the given index. More... | |
| virtual bool | isEmpty () const =0 |
| Returns true if there are no packets available in the collection. More... | |
| virtual void | removePacket (Packet *packet)=0 |
| Removes a packet from the collection. More... | |
| virtual void | removeAllPackets ()=0 |
| Removes all packets from the collection. More... | |
Public Member Functions inherited from inet::queueing::IPassivePacketSink | |
| virtual | ~IPassivePacketSink () |
| virtual bool | canPushPacket (Packet *packet, cGate *gate) const =0 |
| Returns true if the given packet can be pushed at the given gate into the packet sink without raising an error. More... | |
| virtual void | pushPacket (Packet *packet, cGate *gate)=0 |
| Pushes the packet into the packet sink at the given gate. More... | |
Public Member Functions inherited from inet::queueing::IPassivePacketSource | |
| virtual | ~IPassivePacketSource () |
| virtual Packet * | canPullPacket (cGate *gate) const =0 |
| Returns the packet that can be pulled at the given gate. More... | |
| virtual Packet * | pullPacket (cGate *gate)=0 |
| Pulls the packet from the packet source at the given gate. More... | |
Protected Member Functions | |
| virtual void | initialize (int stage) override |
| virtual void | handleMessage (cMessage *message) override |
| virtual void | emit (simsignal_t signal, cObject *object, cObject *details=nullptr) override |
| virtual const char * | resolveDirective (char directive) const override |
Protected Member Functions inherited from inet::queueing::PacketProcessorBase | |
| virtual int | numInitStages () const override |
| virtual void | refreshDisplay () const override |
| virtual void | handlePacketProcessed (Packet *packet) |
| virtual void | checkPacketOperationSupport (cGate *gate) const |
| virtual void | checkPacketOperationSupport (cGate *startGate, cGate *endGate) const |
| virtual void | animate (Packet *packet, cGate *gate, const SendOptions &sendOptions, Action action) const |
| virtual void | animatePacket (Packet *packet, cGate *gate, Action action) const |
| virtual void | animatePacketStart (Packet *packet, cGate *gate, bps datarate, long transmissionId, Action action) const |
| virtual void | animatePacketStart (Packet *packet, cGate *gate, bps datarate, const SendOptions &sendOptions, Action action) const |
| virtual void | animatePacketEnd (Packet *packet, cGate *gate, long transmissionId, Action action) const |
| virtual void | animatePacketEnd (Packet *packet, cGate *gate, const SendOptions &sendOptions, Action action) const |
| virtual void | animatePacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, long transmissionId, Action action) const |
| virtual void | animatePacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, const SendOptions &sendOptions, Action action) const |
| virtual void | pushOrSendPacket (Packet *packet, cGate *gate, IPassivePacketSink *consumer) |
| virtual void | pushOrSendPacketStart (Packet *packet, cGate *gate, IPassivePacketSink *consumer, bps datarate, int transmissionId) |
| virtual void | pushOrSendPacketEnd (Packet *packet, cGate *gate, IPassivePacketSink *consumer, int transmissionId) |
| virtual void | pushOrSendPacketProgress (Packet *packet, cGate *gate, IPassivePacketSink *consumer, bps datarate, b position, b extraProcessableLength, int transmissionId) |
| virtual void | animatePush (Packet *packet, cGate *gate, const SendOptions &sendOptions) const |
| virtual void | animatePushPacket (Packet *packet, cGate *gate) const |
| virtual void | animatePushPacketStart (Packet *packet, cGate *gate, bps datarate, long transmissionId) const |
| virtual void | animatePushPacketStart (Packet *packet, cGate *gate, bps datarate, const SendOptions &sendOptions) const |
| virtual void | animatePushPacketEnd (Packet *packet, cGate *gate, long transmissionId) const |
| virtual void | animatePushPacketEnd (Packet *packet, cGate *gate, const SendOptions &sendOptions) const |
| virtual void | animatePushPacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, long transmissionId) const |
| virtual void | animatePushPacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, const SendOptions &sendOptions) const |
| virtual void | animatePull (Packet *packet, cGate *gate, const SendOptions &sendOptions) const |
| virtual void | animatePullPacket (Packet *packet, cGate *gate) const |
| virtual void | animatePullPacketStart (Packet *packet, cGate *gate, bps datarate, long transmissionId) const |
| virtual void | animatePullPacketStart (Packet *packet, cGate *gate, bps datarate, const SendOptions &sendOptions) const |
| virtual void | animatePullPacketEnd (Packet *packet, cGate *gate, long transmissionId) const |
| virtual void | animatePullPacketEnd (Packet *packet, cGate *gate, const SendOptions &sendOptions) const |
| virtual void | animatePullPacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, long transmissionId) const |
| virtual void | animatePullPacketProgress (Packet *packet, cGate *gate, bps datarate, b position, b extraProcessableLength, const SendOptions &sendOptions) const |
| virtual void | dropPacket (Packet *packet, PacketDropReason reason, int limit=-1) |
| virtual void | updateDisplayString () const |
Protected Attributes | |
| int | numPushedPackets = -1 |
| int | numPulledPackets = -1 |
| int | numRemovedPackets = -1 |
| int | numDroppedPackets = -1 |
| int | numCreatedPackets = -1 |
| cGate * | inputGate = nullptr |
| cGate * | outputGate = nullptr |
Protected Attributes inherited from inet::queueing::PacketProcessorBase | |
| const char * | displayStringTextFormat = nullptr |
| int | numProcessedPackets = -1 |
| b | processedTotalLength = b(-1) |
Additional Inherited Members | |
Protected Types inherited from inet::queueing::PacketProcessorBase | |
| enum | Action { PUSH, PULL } |
|
inlineoverridevirtual |
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.
Implements inet::queueing::IPassivePacketSource.
Reimplemented in inet::queueing::PacketQueue, and inet::queueing::CompoundPacketQueueBase.
|
inlineoverridevirtual |
Returns false if the packet sink is full at the given gate and no more packets can be pushed into it without raising an error.
The gate must be a valid gate of this module and it must support pushing packets.
Implements inet::queueing::IPassivePacketSink.
Reimplemented in inet::queueing::PacketQueue, inet::queueing::CompoundPacketQueueBase, and inet::queueing::InProgressQueue.
|
overridevirtual |
Dequeues the packet from the packet queue.
The onwership of the packet is transferred from the queue to the caller.
The queue must not be empty. The returned packet must not be nullptr.
Implements inet::queueing::IPacketQueue.
|
overrideprotectedvirtual |
Referenced by inet::queueing::PacketQueue::handlePacketRemoved(), inet::queueing::CompoundPacketQueueBase::pullPacket(), inet::queueing::PacketQueue::pullPacket(), inet::queueing::CompoundPacketQueueBase::pushPacket(), inet::queueing::PacketQueue::pushPacket(), inet::queueing::PacketQueue::removeAllPackets(), inet::queueing::CompoundPacketQueueBase::removePacket(), and inet::queueing::PacketQueue::removePacket().
|
overridevirtual |
Enqueues the packet into the packet queue.
The onwership of the packet is transferred from the caller to the queue.
The queue must not be full. The packet must not be nullptr.
Implements inet::queueing::IPacketQueue.
|
overrideprotectedvirtual |
|
overrideprotectedvirtual |
Reimplemented from inet::queueing::PacketProcessorBase.
Reimplemented in inet::queueing::PacketQueue, and inet::queueing::CompoundPacketQueueBase.
Referenced by inet::queueing::CompoundPacketQueueBase::initialize(), and inet::queueing::PacketQueue::initialize().
|
inlineoverridevirtual |
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.
Implements inet::queueing::IPassivePacketSource.
|
inlineoverridevirtual |
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.
Implements inet::queueing::IPassivePacketSource.
|
inlineoverridevirtual |
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.
Implements inet::queueing::IPassivePacketSource.
|
inlineoverridevirtual |
Ends pushing the packet into the packet sink 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 to the sink.
The sink must not be full at the gate and no other packet streaming can be in progress. The packet must not be nullptr. The gate must be a valid gate of this module and it must support pushing and streaming packets.
Implements inet::queueing::IPassivePacketSink.
|
inlineoverridevirtual |
Progresses pushing the packet into the packet sink 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 sink about a change in the packet data when a preemption occurs.
The sink must not be full at the gate and no other packet streaming can be in progress. The packet must not be nullptr. The gate must be a valid gate of this module and it must support pushing and streaming packets.
Implements inet::queueing::IPassivePacketSink.
|
inlineoverridevirtual |
Starts pushing the packet into the packet sink 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 to the sink.
The sink must not be full at the gate and no other packet streaming can be in progress. The packet must not be nullptr. The gate must be a valid gate of this module and it must support pushing and streaming packets.
Implements inet::queueing::IPassivePacketSink.
|
overrideprotectedvirtual |
Reimplemented from inet::queueing::PacketProcessorBase.
|
protected |
|
protected |
|
protected |
Referenced by emit(), initialize(), inet::queueing::CompoundPacketQueueBase::receiveSignal(), and resolveDirective().
|
protected |
Referenced by emit(), initialize(), and resolveDirective().
|
protected |
Referenced by emit(), initialize(), and resolveDirective().
|
protected |
Referenced by emit(), initialize(), and resolveDirective().
|
protected |