?? queuebase.cpp
字號:
//
// This file is part of an OMNeT++/OMNEST simulation example.
//
// Copyright (C) 1992-2005 Andras Varga
//
// This file is distributed WITHOUT ANY WARRANTY. See the file
// `license' for details on this and other legal matters.
//
#include <omnetpp.h>
#include "queuebase.h"
QueueBase::QueueBase()
{
msgServiced = endServiceMsg = NULL;
}
QueueBase::~QueueBase()
{
delete msgServiced;
cancelAndDelete(endServiceMsg);
}
void QueueBase::initialize()
{
endServiceMsg = new cMessage("end-service");
queue.setName("queue");
}
void QueueBase::handleMessage(cMessage *msg)
{
if (msg==endServiceMsg)
{
endService( msgServiced );
if (queue.empty())
{
msgServiced = NULL;
}
else
{
msgServiced = (cMessage *) queue.getTail();
simtime_t serviceTime = startService( msgServiced );
scheduleAt( simTime()+serviceTime, endServiceMsg );
}
}
else if (!msgServiced)
{
arrival( msg );
msgServiced = msg;
simtime_t serviceTime = startService( msgServiced );
scheduleAt( simTime()+serviceTime, endServiceMsg );
}
else
{
arrival( msg );
queue.insert( msg );
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -