📄 txc7.cpp
字号:
//
// This file is part of an OMNeT++/OMNEST simulation example.
//
// 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>
class Tic7 : public cSimpleModule
{
private:
double timeout; //define timeout
cMessage *timeoutEvent;
public:
Tic7();
virtual ~Tic7();
protected:
virtual void initialize();
virtual void handleMessage(cMessage *msg);
};
Define_Module(Tic7);
Tic7::Tic7()
{
timeoutEvent = NULL;
}
Tic7::~Tic7()
{
cancelAndDelete(timeoutEvent);
}
void Tic7::initialize()
{
timeout=1.0;
timeoutEvent = new cMessage("timeoutEvent");
ev<<"Sending initalize message!\n";
cMessage *msg=new cMessage("tictocMsg");
send(msg,"out");
scheduleAt(simTime()+timeout,timeoutEvent);
}
void Tic7::handleMessage(cMessage *msg)
{
if (msg==timeoutEvent)
{
ev << "Timeout expired, resending message and restart Timer\n";
cMessage *msg=new cMessage("tictocMsg");
send(msg, "out");
scheduleAt(simTime()+timeout,timeoutEvent);
}
else
{
// message arrived;
ev<<"Timer Canceled!\n";
cancelEvent(timeoutEvent);
cMessage *msg=new cMessage("tictocMsg");
send(msg,"out");
scheduleAt(simTime()+timeout,timeoutEvent);
}
}
class Toc7 : public cSimpleModule
{
protected:
virtual void handleMessage(cMessage *msg);
};
Define_Module(Toc7);
void Toc7::handleMessage(cMessage *msg)
{
if (uniform(0,1) < 0.1)
{
ev << "\"Losing\" message\n";
bubble("message lost");
delete msg;
}
else
{
ev << "Message arrived\n";
send(msg,"out");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -