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

📄 stats.cpp

📁 P2P应用 : Peercast的源代码
💻 CPP
字号:
// ------------------------------------------------// File : stats.cpp// Date: 4-apr-2002// Author: giles// Desc: //		Statistic logging//		// (c) 2002 peercast.org// ------------------------------------------------// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.// ------------------------------------------------#include "stats.h"#include "common.h"#include "sys.h"#include "stream.h"Stats stats;// ------------------------------------void Stats::clear(){	for(int i=0; i<Stats::MAX; i++)	{		current[i] = 0;		last[i] = 0;		perSec[i] = 0;	}	lastUpdate = 0;}// ------------------------------------void	Stats::update(){	unsigned int ctime = sys->getTime();	unsigned int diff = ctime - lastUpdate;	if (diff >= 5)	{				for(int i=0; i<Stats::MAX; i++)		{			perSec[i] = (current[i]-last[i])/diff;			last[i] = current[i];		}		lastUpdate = ctime;	}	}// ------------------------------------bool Stats::writeVariable(Stream &out,const String &var){	char buf[1024];	if (var == "totalInPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::BYTESIN)));	else if (var == "totalOutPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::BYTESOUT)));	else if (var == "totalPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::BYTESIN)+getPerSecond(Stats::BYTESOUT)));	else if (var == "wanInPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::BYTESIN)-getPerSecond(Stats::LOCALBYTESIN)));	else if (var == "wanOutPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::BYTESOUT)-getPerSecond(Stats::LOCALBYTESOUT)));	else if (var == "wanTotalPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS((getPerSecond(Stats::BYTESIN)-getPerSecond(Stats::LOCALBYTESIN))+(getPerSecond(Stats::BYTESOUT)-getPerSecond(Stats::LOCALBYTESOUT))));	else if (var == "netInPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::PACKETDATAIN)));	else if (var == "netOutPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::PACKETDATAOUT)));	else if (var == "netTotalPerSec")				sprintf(buf,"%.1f",BYTES_TO_KBPS(getPerSecond(Stats::PACKETDATAOUT)+getPerSecond(Stats::PACKETDATAIN)));	else if (var == "packInPerSec")				sprintf(buf,"%.1f",getPerSecond(Stats::NUMPACKETSIN));	else if (var == "packOutPerSec")				sprintf(buf,"%.1f",getPerSecond(Stats::NUMPACKETSOUT));	else if (var == "packTotalPerSec")				sprintf(buf,"%.1f",getPerSecond(Stats::NUMPACKETSOUT)+getPerSecond(Stats::NUMPACKETSIN));	else		return false;	out.writeString(buf);	return true;}

⌨️ 快捷键说明

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