📄 statisticsdlg.cpp
字号:
// Uploaded Data By Client
if (forceUpdate || stattree.IsExpanded(hup_tcb)) {
int i = 0;
uint64 UpDataTotal = thePrefs.GetUpTotalClientData();
uint64 UpDataClient = thePrefs.GetCumUpData_EMULE();
double percentClientTransferred = 0;
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
cbuffer.Format( _T("eMule: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ) , percentClientTransferred);
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_EDONKEYHYBRID();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("eD Hybrid: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ) , percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_EDONKEY();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("eDonkey: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ), percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_AMULE();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("aMule: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ), percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_MLDONKEY();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("MLdonkey: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ), percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_SHAREAZA();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("Shareaza: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ), percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
UpDataClient = thePrefs.GetCumUpData_EMULECOMPAT();
if ( UpDataTotal!=0 && UpDataClient!=0 )
percentClientTransferred = (double) 100 * UpDataClient / UpDataTotal;
else
percentClientTransferred = 0;
cbuffer.Format( _T("eM Compat: %s (%1.1f%%)") , CastItoXBytes( UpDataClient ), percentClientTransferred );
stattree.SetItemText( up_tcb[i] , cbuffer ); i++;
}
// Uploaded Data By Port
if (forceUpdate || stattree.IsExpanded(hup_tpb)) {
int i = 0;
uint64 PortDataDefault = thePrefs.GetCumUpDataPort_4662();
uint64 PortDataOther = thePrefs.GetCumUpDataPort_OTHER();
uint64 PortDataTotal = thePrefs.GetUpTotalPortData();
double percentPortTransferred = 0;
if ( PortDataTotal!=0 && PortDataDefault!=0 )
percentPortTransferred = (double) 100 * PortDataDefault / PortDataTotal;
cbuffer.Format( _T("%s: %s (%1.1f%%)") , GetResString(IDS_STATS_PRTDEF) , CastItoXBytes( PortDataDefault ) , percentPortTransferred);
stattree.SetItemText( up_tpb[i] , cbuffer ); i++;
if ( PortDataTotal!=0 && PortDataOther!=0 )
percentPortTransferred = (double) 100 * PortDataOther / PortDataTotal;
else
percentPortTransferred = 0;
cbuffer.Format( _T("%s: %s (%1.1f%%)") , GetResString(IDS_STATS_PRTOTHER) , CastItoXBytes( PortDataOther ) , percentPortTransferred);
stattree.SetItemText( up_tpb[i] , cbuffer ); i++;
}
// Uploaded Data By Source
if (forceUpdate || stattree.IsExpanded(hup_tsb)) {
int i = 0;
uint64 DataSourceFile = thePrefs.GetCumUpData_File();
uint64 DataSourcePF = thePrefs.GetCumUpData_Partfile();
uint64 DataSourceTotal = thePrefs.GetUpTotalDataFile();
double percentFileTransferred = 0;
if ( DataSourceTotal!=0 && DataSourceFile!=0 )
percentFileTransferred = (double) 100 * DataSourceFile / DataSourceTotal;
cbuffer.Format( _T("%s: %s (%1.1f%%)") , GetResString(IDS_STATS_DSFILE) , CastItoXBytes( DataSourceFile ) , percentFileTransferred);
stattree.SetItemText( up_tsb[i] , cbuffer ); i++;
if ( DataSourceTotal!=0 && DataSourcePF!=0 )
percentFileTransferred = (double) 100 * DataSourcePF / DataSourceTotal;
else
percentFileTransferred = 0;
cbuffer.Format( _T("%s: %s (%1.1f%%)") , GetResString(IDS_STATS_DSPF) , CastItoXBytes( DataSourcePF ) , percentFileTransferred);
stattree.SetItemText( up_tsb[i] , cbuffer ); i++;
}
}
// Upload Sessions
statGoodSessions = theApp.uploadqueue->GetSuccessfullUpCount() + thePrefs.GetUpSuccessfulSessions() + theApp.uploadqueue->GetUploadQueueLength();
statBadSessions = theApp.uploadqueue->GetFailedUpCount() + thePrefs.GetUpFailedSessions();
cbuffer.Format(_T("%s: %u"), GetResString(IDS_STATS_ULSES), statGoodSessions + statBadSessions);
stattree.SetItemText(up_T[1], cbuffer);
if (forceUpdate || stattree.IsExpanded(up_T[1])) {
// Set Successful Upload Sessions & Average Uploaded Per Session
if (statGoodSessions>0) { // Blackholes are when God divided by 0
percentSessions = (double) 100*statGoodSessions/(statGoodSessions+statBadSessions);
cbuffer.Format(_T("%s: %s"), GetResString(IDS_STATS_AVGDATAULSES), CastItoXBytes((uint64) (theApp.stat_sessionSentBytes + thePrefs.GetTotalUploaded()) / statGoodSessions) ); }
else {
percentSessions = 0;
cbuffer.Format( _T("%s: %s") , GetResString(IDS_STATS_AVGDATAULSES) , GetResString(IDS_FSTAT_WAITING) ); }
stattree.SetItemText(up_tsessions[2], cbuffer);
cbuffer.Format(GetResString(IDS_STATS_SUCCUPCOUNT),statGoodSessions,percentSessions);
stattree.SetItemText(up_tsessions[0], cbuffer);
// Set Failed Upload Sessions
if (percentSessions != 0 && statBadSessions > 0) percentSessions = 100 - percentSessions; // There were some good sessions and bad ones...
else if (percentSessions == 0 && statBadSessions > 0) percentSessions = 100; // There were bad sessions and no good ones, must be 100%
else percentSessions = 0; // No sessions at all, or no bad ones.
cbuffer.Format(GetResString(IDS_STATS_FAILUPCOUNT),statBadSessions,percentSessions);
stattree.SetItemText(up_tsessions[1], cbuffer);
// Set Avg Upload time
uint32 avguptime = theApp.uploadqueue->GetAverageUpTime();
if (thePrefs.GetUpAvgTime()<=0) thePrefs.SetUpAvgTime(avguptime);
avguptime = (uint32) (avguptime+thePrefs.GetUpAvgTime())/2;
cbuffer.Format(GetResString(IDS_STATS_AVEUPTIME),CastSecondsToLngHM(avguptime));
stattree.SetItemText(up_tsessions[3], cbuffer);
}
if (UpOHTotal == 0 || UpOHTotalPackets == 0) {
// Calculate Upline OH Totals
UpOHTotal = theStats.GetUpDataOverheadFileRequest() +
theStats.GetUpDataOverheadSourceExchange() +
theStats.GetUpDataOverheadServer() +
theStats.GetUpDataOverheadKad() +
theStats.GetUpDataOverheadOther();
UpOHTotalPackets = theStats.GetUpDataOverheadFileRequestPackets() +
theStats.GetUpDataOverheadSourceExchangePackets() +
theStats.GetUpDataOverheadServerPackets() +
theStats.GetUpDataOverheadKadPackets() +
theStats.GetUpDataOverheadOtherPackets();
}
// Set Cumulative Total Overhead
cbuffer.Format(GetResString(IDS_TOVERHEAD),CastItoXBytes(UpOHTotal + thePrefs.GetUpOverheadTotal()), CastItoIShort(UpOHTotalPackets + thePrefs.GetUpOverheadTotalPackets()));
stattree.SetItemText(hup_toh, cbuffer);
if (forceUpdate || stattree.IsExpanded(hup_toh)) {
int i = 0;
// Set up total file req OH
cbuffer.Format(GetResString(IDS_FROVERHEAD), CastItoXBytes( theStats.GetUpDataOverheadFileRequest() + thePrefs.GetUpOverheadFileReq()), CastItoIShort(theStats.GetUpDataOverheadFileRequestPackets() + thePrefs.GetUpOverheadFileReqPackets()));
stattree.SetItemText(up_toh[i], cbuffer); i++;
// Set up total source exch OH
cbuffer.Format(GetResString(IDS_SSOVERHEAD), CastItoXBytes( theStats.GetUpDataOverheadSourceExchange()+thePrefs.GetUpOverheadSrcEx()), CastItoIShort(theStats.GetUpDataOverheadSourceExchangePackets()+thePrefs.GetUpOverheadSrcExPackets()));
stattree.SetItemText(up_toh[i], cbuffer); i++;
// Set up total server OH
cbuffer.Format(GetResString(IDS_SOVERHEAD),
CastItoXBytes(theStats.GetUpDataOverheadServer()
+ thePrefs.GetUpOverheadServer()),
CastItoIShort(theStats.GetUpDataOverheadServerPackets()
+ thePrefs.GetUpOverheadServerPackets()));
stattree.SetItemText(up_toh[i], cbuffer); i++;
// Set up total Kad OH
cbuffer.Format(GetResString(IDS_KADOVERHEAD),
CastItoXBytes(theStats.GetUpDataOverheadKad() +
thePrefs.GetUpOverheadKad()),
CastItoIShort(theStats.GetUpDataOverheadKadPackets() +
thePrefs.GetUpOverheadKadPackets()));
stattree.SetItemText(up_toh[i], cbuffer); i++;
}
} // - End Transfer -> Uploads -> Cumulative Section
} // - End Transfer -> Uploads Section
} // - END TRANSFER SECTION
// CONNECTION SECTION
if (forceUpdate || stattree.IsExpanded(h_connection)) {
// CONNECTION -> SESSION SECTION
if (forceUpdate || stattree.IsExpanded(h_conn_session)) {
// CONNECTION -> SESSION -> GENERAL SECTION
if (forceUpdate || stattree.IsExpanded(hconn_sg)) {
int i = 0;
// Server Reconnects
if (theApp.stat_reconnects>0) cbuffer.Format(GetResString(IDS_STATS_RECONNECTS),theApp.stat_reconnects-1);
else cbuffer.Format(GetResString(IDS_STATS_RECONNECTS),0);
stattree.SetItemText(conn_sg[i], cbuffer); i++;
// Active Connections
cbuffer.Format(_T("%s: %i"),GetResString(IDS_SF_ACTIVECON),theApp.listensocket->GetActiveConnections());
stattree.SetItemText(conn_sg[i], cbuffer); i++;
// Average Connections
cbuffer.Format(_T("%s: %i"),GetResString(IDS_SF_AVGCON),(int)theApp.listensocket->GetAverageConnections());
stattree.SetItemText(conn_sg[i], cbuffer); i++;
// Peak Connections
cbuffer.Format(_T("%s: %i"),GetResString(IDS_SF_PEAKCON),theApp.listensocket->GetPeakConnections());
stattree.SetItemText(conn_sg[i], cbuffer); i++;
// Connect Limit Reached
uint32 m_itemp = theApp.listensocket->GetMaxConnectionReached();
if( m_itemp != m_ilastMaxConnReached ){
cbuffer.Format(_T("%s: %i : %s"), GetResString(IDS_SF_MAXCONLIMITREACHED), m_itemp, CTime::GetCurrentTime().Format(_T("%c")));
stattree.SetItemText(conn_sg[i], cbuffer);
m_ilastMaxConnReached = m_itemp;
}
else if( m_itemp == 0 ){
cbuffer.Format(_T("%s: %i"),GetResString(IDS_SF_MAXCONLIMITREACHED),m_itemp);
stattree.SetItemText(conn_sg[i], cbuffer);
}
i++;
} // - End Connection -> Session -> General Section
// CONNECTION -> SESSION -> UPLOADS SECTION
if (forceUpdate || stattree.IsExpanded(hconn_su)) {
int i = 0;
// Upload Rate
cbuffer.Format(_T("%s: %.2f %s"), GetResString(IDS_ST_UPLOAD),theStats.rateUp,GetResString(IDS_KBYTESEC)); stattree.SetItemText(conn_su[i], cbuffer); i++;
// Average Upload Rate
cbuffer.Format(GetResString(IDS_STATS_AVGUL),theStats.GetAvgUploadRate(AVG_SESSION)); stattree.SetItemText(conn_su[i], cbuffer); i++;
// Max Upload Rate
cbuffer.Format(_T("%s: %.2f %s"), GetResString(IDS_STATS_MAXUL), theStats.maxUp,GetResString(IDS_KBYTESEC)); stattree.SetItemText(conn_su[i], cbuffer); i++;
// Max Average Upload Rate
float myAverageUpRate = theStats.GetAvgUploadRate(AVG_SESSION);
if (myAverageUpRate>theStats.maxUpavg) theStats.maxUpavg = myAverageUpRate;
cbuffer.Format(_T("%s: %.2f %s"), GetResString(IDS_STATS_MAXAVGUL), theStats.maxUpavg,GetResString(IDS_KBYTESEC)); stattree.SetItemText(conn_su[i], cbuffer); i++;
} // - End Connection -> Session -> Uploads Section
// CONNECTION -> SESSION -> DOWNLOADS SECTION
if (forceUpdate || stattree.IsExpanded(hconn_sd)) {
int i = 0;
// Download Rate
cbuffer.Format(_T("%s: %.2f %s"), GetResString(IDS_ST_DOWNLOAD), theStats.rateDown, GetResString(IDS_KBYTESEC)); stattree.SetItemText(conn_sd[i], cbuffer); i++;
// Average Download Rate
cbuffer.Format(GetResString(IDS_STATS_AVGDL),theStats.GetAvgDownloadRate(AVG_SESSION)); stattree.SetItemText(conn_sd[i], cbuffer); i++;
// Max Download Rate
cbuffer.Format(GetResString(IDS_STATS_MAXDL),theStats.maxDown); stattree.SetItemText(conn_sd[i], cbuffer); i++;
// Max Average Download Rate
float myAverageDownRate = theStats.GetAvgDownloadRate(AVG_SESSION);
if (myAverageDownRate>theStats.maxDownavg) theStats.maxDownavg = myAverageDownRate;
cbuffer.Format(GetResString(IDS_STATS_MAXAVGDL), theStats.maxDownavg); stattree.SetItemText(conn_sd[i], cbuffer); i++;
} // - End Connection -> Session -> Downloads Section
} // - End Connection -> Session Section
// CONNECTION -> CUMULATIVE SECTION
if (forceUpdate || stattree.IsExpanded(h_conn_total)) {
// CONNECTION -> CUMULATIVE -> GENERAL SECTION
if (forceUpdate || stattree.IsExpanded(hconn_tg)) {
int i = 0;
// Server Reconnects
if(theApp.stat_reconnects>0)
cbuffer.Format(GetResString(IDS_STATS_RECONNECTS),theApp.stat_reconnects - 1 + thePrefs.GetConnNumReconnects());
else
cbuffer.Format(GetResString(IDS_STATS_RECONNECTS),thePrefs.GetConnNumReconnects());
stattree.SetItemText(conn_tg[i], cbuffer); i++;
// Average Connections
cbuffer.Format(_T("%s: %i"), GetResString(IDS_SF_AVGCON), (int) (theApp.listensocket->GetActiveConnections() + thePrefs.GetConnAvgConnections()) / 2 );
stattree.SetItemText(conn_tg[i], cbuffer); i++;
// Peak Connection
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -