protoname.h
来自「一个经典的介绍如何向NS-2中添加新协议的教程」· C头文件 代码 · 共 69 行
H
69 行
#ifndef __protoname_h__
#define __protoname_h__
#include "protoname_pkt.h"
#include <agent.h>
#include <packet.h>
#include <trace.h>
#include <timer-handler.h>
#include <random.h>
#include <classifier-port.h>
#define CURRENT_TIME Scheduler::instance().clock()
#define JITTER (Random::uniform()*0.5)
class Protoname; // forward declaration
/* Timers */
class Protoname_PktTimer : public TimerHandler {
public:
Protoname_PktTimer(Protoname* agent) : TimerHandler() {
agent_ = agent;
}
protected:
Protoname* agent_;
virtual void expire(Event* e);
};
/* Agent */
class Protoname : public Agent {
/* Friends */
friend class Protoname_PktTimer;
/* Private members */
nsaddr_t ra_addr_; // own address
protoname_state state_; // internal state
protoname_rtable rtable_; // routing table
int accesible_var_;
u_int8_t seq_num_;
protected:
PortClassifier* dmux_; // For passing packets up to agents.
Trace* logtarget_; // For logging.
Protoname_PktTimer pkt_timer_; // Timer for sending packets.
inline nsaddr_t& ra_addr() { return ra_addr_; }
inline protoname_state& state() { return state_; }
inline int& accessible_var() { return accessible_var_; }
void forward_data(Packet*);
void recv_protoname_pkt(Packet*);
void send_protoname_pkt();
void reset_protoname_pkt_timer();
public:
Protoname(nsaddr_t);
int command(int, const char*const*);
void recv(Packet*, Handler*);
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?