FastReport_2022_VCL/LibD28/frxServerStat.pas
2024-01-01 16:13:08 +01:00

146 lines
3.9 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport VCL }
{ HTTP Report Server Statistic }
{ }
{ Copyright (c) 1998-2021 }
{ by Fast Reports Inc. }
{ }
{******************************************}
unit frxServerStat;
{$I frx.inc}
interface
uses
SysUtils, Classes;
type
TfrxServerStatistic = class(TPersistent)
private
FStartTime: TDateTime;
function GetCurrentReportsCount: Integer;
function GetCurrentSessionsCount: Integer;
function GetMaxReportsCount: Integer;
function GetMaxSessionsCount: Integer;
function GetTotalErrors: Integer;
function GetTotalReportsCount: Integer;
function GetTotalSessionsCount: Integer;
function GetUpTimeDays: Integer;
function GetUpTimeHours: Integer;
function GetUpTimeMins: Integer;
function GetUpTimeSecs: Integer;
function GetTotalCacheHits: Integer;
function GetFormatUpTime: String;
function GetCacheCount: Integer;
public
constructor Create;
published
property CurrentReportsCount: Integer read GetCurrentReportsCount;
property CurrentSessionsCount: Integer read GetCurrentSessionsCount;
property MaxReportsCount: Integer read GetMaxReportsCount;
property MaxSessionsCount: Integer read GetMaxSessionsCount;
property TotalErrors: Integer read GetTotalErrors;
property TotalReportsCount: Integer read GetTotalReportsCount;
property TotalSessionsCount: Integer read GetTotalSessionsCount;
property UpTimeDays: Integer read GetUpTimeDays;
property UpTimeHours: Integer read GetUpTimeHours;
property UpTimeMins: Integer read GetUpTimeMins;
property UpTimeSecs: Integer read GetUpTimeSecs;
property TotalCacheHits: Integer read GetTotalCacheHits;
property CurrentCacheCount: Integer read GetCacheCount;
property FormatUpTime: String read GetFormatUpTime;
end;
var
ServerStatistic: TfrxServerStatistic;
implementation
uses frxServer, frxServerLog, frxServerCache;
{ TfrxServerStatistic }
function TfrxServerStatistic.GetCurrentReportsCount: Integer;
begin
Result := LogWriter.CurrentReports;
end;
function TfrxServerStatistic.GetCurrentSessionsCount: Integer;
begin
Result := LogWriter.CurrentSessions;
end;
function TfrxServerStatistic.GetMaxReportsCount: Integer;
begin
Result := LogWriter.MaxReports;
end;
function TfrxServerStatistic.GetMaxSessionsCount: Integer;
begin
Result := LogWriter.MaxSessions;
end;
function TfrxServerStatistic.GetTotalReportsCount: Integer;
begin
Result := LogWriter.TotalReports;
end;
function TfrxServerStatistic.GetTotalSessionsCount: Integer;
begin
Result := LogWriter.TotalSessions;
end;
function TfrxServerStatistic.GetTotalErrors: Integer;
begin
Result := LogWriter.ErrorsCount;
end;
constructor TfrxServerStatistic.Create;
begin
FStartTime := Now;
end;
function TfrxServerStatistic.GetUpTimeDays: Integer;
begin
Result := Trunc(Now - FStartTime);
end;
function TfrxServerStatistic.GetUpTimeHours: Integer;
begin
Result := StrToInt(FormatDateTime('h', Frac(Now - FStartTime)));
end;
function TfrxServerStatistic.GetUpTimeMins: Integer;
begin
Result := StrToInt(FormatDateTime('n', Frac(Now - FStartTime)));
end;
function TfrxServerStatistic.GetUpTimeSecs: Integer;
begin
Result := StrToInt(FormatDateTime('s', Frac(Now - FStartTime)));
end;
function TfrxServerStatistic.GetTotalCacheHits: Integer;
begin
Result := LogWriter.TotalCacheHits;
end;
function TfrxServerStatistic.GetFormatUpTime: String;
begin
Result := IntToStr(UpTimeDays) + ' days ' +
IntToStr(UpTimeHours) + ' hours ' +
IntToStr(UpTimeMins) + ' minutes ' +
IntToStr(UpTimeSecs) + ' seconds'
end;
function TfrxServerStatistic.GetCacheCount: Integer;
begin
Result := ReportCache.Heap.Count;
end;
end.