📄 txc9.cpp
字号:
//
// This file is part of an OMNeT++/OMNEST simulation example.
//
// Copyright (C) 2003 Ahmet Sekercioglu
// Copyright (C) 2003-2005 Andras Varga
//
// This file is distributed WITHOUT ANY WARRANTY. See the file
// `license' for details on this and other legal matters.
//
#include <stdio.h>
#include <string.h>
#include <omnetpp.h>
/**
* Let's make it more interesting by using several (n) `tic' modules,
* and connecting every module to every other. For now, let's keep it
* simple what they do: module 0 generates a message, and the others
* keep tossing it around in random directions until it arrives at
* module 2.
*/
class Txc9 : public cSimpleModule
{
protected:
virtual void forwardMessage(cMessage *msg);
virtual void initialize();
virtual void handleMessage(cMessage *msg);
};
Define_Module(Txc9);
void Txc9::initialize()
{
if (index()==0)
{
// Boot the process scheduling the initial message as a self-message.
char msgname[20];
sprintf(msgname, "tic-%d", index());
cMessage *msg = new cMessage(msgname);
scheduleAt(0.0, msg);
}
}
void Txc9::handleMessage(cMessage *msg)
{
if (index()==3)
{
// Message arrived.
ev << "Message " << msg << " arrived.\n";
delete msg;
}
else
{
// We need to forward the message.
forwardMessage(msg);
}
}
void Txc9::forwardMessage(cMessage *msg)
{
// In this example, we just pick a random gate to send it on.
// We draw a random number between 0 and the size of gate `out[]'.
int n = gate("out")->size();
int k = intuniform(0,n-1);
ev << "Forwarding message " << msg << " on port out[" << k << "]\n";
send(msg, "out", k);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -