📄 layer0.cc
字号:
//-------------------------------------------------------------------
// file name: layer0.cpp
//
// - contains the implementation of layer0 class
//
//-------------------------------------------------------------------
#include "layer0.h"
void layer0::initialize()
{
}
void layer0::activity()
{
// main loop
while(1)
{
cMessage * msg = receive();
switch (msg->kind())
{
case M_NODE: // message from another node
msg->setKind(M_LOWHIGH);
send(msg,"uppergate_out");
break;
case M_HIGHLOW: // message from a higher layer
{
msg->setKind(M_NODE);
// duplicate the message and send it through all the gates
for (int i=0;i<MAXCONN;i++)
{
cGate *tmpgate = parentModule()->gate("out",i);
if (tmpgate==NULL)
continue;
// if gate is connected, send a message through it
if (tmpgate->toGate()!=NULL)
{
cMessage *tmpmsg = new cMessage(*msg);
send(tmpmsg,"lowergate_out",i);
}
}
// delete original message
delete msg;
}
break;
default: // unknown message received - bug!.
ev << "layer0::activity() error: unknow message received\n";
endSimulation();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -