⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sink.cpp

📁 simulation tokenring network
💻 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.
//


//
// Authors: Gabor Lencse, Andras Varga (TU Budapest)
// Based on the code by:
//          Maurits Andre, George van Montfort,
//          Gerard van de Weerd (TU Delft)
//

#include <omnetpp.h>
#include "token_m.h"


/**
 * Consumes packets; see NED file for more info.
 */
class Sink : public cSimpleModule
{
  private:
    // output vector to record statistics
    cOutVector endToEndDelay;

    // histograms
    cKSplit endToEndDelayKS;
    cPSquare endToEndDelayPS;

    bool debug;

  protected:
    virtual void initialize();
    virtual void handleMessage(cMessage *msg);
    virtual void finish();
};

Define_Module( Sink );


void Sink::initialize()
{
    endToEndDelay.setName("End-to-End Delay");

    endToEndDelayKS.setName("End-to-End Delay histogram (K-split)");
    endToEndDelayKS.setRangeAutoUpper(0.0, 100, 2.0);
    endToEndDelayPS.setName("End-to-End Delay histogram (P2)");

    debug=true;
    WATCH(debug);
}

void Sink::handleMessage(cMessage *msg)
{
    simtime_t eed = simTime() - msg->creationTime();
    if (debug)
    {
        ev << "Received app. data: \"" << msg->name() << "\", "
              "length=" << msg->length()/8 << "bytes, " <<
              "end-to-end delay=" << simtimeToStr(eed) << endl;
    }

    // record statistics to output vector file and histograms
    endToEndDelay.record(eed);
    endToEndDelayKS.collect(eed);
    endToEndDelayPS.collect(eed);

    // message no longer needed
    delete msg;
}

void Sink::finish()
{
    endToEndDelayKS.recordScalar();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -