INET Framework for OMNeT++/OMNEST
inet::queueing::CompoundPacketQueueBase Class Reference

#include <CompoundPacketQueueBase.h>

Inheritance diagram for inet::queueing::CompoundPacketQueueBase:
inet::queueing::PacketQueueBase inet::queueing::PacketProcessorBase inet::queueing::IPacketQueue inet::queueing::IPacketProcessor inet::StringFormat::IDirectiveResolver inet::queueing::IPacketCollection inet::queueing::IPassivePacketSink inet::queueing::IPassivePacketSource

Public Member Functions

virtual int getMaxNumPackets () const override
 Returns maximum allowed number of packets in the collection. More...
 
virtual int getNumPackets () const override
 Returns the number of available packets in the collection in the range [0, inf). More...
 
virtual b getMaxTotalLength () const override
 Returns maximum allowed total length of all packets in the collection. More...
 
virtual b getTotalLength () const override
 Returns the total length of all packets in the collection in the range [0, inf). More...
 
virtual bool isEmpty () const override
 Returns true if there are no packets available in the collection. More...
 
virtual PacketgetPacket (int index) const override
 Returns the packet at the given index. More...
 
virtual void removePacket (Packet *packet) override
 Removes a packet from the collection. More...
 
virtual void removeAllPackets () override
 Removes all packets from the collection. More...
 
virtual bool supportsPacketPushing (cGate *gate) const override
 Returns true if the processor supports pushing packets at the given gate. 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 bool canPushPacket (Packet *packet, cGate *gate) const override
 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) override
 Pushes the packet into the packet sink at the given gate. More...
 
virtual bool supportsPacketPulling (cGate *gate) const override
 Returns true if the processor supports pulling packets at the given gate. More...
 
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 PacketcanPullPacket (cGate *gate) const override
 Returns the packet that can be pulled at the given gate. More...
 
virtual PacketpullPacket (cGate *gate) override
 Pulls the packet from the packet source at the given gate. More...
 
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 
- Public Member Functions inherited from inet::queueing::PacketQueueBase
virtual void enqueuePacket (Packet *packet) override
 Enqueues the packet into the packet queue. More...
 
virtual PacketdequeuePacket () 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 PacketpullPacketStart (cGate *gate, bps datarate) override
 Starts pulling the packet from the packet source at the given gate. More...
 
virtual PacketpullPacketEnd (cGate *gate) override
 Ends pulling the packet from the packet source at the given gate. More...
 
virtual PacketpullPacketProgress (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 ()
 
- Public Member Functions inherited from inet::queueing::IPassivePacketSink
virtual ~IPassivePacketSink ()
 
- Public Member Functions inherited from inet::queueing::IPassivePacketSource
virtual ~IPassivePacketSource ()
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual IPacketDropperFunctioncreateDropperFunction (const char *dropperClass) const
 
virtual bool isOverloaded () const
 
- Protected Member Functions inherited from inet::queueing::PacketQueueBase
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 packetCapacity = -1
 
b dataCapacity = b(-1)
 
IPassivePacketSinkconsumer = nullptr
 
IPassivePacketSourceprovider = nullptr
 
IPacketCollectioncollection = nullptr
 
IPacketDropperFunctionpacketDropperFunction = nullptr
 
- Protected Attributes inherited from inet::queueing::PacketQueueBase
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 }
 

Member Function Documentation

◆ canPullPacket()

virtual Packet* inet::queueing::CompoundPacketQueueBase::canPullPacket ( cGate *  gate) const
inlineoverridevirtual

Returns the packet that can be pulled at the given gate.

The returned value is nullptr if there is no such packet.

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

Implements inet::queueing::IPassivePacketSource.

58 { return provider->canPullPacket(gate); }

◆ canPullSomePacket()

virtual bool inet::queueing::CompoundPacketQueueBase::canPullSomePacket ( cGate *  gate) const
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.

Reimplemented from inet::queueing::PacketQueueBase.

57 { return provider->canPullSomePacket(gate); }

◆ canPushPacket()

bool inet::queueing::CompoundPacketQueueBase::canPushPacket ( Packet packet,
cGate *  gate 
) const
overridevirtual

Returns true if the given packet can be pushed at the given gate into the packet sink without raising an error.

The packet must not be nullptr. The gate must be a valid gate of this module and it must support pushing packets.

Implements inet::queueing::IPassivePacketSink.

112 {
114  return true;
115  if (getMaxNumPackets() != -1 && getNumPackets() >= getMaxNumPackets())
116  return false;
117  if (getMaxTotalLength() != b(-1) && getMaxTotalLength() - getTotalLength() < packet->getDataLength())
118  return false;
119  return true;
120 }

◆ canPushSomePacket()

bool inet::queueing::CompoundPacketQueueBase::canPushSomePacket ( cGate *  gate) const
overridevirtual

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.

Reimplemented from inet::queueing::PacketQueueBase.

101 {
103  return true;
104  if (getMaxNumPackets() != -1 && getNumPackets() >= getMaxNumPackets())
105  return false;
106  if (getMaxTotalLength() != b(-1) && getTotalLength() >= getMaxTotalLength())
107  return false;
108  return true;
109 }

◆ createDropperFunction()

IPacketDropperFunction * inet::queueing::CompoundPacketQueueBase::createDropperFunction ( const char *  dropperClass) const
protectedvirtual
40 {
41  if (strlen(dropperClass) == 0)
42  return nullptr;
43  else
44  return check_and_cast<IPacketDropperFunction *>(createOne(dropperClass));
45 }

Referenced by initialize().

◆ getMaxNumPackets()

virtual int inet::queueing::CompoundPacketQueueBase::getMaxNumPackets ( ) const
inlineoverridevirtual

Returns maximum allowed number of packets in the collection.

The value -1 means no such limit.

Implements inet::queueing::IPacketCollection.

40 { return packetCapacity; }

Referenced by canPushPacket(), and canPushSomePacket().

◆ getMaxTotalLength()

virtual b inet::queueing::CompoundPacketQueueBase::getMaxTotalLength ( ) const
inlineoverridevirtual

Returns maximum allowed total length of all packets in the collection.

The value -1 means no such limit.

Implements inet::queueing::IPacketCollection.

43 { return dataCapacity; }

Referenced by canPushPacket(), and canPushSomePacket().

◆ getNumPackets()

virtual int inet::queueing::CompoundPacketQueueBase::getNumPackets ( ) const
inlineoverridevirtual

Returns the number of available packets in the collection in the range [0, inf).

Implements inet::queueing::IPacketCollection.

41 { return collection->getNumPackets(); }

Referenced by canPushPacket(), canPushSomePacket(), and isOverloaded().

◆ getPacket()

virtual Packet* inet::queueing::CompoundPacketQueueBase::getPacket ( int  index) const
inlineoverridevirtual

Returns the packet at the given index.

Throws error when the index is out of range.

Implements inet::queueing::IPacketCollection.

47 { return collection->getPacket(index); }

◆ getTotalLength()

virtual b inet::queueing::CompoundPacketQueueBase::getTotalLength ( ) const
inlineoverridevirtual

Returns the total length of all packets in the collection in the range [0, inf).

Implements inet::queueing::IPacketCollection.

44 { return collection->getTotalLength(); }

Referenced by canPushPacket(), canPushSomePacket(), and isOverloaded().

◆ initialize()

void inet::queueing::CompoundPacketQueueBase::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::queueing::PacketQueueBase.

18 {
20  if (stage == INITSTAGE_LOCAL) {
21  packetCapacity = par("packetCapacity");
22  dataCapacity = b(par("dataCapacity"));
23  consumer = check_and_cast<IPassivePacketSink *>(inputGate->getPathEndGate()->getOwnerModule());
24  provider = check_and_cast<IPassivePacketSource *>(outputGate->getPathStartGate()->getOwnerModule());
25  collection = check_and_cast<IPacketCollection *>(provider);
26  packetDropperFunction = createDropperFunction(par("dropperClass"));
27  subscribe(packetDroppedSignal, this);
28  subscribe(packetCreatedSignal, this);
29  WATCH(numCreatedPackets);
30  }
31  else if (stage == INITSTAGE_QUEUEING) {
34  }
35  else if (stage == INITSTAGE_LAST)
37 }

◆ isEmpty()

virtual bool inet::queueing::CompoundPacketQueueBase::isEmpty ( ) const
inlineoverridevirtual

Returns true if there are no packets available in the collection.

Implements inet::queueing::IPacketCollection.

46 { return collection->isEmpty(); }

◆ isOverloaded()

bool inet::queueing::CompoundPacketQueueBase::isOverloaded ( ) const
protectedvirtual
48 {
49  return (packetCapacity != -1 && getNumPackets() > packetCapacity) ||
50  (dataCapacity != b(-1) && getTotalLength() > dataCapacity);
51 }

Referenced by pushPacket().

◆ pullPacket()

Packet * inet::queueing::CompoundPacketQueueBase::pullPacket ( cGate *  gate)
overridevirtual

Pulls the packet from the packet source at the given gate.

This operation pulls the packet as a whole. The onwership of the packet is transferred to the sink.

The source must not be empty at the given gate. The returned packet must not be nullptr. The gate must be a valid gate of this module and it must support pulling and passing packets.

Implements inet::queueing::IPassivePacketSource.

76 {
77  Enter_Method("pullPacket");
78  auto packet = provider->pullPacket(outputGate->getPathStartGate());
79  take(packet);
80  emit(packetPulledSignal, packet);
82  return packet;
83 }

◆ pushPacket()

void inet::queueing::CompoundPacketQueueBase::pushPacket ( Packet packet,
cGate *  gate 
)
overridevirtual

Pushes the packet into the packet sink at the given gate.

This operation pushes the packet as a whole. The onwership of the packet is transferred to the sink.

This method is called, for example, when a packet source module pushes a packet into a queue module.

The sink must not be full at the gate. The packet must not be nullptr. The gate must be a valid gate of this module and it must support pushing and passing packets.

Implements inet::queueing::IPassivePacketSink.

54 {
55  Enter_Method("pushPacket");
56  take(packet);
57  cNamedObject packetPushStartedDetails("atomicOperationStarted");
58  emit(packetPushStartedSignal, packet, &packetPushStartedDetails);
59  EV_INFO << "Pushing packet" << EV_FIELD(packet) << EV_ENDL;
60  consumer->pushPacket(packet, inputGate->getPathEndGate());
61  if (packetDropperFunction != nullptr) {
62  while (isOverloaded()) {
63  auto packet = packetDropperFunction->selectPacket(this);
64  EV_INFO << "Dropping packet" << EV_FIELD(packet) << EV_ENDL;
65  removePacket(packet);
66  dropPacket(packet, QUEUE_OVERFLOW);
67  }
68  }
69  ASSERT(!isOverloaded());
70  cNamedObject packetPushEndedDetails("atomicOperationEnded");
71  emit(packetPushEndedSignal, nullptr, &packetPushEndedDetails);
73 }

◆ receiveSignal()

void inet::queueing::CompoundPacketQueueBase::receiveSignal ( cComponent *  source,
simsignal_t  signal,
cObject *  object,
cObject *  details 
)
overridevirtual
123 {
124  Enter_Method("%s", cComponent::getSignalName(signal));
125  if (signal == packetDroppedSignal)
127  else if (signal == packetCreatedSignal)
129  else
130  throw cRuntimeError("Unknown signal");
132 }

◆ removeAllPackets()

void inet::queueing::CompoundPacketQueueBase::removeAllPackets ( )
overridevirtual

Removes all packets from the collection.

Implements inet::queueing::IPacketCollection.

94 {
95  Enter_Method("removeAllPacket");
98 }

◆ removePacket()

void inet::queueing::CompoundPacketQueueBase::removePacket ( Packet packet)
overridevirtual

Removes a packet from the collection.

The collection must contain the packet.

Implements inet::queueing::IPacketCollection.

86 {
87  Enter_Method("removePacket");
88  collection->removePacket(packet);
89  emit(packetRemovedSignal, packet);
91 }

