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

📄 module-send.h

📁 ns2中跨层对网路性能优化较复杂
💻 H
字号:
//// Copyright (c) 2006 Regents of the SIGNET lab, University of Padova.// All rights reserved.//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions// are met:// 1. Redistributions of source code must retain the above copyright//    notice, this list of conditions and the following disclaimer.// 2. Redistributions in binary form must reproduce the above copyright//    notice, this list of conditions and the following disclaimer in the//    documentation and/or other materials provided with the distribution.// 3. Neither the name of the University of Padova (SIGNET lab) nor the //    names of its contributors may be used to endorse or promote products //    derived from this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.//#ifndef _MODULESEND_#define _MODULESEND_#include <module.h>#define DELAYINTERVAL 1		// size of the intervl in which is extract randomly the delay to be used#define DEFAULT_SIZE 1000	// default size of the packet#define DEFAULT_CLMSG_VERBOSITY 1	// deafault verbosity of the cross layer messagesclass ModuleSend;/*	Timer used to schedule packets by ModuleSend class*/class SendTimer : public TimerHandler{	public:		SendTimer(ModuleSend *m) : TimerHandler() { m_= m; }		protected:		virtual void expire(Event *e);		ModuleSend* m_;};/*	Module that send a packet each delay interval	It starts after the "start" TCL command and stops after the "stop" TCL command*/class ModuleSend : public Module{	friend class SendTimer;	public:		ModuleSend();		~ModuleSend();				static int uidcnt_;		void recv(Packet*){}		// TCL command interpreter		virtual int command(int argc, const char*const* argv);		// cross-layer command interpreter		virtual int crLayCommand(ClMessage* m);		// set ctrl message type		void setClMsgType(ClMessage_t type);		// set ctrl message type		ClMessage_t getClMsgType();	protected:		void expire();		int dstPort_;		int dstAddr_;	private:				void initPkt(Packet* p);		// start to send packets		void start();				// stop to send packets		void stop();				void recv(Packet* p, Handler* h);						// priod between the transmission ot two packets		double period_;		int pktSize_;				// timer to schedule period between packet transmission		SendTimer sendTmr_;				ClMessage_t clMsgType_;		};#endif

⌨️ 快捷键说明

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