📄 module-send.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 + -