Referenced by pushPacket().

◆ supportsPacketPulling()

virtual bool inet::queueing::CompoundPacketQueueBase::supportsPacketPulling ( cGate *  gate) const
inlineoverridevirtual

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.

Implements inet::queueing::IPacketProcessor.

56 { return outputGate == gate; }

◆ supportsPacketPushing()

virtual bool inet::queueing::CompoundPacketQueueBase::supportsPacketPushing ( cGate *  gate) const
inlineoverridevirtual

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.

Implements inet::queueing::IPacketProcessor.

51 { return inputGate == gate; }

Member Data Documentation

◆ collection

IPacketCollection* inet::queueing::CompoundPacketQueueBase::collection = nullptr
protected

◆ consumer

IPassivePacketSink* inet::queueing::CompoundPacketQueueBase::consumer = nullptr
protected

Referenced by initialize(), and pushPacket().

◆ dataCapacity

b inet::queueing::CompoundPacketQueueBase::dataCapacity = b(-1)
protected

Referenced by initialize(), and isOverloaded().

◆ packetCapacity

int inet::queueing::CompoundPacketQueueBase::packetCapacity = -1
protected

Referenced by initialize(), and isOverloaded().

◆ packetDropperFunction

IPacketDropperFunction* inet::queueing::CompoundPacketQueueBase::packetDropperFunction = nullptr
protected

◆ provider

IPassivePacketSource* inet::queueing::CompoundPacketQueueBase::provider = nullptr
protected

Referenced by initialize(), and pullPacket().


The documentation for this class was generated from the following files:
inet::queueing::CompoundPacketQueueBase::getNumPackets
virtual int getNumPackets() const override
Returns the number of available packets in the collection in the range [0, inf).
Definition: CompoundPacketQueueBase.h:41
inet::queueing::CompoundPacketQueueBase::createDropperFunction
virtual IPacketDropperFunction * createDropperFunction(const char *dropperClass) const
Definition: CompoundPacketQueueBase.cc:39
inet::INITSTAGE_LAST
INET_API InitStage INITSTAGE_LAST
Operations that no other initializations can depend on, e.g.
inet::queueing::CompoundPacketQueueBase::removePacket
virtual void removePacket(Packet *packet) override
Removes a packet from the collection.
Definition: CompoundPacketQueueBase.cc:85
inet::INITSTAGE_QUEUEING
INET_API InitStage INITSTAGE_QUEUEING
Initialization of queueing modules.
inet::queueing::CompoundPacketQueueBase::dataCapacity
b dataCapacity
Definition: CompoundPacketQueueBase.h:24
inet::queueing::IPassivePacketSink::pushPacket
virtual void pushPacket(Packet *packet, cGate *gate)=0
Pushes the packet into the packet sink at the given gate.
inet::queueing::IPacketCollection::isEmpty
virtual bool isEmpty() const =0
Returns true if there are no packets available in the collection.
inet::packetRemovedSignal
simsignal_t packetRemovedSignal
Definition: Simsignals.cc:84
inet::queueing::IPassivePacketSource::canPullPacket
virtual Packet * canPullPacket(cGate *gate) const =0
Returns the packet that can be pulled at the given gate.
inet::queueing::CompoundPacketQueueBase::getMaxNumPackets
virtual int getMaxNumPackets() const override
Returns maximum allowed number of packets in the collection.
Definition: CompoundPacketQueueBase.h:40
inet::packetPulledSignal
simsignal_t packetPulledSignal
Definition: Simsignals.cc:105
inet::queueing::IPacketCollection::getNumPackets
virtual int getNumPackets() const =0
Returns the number of available packets in the collection in the range [0, inf).
inet::utils::createOne
cObject * createOne(const char *className, const char *defaultNamespace)
Like cObjectFactory::createOne(), except it starts searching for the class in the given namespace.
Definition: INETUtils.cc:147
inet::packetDroppedSignal
simsignal_t packetDroppedSignal
Definition: Simsignals.cc:85
inet::packetPushStartedSignal
simsignal_t packetPushStartedSignal
Definition: Simsignals.cc:102
inet::queueing::CompoundPacketQueueBase::collection
IPacketCollection * collection
Definition: CompoundPacketQueueBase.h:28
inet::queueing::IPacketCollection::removePacket
virtual void removePacket(Packet *packet)=0
Removes a packet from the collection.
inet::queueing::IPacketCollection::removeAllPackets
virtual void removeAllPackets()=0
Removes all packets from the collection.
inet::queueing::PacketQueueBase::numDroppedPackets
int numDroppedPackets
Definition: PacketQueueBase.h:23
inet::queueing::PacketQueueBase::emit
virtual void emit(simsignal_t signal, cObject *object, cObject *details=nullptr) override
Definition: PacketQueueBase.cc:53
inet::QUEUE_OVERFLOW
@ QUEUE_OVERFLOW
Definition: Simsignals_m.h:77
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::queueing::PacketProcessorBase::dropPacket
virtual void dropPacket(Packet *packet, PacketDropReason reason, int limit=-1)
Definition: PacketProcessorBase.cc:390
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::queueing::IPacketCollection::getPacket
virtual Packet * getPacket(int index) const =0
Returns the packet at the given index.
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::queueing::IPacketDropperFunction::selectPacket
virtual Packet * selectPacket(IPacketCollection *collection) const =0
Returns a packet to be dropped from the collection.
inet::queueing::PacketProcessorBase::updateDisplayString
virtual void updateDisplayString() const
Definition: PacketProcessorBase.cc:399
inet::packetCreatedSignal
simsignal_t packetCreatedSignal
Definition: Simsignals.cc:82
inet::queueing::CompoundPacketQueueBase::provider
IPassivePacketSource * provider
Definition: CompoundPacketQueueBase.h:27
inet::queueing::PacketProcessorBase::checkPacketOperationSupport
virtual void checkPacketOperationSupport(cGate *gate) const
Definition: PacketProcessorBase.cc:40
inet::queueing::PacketQueueBase::numCreatedPackets
int numCreatedPackets
Definition: PacketQueueBase.h:24
inet::queueing::CompoundPacketQueueBase::packetDropperFunction
IPacketDropperFunction * packetDropperFunction
Definition: CompoundPacketQueueBase.h:30
inet::queueing::PacketQueueBase::outputGate
cGate * outputGate
Definition: PacketQueueBase.h:27
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::queueing::CompoundPacketQueueBase::packetCapacity
int packetCapacity
Definition: CompoundPacketQueueBase.h:23
inet::queueing::CompoundPacketQueueBase::getMaxTotalLength
virtual b getMaxTotalLength() const override
Returns maximum allowed total length of all packets in the collection.
Definition: CompoundPacketQueueBase.h:43
inet::queueing::CompoundPacketQueueBase::getTotalLength
virtual b getTotalLength() const override
Returns the total length of all packets in the collection in the range [0, inf).
Definition: CompoundPacketQueueBase.h:44
inet::queueing::CompoundPacketQueueBase::consumer
IPassivePacketSink * consumer
Definition: CompoundPacketQueueBase.h:26
inet::queueing::IPacketCollection::getTotalLength
virtual b getTotalLength() const =0
Returns the total length of all packets in the collection in the range [0, inf).
inet::queueing::PacketQueueBase::inputGate
cGate * inputGate
Definition: PacketQueueBase.h:26
inet::queueing::CompoundPacketQueueBase::isOverloaded
virtual bool isOverloaded() const
Definition: CompoundPacketQueueBase.cc:47
inet::queueing::IPassivePacketSource::canPullSomePacket
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 ...
EV_ENDL
#define EV_ENDL
Definition: INETDefs.h:114
inet::queueing::IPassivePacketSource::pullPacket
virtual Packet * pullPacket(cGate *gate)=0
Pulls the packet from the packet source at the given gate.
inet::queueing::PacketQueueBase::initialize
virtual void initialize(int stage) override
Definition: PacketQueueBase.cc:16
inet::packetPushEndedSignal
simsignal_t packetPushEndedSignal
Definition: Simsignals.cc:103