⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 warcps.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarCps.h"   // class implemented/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarCps::WarCps(const unsigned delayMs,        const unsigned holdMs,        const unsigned minCnt,        const unsigned maxCnt,        const unsigned minCps,        const unsigned maxCps)        : mDelayMs(delayMs),        mHoldMs(holdMs),        mMinCnt(minCnt),        mMaxCnt(maxCnt),        mMinCps(minCps),        mMaxCps(maxCps),        mBytesRecorded(0){}// WarCpsWarCps::~WarCps(){}// ~WarCps//============================= OPERATORS ====================================WarCps& WarCps::operator = (WarCps& from){    mDelayMs = from.mDelayMs;    mHoldMs = from.mHoldMs;    mMinCnt = from.mMinCnt;    mMaxCnt = from.mMaxCnt;    mMinCps = from.mMinCps;    mMaxCps = from.mMaxCps;    mSamples = from.mSamples;    mBytesRecorded = from.mBytesRecorded;    return *this;}//============================= OPERATIONS ===================================int WarCps::GetCps(){    if (mSamples.size() < mMinCnt)        return -1;    return mSamples.back().GetCps(mSamples.front());}bool WarCps::IsOverLimit(){    int cps;    if ((0 == mMaxCps) || ((cps = GetCps()) < 0))        return false;    return GetCps() > (int)mMaxCps;}bool WarCps::IsUnderLimit(){    if ((0 == mMinCps) || (mSamples.size() < mMaxCnt))        return false; // We need more samples    int current_cps = GetCps();    if (current_cps < 0)        return false; // No cps returned    return GetCps() < (int)mMinCps;}void WarCps::Record(const war_flen_t& bytes){    mBytesRecorded += bytes;    if (mSamples.empty()         || mSamples.front().GetTime().IsTimeOut(mDelayMs))    {        mSamples.push_back(WarCpsTimestamp(mBytesRecorded));                if (mSamples.size() > mMaxCnt)            mSamples.pop_front();    }}WarTime WarCps::GetNextCpsTime(){    return WarTime(mSamples.back().GetNextCpsTime(mSamples.front(),        mMaxCps).mTime + mHoldMs);}//============================= ACCESS     ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ////////////////////////////////////////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -