📄 chttpdatams.h
字号:
#if !defined(_CHTTPDATAMS_H_INCLUDED_)
#define _CHTTPDATAMS_H_INCLUDED_
#include<iostream.h>
#include "Afxtempl.h"
#include "systemsim.h"
#include "sys_random.h"
#include "CDataMs.h"
///////////////////////////////////////////////////////
//
//
// 2001/03/18 Authorized By Dou Zhongzhao
//
//
// Revised on 2001/05/30
//
// 修改的原因:为了完善与CDataMs的接口,增加了packet到达消息队列
// 具体操作:
// 1.在CDataMs中加了结构体PACKETARRIVALMESSAGE_TYPE,因为CHttpDataMs是
// CDataMs的派生类,所以可以直接引用。
// 2.改动了PacketCallProcess()函数,具体请见程序。
// 3.在每一个pacektcall开始时,都要将packet的号置零。
// 4.将有关packetcall吞吐量的计算函数的有关内容去掉,改为在CDataMs中计算
//
//
//
//
///////////////////////////////////////////////////////
class CHttpDataMs:public CDataMs
{
//-------attribute---------
private:
float m_fAlpha;
float m_fK;
int m_iMaxDataBitsNum;
int m_iPacketSize; //packet的大小
int m_iPacketCallSize; //当前packet call的大小
int m_iPacketNumInPacketCall; //当前packet call中packet的数量
int m_iPacketGeneratedNum; //已经生成的packet的数量
int m_iTimeBeforeNextPacket; //模拟分组间的时间间隔,以时隙为单位
//距下一个packet的剩余时间
long m_lTimeBeforeNextPacketCall; //模拟paket call间的时间间隔,以时隙为单位
//距下一个packet call的剩余时间
bool m_bIsInPacketCall; //TRUE表示存在packet call
//是否有packet call存在
//新加的变量
float m_fPacketIntervalParameter; //packet 间隔服从均值为m_fPacketIntervalParameter的几何分布
float m_fPacketCallIntervalParameter;//packet call间隔的均值,作为Geometry分布的参数
//--------operation--------
public:
CHttpDataMs(){}
~CHttpDataMs(){}
//初始化函数:
void HttpInitialization(); //初始化业务模型函数,并调用下述函数,完成一个packet call的设置
//packet call size生成函数:
void PacketCallSizeGenerator(); //Pareto with cut-off生成packet call数据量
//packet数量生成函数:
void PacketNumGenerator(); //根据packet call的数据量和packet的大小计算packet的数量
//packet间隔计算函数:
void PacketIntervalGenerator(); //产生packet的时间间隔
//packet生成函数:
void PacketGenerator(); //向数据队列中加入一个packet的数据量,同时生成新的packet的时间间隔,
//并把已生成的packet数量加1
//判断是否有packet到达的函数:
bool IsPacketCallover(); //比较packet call中的分组数与已生成的分组数,若相等,
//把packet call传输标志置为假,并生成packet call间隔时间
//packet call间隔时间生成函数:
void PacketCallIntervalGenerator(); //生成packet call的间隔时间
//packet call处理函数:
void PacketCallProcess(); //首先判断是否有packet call在传输,若无则把packet call的间隔时间递减,
//并判断是否到时,若到时,则重新生成packet call。
//若有,则调用packet生成函数,生成新的packet
//packet call是否到达的判断函数:
void NewPacketCallSetup(); //重新设置packet的数量,并生成第一个packet
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -