?? 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 + -