layer0.cc

来自「拓扑查找算法的omnet仿真实现」· CC 代码 · 共 64 行

CC
64
字号
//-------------------------------------------------------------------
//  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 + =
减小字号Ctrl + -
显示快捷键?