📄 chttpdatams.h
字号:
////////////////////////////////////////////////////////////////////////////////////
// //
// CHttpDataMs类在原有cdma2000EV-DV基础之上有所改进,增加了 //
// 主对象和内嵌对象的概念,使得对Http业务的时延统计更接近 //
// 实际系统,仿真结果更合理。 //
// //
// //
// //
// //
// //
// //
////////////////////////////////////////////////////////////////////////////////////
#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"
//******************************CHttpDataMs类的声明**********************************//
class CHttpDataMs:public CDataMs
{
private:
float m_fMeanOfHttpMainObjectSize; //主对象大小对数正态分布的均值
float m_fStdOfHttpMainObjectSize; //主对象大小服从对数正态分布的方差
int m_iHttpMaxMainObjectSize; //主对象大小的最大值
int m_iHttpMinMainObjectSize; //主对象大小的最小值
int m_iHttpMainObjectSize; //PacketCall中主对象的大小
float m_fMeanOfHttpPlugInSize; //内嵌对象大小服从对数正态分布的均值
float m_fStdOfHttpPlugInSize; //内嵌对象大小服从对数正态分布的方差
int m_iHttpMaxPlugInSize; //内嵌对象大小的最大值
int m_iHttpMinPlugInSize; //内嵌对象大小的最小值
int m_iHttpPlugInSize; //PacketCall中内嵌对象的大小
float m_fAlphaOfHttpPlugInNumInPacketCall; //PacketCall中内嵌对象数目服从的pareto分布的参数Alpha;
float m_fKOfHttpPlugInNumInPacketCall; //PacketCall中内嵌对象数目服从的pareto分布的参数K;
int m_iMaxOfHttpPlugInNumInPacketCall; //PacketCall中内嵌对象的最大数目
int m_iHttpPlugInNumInPacketCall; //每一个PacketCall中内嵌对象的数目
int m_iPlugInTotalSize; //内嵌对象总大小,由内嵌对象数目累加而来;
int m_iMeanOfHttpReadingTime; //阅读时间服从指数分布的均值
int m_iHttpReadingTime; //阅读时间,即packet call之间的间隔时间;
float m_fMeanOfHttpMainObjectParsingTime; //主页的解析时间服从指数分布的均值
int m_iHttpMainObjectParsingTime; //主页的解析时间,即主对象和第一个从对象的时间间隔;
int m_iPacketSize; //当前产生的packet的大小;
float m_fPacketIntervalParameter; //packet 间隔服从均值为m_fPacketIntervalParameter的几何分布
int m_iTimeBeforeNextPacket; //模拟分组间的时间间隔,以时隙为单位
int m_PacketMTU; //固定其大小为1500*8;
int m_iHttpPacketCallSize; //记录当前PacketCall的大小
int m_iPacketNumInPacketCall; //记录当前PacketCall中能包含的packet个数;
int m_iPacketNumGenerated; //记录当前PacketCall中已经生成的packet个数;
int m_iTimeOfFirstHttpPacket; //记录PacketCall的第一个packet的到达时刻
bool m_bIsHttpPacketCallOver; //判断阅读时间是否结束
bool m_bIsInPacketCall; //判断是否有packet call在传输;
bool m_bIsInMainObject; //判断主对象是否在传输;
bool m_bIsInPlugIn; //判断内嵌对象是否在传输;
public:
int m_iCurrentSlotNum;
CHttpDataMs(){};
~CHttpDataMs(){};
void HttpInitialization(); //HTTP初始化函数,调用以下几个函数完成一些变量的设置;
int HttpMainObjectSizeGenerator(); //主对象大小生成函数
int HttpPlugInSizeGenerator(); //内嵌对象大小生成函数
int HttpPlugInNumInPacketCallGenerator(); //一个PacketCall中内嵌对象的数目生成函数;
int HttpReadingTimeGenerator(); //阅读时间生成函数
bool IsHttpPacketCallOver(); //阅读时间是否结束,判断是否有packet call在传输;
int HttpMainObjectParsingTimeGenerator(); //主页解析时间生成函数
void PacketGenerator(); //packet 生成函数;
void PacketIntervalGenerator(); //packet间隔生成函数;
void HttpNewPacketCallSetup(); //新建PacketCall函数,与EV-DV相比有较大的改动;
void HttpPacketCallProcess(); //HTTP处理函数,按照范晨流程图所写;
public:
//定义继承自基类CDataMs的纯虚函数
void FillDataQueue(); //填充数据队列函数
void DataMsTrafficInitialize(); //数据移动台业务模型初始化函数
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -