32 while (!
queue.empty())
41 size_t pduCount =
queue.size();
44 EV <<
"Queue " << getFullPath() <<
" still contains " << pduCount
45 <<
" unprocessed PDUs!" << endl;
50 EV << p->getClassName() <<
" received at " << p->getArrivalTime() << endl;
71 maxQLength = getModuleByPath(
"^.^")->par(
"defaultMaxQLength");
91 std::ostringstream os;
93 os <<
"name: " << this->getFullName()
94 <<
"; type: " << ((this->
type ==
INPUT) ?
"input" :
"output")
102 return os << cte.
info();
108 if (!getEnvir()->isGUI())
114 cDisplayString& disp = getDisplayString();
119 disp.setTagArg(
"i", 1,
"");
123 disp.setTagArg(
"i", 1,
"#80FF80");
127 disp.setTagArg(
"i", 1,
"#FF8000");
131 disp.setTagArg(
"i", 1,
"#800000");
135 std::ostringstream desc;
137 disp.setTagArg(
"t", 1,
"l");
138 disp.setTagArg(
"t", 0, desc.str().c_str());
143 if (dynamic_cast<cPacket*>(msg) !=
nullptr)
149 EV <<
"handleMessage(): unsupported message type!" << endl;
156 queue.push_back(pdu);
164 Enter_Method(
"releasePDU()");
169 cPacket* pdu =
queue.front();
180 bubble(
"Releasing a PDU...");
187 cPacket* dropped =
queue.back();
188 bubble(
"Dropping a PDU...");
196 cPacket* msg =
queue.back();
198 if (dynamic_cast<PDU*>(msg) !=
nullptr)
205 EV <<
"The message isn't a PDU, cannot apply marking!" << endl;
273 return queue.front();
const char * SIG_RMT_QueuePDUPreRcvd
Class representing flow object with attributes from specs.
queueType getType() const
simsignal_t sigRMTPDUPostRcvd
cGate * getOutputGate() const
simsignal_t sigStatRMTQueueLength
const char * SIG_STAT_RMTQUEUE_LENGTH
const char * SIG_RMT_QueuePDUPreSend
const cPacket * getFirstPDU() const
simsignal_t sigRMTPDUSent
std::deque< cPacket * > queue
void setMaxLength(int value)
void setThreshLength(int value)
void setRMTAccessGate(cGate *gate)
virtual void setFlags(int flags)
const char * SIG_RMT_QueuePDUSent
virtual void handleMessage(cMessage *msg)
const cPacket * getLastPDU() const
const Flow * getFlow() const
const char * SIG_STAT_RMTQUEUE_DROP
int getThreshLength() const
const char * SIG_RMT_QueuePDUPostRcvd
void setType(queueType type)
simtime_t getQTime() const
cGate * getInputGate() const
void markCongestionOnLast()
simsignal_t sigRMTPDUPreRcvd
virtual int getFlags() const
virtual void initialize()
std::deque< cPacket * >::iterator iterator
simsignal_t sigRMTPDUPreSend
cGate * getRMTAccessGate() const
void enqueuePDU(cPacket *pdu)
std::ostream & operator<<(std::ostream &os, const RMTQueue &cte)