Difference between revisions of "Unit WebStatus"

From Ultibo.org
Jump to: navigation, search
 
(53 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
'''Ultibo Web Status unit'''
 
'''Ultibo Web Status unit'''
 
''To be documented''
 
  
 
=== Constants ===
 
=== Constants ===
Line 20: Line 18:
 
| <code>RtlMaxUnits = 1024;</code>
 
| <code>RtlMaxUnits = 1024;</code>
 
| See maxunits in system.inc
 
| See maxunits in system.inc
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>DeviceTreeMaxColumns = 140;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DeviceTreeColumnOffset = 20;</code>
 +
| &nbsp;
 
|-
 
|-
 
|}
 
|}
Line 90: Line 96:
 
|-
 
|-
 
| <code>Response:THTTPServerResponse;</code>
 
| <code>Response:THTTPServerResponse;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ContentStream:TStream;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Data:Pointer;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 109: Line 121:
  
  
'''Web status main'''
+
'''Web status specific classes'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<code>TWebStatusMain = class(THTTPDocument)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusMain|<code>TWebStatusMain = class(THTTPDocument)</code>]]
 
|-
 
|-
| <code>constructor Create;</code>
+
|}
| style="width: 50%;"|&nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>destructor Destroy; override;</code>
+
| [[TWebStatusSub|<code>TWebStatusSub = class(THTTPDocument)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FTitle:String;</code>
+
| [[TWebStatusPage|<code>TWebStatusPage = class(TWebStatusSub)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>FCaption:String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FSubPages:TStringList;</code>
+
| [[TWebStatusClass|<code>TWebStatusClass = class (TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetTitle:String;</code>
+
| [[TWebStatusPlatform|<code> TWebStatusPlatform = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>procedure SetTitle(const ATitle:String);</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetCaption:String;</code>
+
| [[TWebStatusMemory|<code>TWebStatusMemory = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function NormalizedDateTimeToStr(const DateTime:TDateTime):String;</code>
+
| [[TWebStatusHeap|<code>TWebStatusHeap = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function MakeBold(const AName:String):String;</code>
+
| [[TWebStatusCPU|<code>TWebStatusCPU = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function MakeLink(const AName,ALink:String):String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusFPU|<code>TWebStatusFPU = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddBlank(AResponse:THTTPServerResponse):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBlankEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| [[TWebStatusGPU|<code>TWebStatusGPU = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
| [[TWebStatusRTL|<code>TWebStatusRTL = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddItemEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusClock|<code>TWebStatusClock = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddItem3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
| [[TWebStatusLocale|<code>TWebStatusLocale = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddItem5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusThreading|<code>TWebStatusThreading = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddBold(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBoldEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
| [[TWebStatusThreadList|<code>TWebStatusThreadList = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
| [[TWebStatusScheduler|<code>TWebStatusScheduler = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddBold4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
| [[TWebStatusDevices|<code>TWebStatusDevices = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddHeader(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub):Boolean;</code>
+
| [[TWebStatusDrivers|<code>TWebStatusDrivers = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddHeaderEx(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub; AColumns:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusHandles|<code>TWebStatusHandles = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddFooter(AResponse:THTTPServerResponse):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddFooterEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| [[TWebStatusUSB|<code>TWebStatusUSB = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddContent(AResponse:THTTPServerResponse; const AContent:String):Boolean;</code>
+
| [[TWebStatusPCI|<code>TWebStatusPCI = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| [[TWebStatusMMC|<code>TWebStatusMMC = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>property Title:String read GetTitle write SetTitle;</code>
+
| [[TWebStatusHID|<code>TWebStatusHID = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>property Caption:String read GetCaption;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusNetwork|<code>TWebStatusNetwork = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function RegisterSubPage(ASub:TWebStatusSub):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function DeregisterSubPage(ASub:TWebStatusSub):Boolean;</code>
+
| [[TWebStatusStorage|<code>TWebStatusStorage = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status sub'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusSub = class(THTTPDocument)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusFilesystem|<code>TWebStatusFilesystem = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
|}
| style="width: 50%;"|&nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>destructor Destroy; override;</code>
+
| [[TWebStatusCache|<code>TWebStatusCache = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>FMain:TWebStatusMain;</code>
+
| [[TWebStatusKeyboard|<code>TWebStatusKeyboard = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function GetTitle:String;</code>
+
| [[TWebStatusMouse|<code>TWebStatusMouse = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function GetCaption:String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusTouch|<code>TWebStatusTouch = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function NormalizedDateTimeToStr(const DateTime:TDateTime):String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
| [[TWebStatusJoystick|<code>TWebStatusJoystick = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>FCaption:String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusFramebuffer|<code>TWebStatusFramebuffer = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function MakeBold(const AName:String):String;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function MakeLink(const AName,ALink:String):String;</code>
+
| [[TWebStatusConsole|<code>TWebStatusConsole = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBlank(AResponse:THTTPServerResponse):Boolean;</code>
+
| [[TWebStatusLogging|<code>TWebStatusLogging = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddBlankEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusTimezone|<code>TWebStatusTimezone = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddItem(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItemEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
| [[TWebStatusEnvironment|<code>TWebStatusEnvironment = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
| [[TWebStatusPageTables|<code>TWebStatusPageTables = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddItem4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddItem5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
| [[TWebStatusVectorTables|<code>TWebStatusVectorTables = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
|colspan="2"|&nbsp;
+
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold(AResponse:THTTPServerResponse; const AName,AValue:String):Boolean;</code>
+
| [[TWebStatusIRQFIQSWI|<code>TWebStatusIRQFIQSWI = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddBoldEx(AResponse:THTTPServerResponse; const AName,AValue:String; AIndent:LongWord):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusGPIO|<code>TWebStatusGPIO = class(TWebStatusPage)</code>]]
 
|-
 
|-
| <code>function AddBold3Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>function AddBold4Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3:String):Boolean;</code>
+
| [[TWebStatusConfiguration|<code>TWebStatusConfiguration = class(TWebStatusPage)</code>]]
| &nbsp;
+
 
|-
 
|-
| <code>function AddBold5Column(AResponse:THTTPServerResponse; const AName,AValue1,AValue2,AValue3,AValue4:String):Boolean;</code>
+
|}
| &nbsp;
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
|colspan="2"|&nbsp;
+
| [[TWebStatusDeviceTree|<code>TWebStatusDeviceTree = class(TWebStatusPage)</code>]]
|-
+
| <code>function AddHeader(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddHeaderEx(AResponse:THTTPServerResponse; const ATitle:String; ASub:TWebStatusSub; AColumns:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddFooter(AResponse:THTTPServerResponse):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function AddFooterEx(AResponse:THTTPServerResponse; AColumns:LongWord):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function AddContent(AResponse:THTTPServerResponse; const AContent:String):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function DoGet(AHost:THTTPHost;ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Main:TWebStatusMain read FMain;</code>
+
| &nbsp;
+
|-
+
| <code>property Caption:String read GetCaption;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status platform'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusPlatform = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusDebug|<code>TWebStatusDebug = class(TWebStatusPage)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status memory'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusMemory = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusCustom|<code>TWebStatusCustom = class(TWebStatusPage)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status heap'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusHeap = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusLogin|<code>TWebStatusLogin = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function FlagsToFlagName(AFlags:LongWord):String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status CPU'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusCPU = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TWebStatusLogout|<code>TWebStatusLogout = class(TWebStatusSub)</code>]]
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
<br />
  
'''Web status FPU'''
+
=== Public variables ===
 +
----
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 
  
<code>TWebStatusFPU = class(TWebStatusSub)</code>
+
'''Web status specific variables'''
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|}
+
</div></div>
+
  
'''Web status GPU'''
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusGPU = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_FONT_NAME:String = 'Arial';</code>
|-
+
| style="width: 40%;"|
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status RTL'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusRTL = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_HEAP_FREE_COUNT:LongWord = 250;</code>
|-
+
| style="width: 40%;"|Maximum number of free heap blocks to display
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status clock'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusClock = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code>WEBSTATUS_HEAP_USED_COUNT:LongWord = 250;</code>
|-
+
| style="width: 40%;"|Maximum number of used heap blocks to display
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
'''Web status locale'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
 
+
<code>TWebStatusLocale = class(TWebStatusSub)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| <code> WEBSTATUS_ALLOW_RESTART:LongBool = True;</code>
 +
| style="width: 40%;"|If True enable the Restart button on the main page
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
| style="width: 50%;"|&nbsp;
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
| <code>WEBSTATUS_ALLOW_SHUTDOWN:LongBool = True;</code>
|-
+
| style="width: 40%;"|If True enable the Shutdown button on the main page
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div>
+
<br />
  
'''Web status threading'''
+
=== Function declarations ===
 +
----
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 
  
<code>TWebStatusThreading = class(TWebStatusSub)</code>
+
'''Initialization functions'''
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|}
+
</div></div>
+
  
'''Web status thread list'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">procedure WebStatusInit;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusThreadList = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 +
<br />
  
'''Web status scheduler'''
+
'''Web status functions'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusFind(AListener:THTTPListener; const AHost:String):TWebStatusMain;</pre>
<code>TWebStatusScheduler = class(TWebStatusSub)</code>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Find the WebStatus instance associated with the supplied Listener and Host</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Listener
 +
| The HTTP listener to find an instance for
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
! Host
| style="width: 50%;"|&nbsp;
+
| The HTTP host name to find an instance for (eg host.domain.com)
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
! Return
 +
| The Main object of the requested instance or nil if not found
 
|-
 
|-
|colspan="2"|&nbsp;
+
! Note
|-
+
| If Listener is nil and Host is empty then return the default (first) instance
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status devices'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create and register an instance of WebStatus associated with the supplied Listener and Host and automatically register all standard internal pages</div>
 
+
<code>TWebStatusDevices = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Listener
 +
| The HTTP listener to create an instance for
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
! Host
| style="width: 50%;"|&nbsp;
+
| The HTTP host name to create an instance for (eg host.domain.com) (Optional)
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
! URL
 +
| The base path on this host of the WebStatus pages (eg /status) (Optional)
 
|-
 
|-
|colspan="2"|&nbsp;
+
! Redirect
 +
| If True add a redirection from / to the WebStatus path
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
! Return
|-
+
| True if successful or False if an error occurred
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status drivers'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusRegisterEx(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean; AClass:TWebStatusClass):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create and register an instance of WebStatus associated with the supplied Listener and Host and / or register a page of the supplied class only. If a WebStatus instance already exists for the supplied Listener and Host then add a new page of the supplied class to the existing instance</div>
 
+
<code>TWebStatusDrivers = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Listener
 +
| The HTTP listener to create an instance for
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
! Host
| style="width: 50%;"|&nbsp;
+
| The HTTP host name to create an instance for (eg host.domain.com) (Optional)
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
! URL
 +
| The base path on this host of the WebStatus pages (eg /status) (Optional)
 
|-
 
|-
|colspan="2"|&nbsp;
+
! Redirect
 +
| If True add a redirection from / to the WebStatus path
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
! Class
 +
| The class of the page to be created and added to the instance
 
|-
 
|-
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
! Return
| &nbsp;
+
| True if successful or False if an error occurred
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status USB'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Deregister and destroy the instance of WebStatus associated with the supplied Listener and Host</div>
 
+
<code>TWebStatusUSB = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Listener
 +
| The HTTP listener to destroy the instance for
 
|-
 
|-
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
! Host
| style="width: 50%;"|&nbsp;
+
| The HTTP host name to destroy the instance for (eg host.domain.com)
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
! Return
|-
+
| True if successful or False if an error occurred
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status MMC'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusEnableUserAuthentication(AListener:THTTPListener; const AHost:String; AUserAuthenticator:TAuthenticator):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusMMC = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
+
<br />
'''Web status network'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusEnableSessionAuthentication(AListener:THTTPListener; const AHost:String; AUserAuthenticator,ASessionAuthenticator:TAuthenticator):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusNetwork = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status storage'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDisableAuthentication(AListener:THTTPListener; const AHost:String):Boolean;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusStorage = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 +
<br />
  
'''Web status filesystem'''
+
'''Web status helper functions'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">procedure WebStatusDeviceTreeLogOutput(const AText:String; Data:Pointer);</pre>
<code>TWebStatusFilesystem = class(TWebStatusSub)</code>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status cache'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusCache = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status keyboard'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusKeyboard = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status mouse'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusMouse = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status framebuffer'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusFramebuffer = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status environment'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusEnvironment = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status page tables'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusPageTables = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function FlagsToFlagNames(AFlags:LongWord):TStringList;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status vector tables'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusVectorTables = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status IRQ/FIQ/SWI'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">procedure WebStatusUSBLogOutput(const AText:String; Data:Pointer);</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusIRQFIQSWI = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status configuration'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBLogDeviceCallback(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusConfiguration = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status debug'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBLogTreeCallback(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusDebug = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(AMain:TWebStatusMain);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
|colspan="2"|&nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
+
<br />
'''Web status custom'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIDeviceEnumerate(Device:PPCIDevice; Data:Pointer):LongWord;</pre>
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
+
<code>TWebStatusCustom = class(TWebStatusSub)</code>
+
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
! Note
|-
+
| None documented
| <code>constructor Create(const AName,APath:String; AColumns:LongWord);</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>FColumns:LongWord;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function DoGet(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; override;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>function DoContent(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean; virtual;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>property Columns:LongWord read FColumns write FColumns;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|&nbsp;
+
|-
+
| <code>property OnContent:TWebStatusContent read FOnContent write FOnContent;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
=== Public variables ===
 
----
 
 
''None defined''
 
 
=== Function declarations ===
 
----
 
 
 
'''Web status functions'''
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIHostEnumerate(Host:PPCIHost; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,290: Line 699:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusPCIDriverEnumerate(Driver:PPCIDriver; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,301: Line 710:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
'''Web status helper functions'''
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,317: Line 723:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,329: Line 735:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDIODriverEnumerate(Driver:PSDIODriver; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,341: Line 747:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHIDDeviceEnumerate(Device:PHIDDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,353: Line 759:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusHIDConsumerEnumerate(Consumer:PHIDConsumer; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,365: Line 771:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,377: Line 783:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,389: Line 795:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,401: Line 807:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusTouchEnumerate(Touch:PTouchDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,413: Line 819:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,425: Line 831:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusJoystickEnumerate(Joystick:PJoystickDevice; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 1,437: Line 843:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function WebStatusConsoleWindowEnumerate(Console:PConsoleDevice; Handle:TWindowHandle; Data:Pointer):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 02:59, 5 November 2025

Return to Unit Reference


Description


Ultibo Web Status unit

Constants



Web status specific constants RtlMaxUnits*
RtlMaxUnits = 1024; See maxunits in system.inc
 
DeviceTreeMaxColumns = 140;  
DeviceTreeColumnOffset = 20;  


Type definitions



RTL initialize final record

TRtlInitFinalRec = record

Note: See TInitFinalRec in system.inc
InitProc:TProcedure;  
FinalProc:TProcedure;  

RTL initialize final table

PRtlInitFinalTable = ^TRtlInitFinalTable;

TRtlInitFinalTable = record

Note: See TInitFinalTable in system.inc
TableCount:LongWord;  
InitCount:LongWord;  
Procs:array[1..RtlMaxUnits] of TRtlInitFinalRec;  

Web status data

PWebStatusData = ^TWebStatusData;

TWebStatusData = record

Document:TWebStatusSub;  
Host:THTTPHost;  
Request:THTTPServerRequest;  
Response:THTTPServerResponse;  
ContentStream:TStream;  
Data:Pointer;  

Web status content

TWebStatusContent = function(AHost:THTTPHost; ARequest:THTTPServerRequest; AResponse:THTTPServerResponse):Boolean of Object;


Class definitions



Web status specific classes

TWebStatusMain = class(THTTPDocument)
TWebStatusSub = class(THTTPDocument)
TWebStatusPage = class(TWebStatusSub)
TWebStatusClass = class (TWebStatusPage)
TWebStatusPlatform = class(TWebStatusPage)
TWebStatusMemory = class(TWebStatusPage)
TWebStatusHeap = class(TWebStatusPage)
TWebStatusCPU = class(TWebStatusPage)
TWebStatusFPU = class(TWebStatusPage)
TWebStatusGPU = class(TWebStatusPage)
TWebStatusRTL = class(TWebStatusPage)
TWebStatusClock = class(TWebStatusPage)
TWebStatusLocale = class(TWebStatusPage)
TWebStatusThreading = class(TWebStatusPage)
TWebStatusThreadList = class(TWebStatusPage)
TWebStatusScheduler = class(TWebStatusPage)
TWebStatusDevices = class(TWebStatusPage)
TWebStatusDrivers = class(TWebStatusPage)
TWebStatusHandles = class(TWebStatusPage)
TWebStatusUSB = class(TWebStatusPage)
TWebStatusPCI = class(TWebStatusPage)
TWebStatusMMC = class(TWebStatusPage)
TWebStatusHID = class(TWebStatusPage)
TWebStatusNetwork = class(TWebStatusPage)
TWebStatusStorage = class(TWebStatusPage)
TWebStatusFilesystem = class(TWebStatusPage)
TWebStatusCache = class(TWebStatusPage)
TWebStatusKeyboard = class(TWebStatusPage)
TWebStatusMouse = class(TWebStatusPage)
TWebStatusTouch = class(TWebStatusPage)
TWebStatusJoystick = class(TWebStatusPage)
TWebStatusFramebuffer = class(TWebStatusPage)
TWebStatusConsole = class(TWebStatusPage)
TWebStatusLogging = class(TWebStatusPage)
TWebStatusTimezone = class(TWebStatusPage)
TWebStatusEnvironment = class(TWebStatusPage)
TWebStatusPageTables = class(TWebStatusPage)
TWebStatusVectorTables = class(TWebStatusPage)
TWebStatusIRQFIQSWI = class(TWebStatusPage)
TWebStatusGPIO = class(TWebStatusPage)
TWebStatusConfiguration = class(TWebStatusPage)
TWebStatusDeviceTree = class(TWebStatusPage)
TWebStatusDebug = class(TWebStatusPage)
TWebStatusCustom = class(TWebStatusPage)
TWebStatusLogin = class(TWebStatusSub)
TWebStatusLogout = class(TWebStatusSub)


Public variables



Web status specific variables

WEBSTATUS_FONT_NAME:String = 'Arial';
WEBSTATUS_HEAP_FREE_COUNT:LongWord = 250; Maximum number of free heap blocks to display
WEBSTATUS_HEAP_USED_COUNT:LongWord = 250; Maximum number of used heap blocks to display
WEBSTATUS_ALLOW_RESTART:LongBool = True; If True enable the Restart button on the main page
WEBSTATUS_ALLOW_SHUTDOWN:LongBool = True; If True enable the Shutdown button on the main page


Function declarations



Initialization functions

procedure WebStatusInit;
Description: To be documented
Note None documented


Web status functions

function WebStatusFind(AListener:THTTPListener; const AHost:String):TWebStatusMain;
Description: Find the WebStatus instance associated with the supplied Listener and Host
Listener The HTTP listener to find an instance for
Host The HTTP host name to find an instance for (eg host.domain.com)
Return The Main object of the requested instance or nil if not found
Note If Listener is nil and Host is empty then return the default (first) instance


function WebStatusRegister(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean):Boolean;
Description: Create and register an instance of WebStatus associated with the supplied Listener and Host and automatically register all standard internal pages
Listener The HTTP listener to create an instance for
Host The HTTP host name to create an instance for (eg host.domain.com) (Optional)
URL The base path on this host of the WebStatus pages (eg /status) (Optional)
Redirect If True add a redirection from / to the WebStatus path
Return True if successful or False if an error occurred


function WebStatusRegisterEx(AListener:THTTPListener; const AHost,AURL:String; ARedirect:Boolean; AClass:TWebStatusClass):Boolean;
Description: Create and register an instance of WebStatus associated with the supplied Listener and Host and / or register a page of the supplied class only. If a WebStatus instance already exists for the supplied Listener and Host then add a new page of the supplied class to the existing instance
Listener The HTTP listener to create an instance for
Host The HTTP host name to create an instance for (eg host.domain.com) (Optional)
URL The base path on this host of the WebStatus pages (eg /status) (Optional)
Redirect If True add a redirection from / to the WebStatus path
Class The class of the page to be created and added to the instance
Return True if successful or False if an error occurred


function WebStatusDeregister(AListener:THTTPListener; const AHost:String):Boolean;
Description: Deregister and destroy the instance of WebStatus associated with the supplied Listener and Host
Listener The HTTP listener to destroy the instance for
Host The HTTP host name to destroy the instance for (eg host.domain.com)
Return True if successful or False if an error occurred


function WebStatusEnableUserAuthentication(AListener:THTTPListener; const AHost:String; AUserAuthenticator:TAuthenticator):Boolean;
Description: To be documented
Note None documented


function WebStatusEnableSessionAuthentication(AListener:THTTPListener; const AHost:String; AUserAuthenticator,ASessionAuthenticator:TAuthenticator):Boolean;
Description: To be documented
Note None documented


function WebStatusDisableAuthentication(AListener:THTTPListener; const AHost:String):Boolean;
Description: To be documented
Note None documented


Web status helper functions

procedure WebStatusDeviceTreeLogOutput(const AText:String; Data:Pointer);
Description: To be documented
Note None documented


function WebStatusDeviceEnumerate(Device:PDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusDriverEnumerate(Driver:PDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHandleEnumerate(Handle:PHandleEntry; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBDeviceEnumerate(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBHostEnumerate(Host:PUSBHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBDriverEnumerate(Driver:PUSBDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


procedure WebStatusUSBLogOutput(const AText:String; Data:Pointer);
Description: To be documented
Note None documented


function WebStatusUSBLogDeviceCallback(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusUSBLogTreeCallback(Device:PUSBDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIDeviceEnumerate(Device:PPCIDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIHostEnumerate(Host:PPCIHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusPCIDriverEnumerate(Driver:PPCIDriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMMCEnumerate(MMC:PMMCDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusSDHCIEnumerate(SDHCI:PSDHCIHost; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusSDIODriverEnumerate(Driver:PSDIODriver; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHIDDeviceEnumerate(Device:PHIDDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusHIDConsumerEnumerate(Consumer:PHIDConsumer; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusNetworkEnumerate(Network:PNetworkDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusStorageEnumerate(Storage:PStorageDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusMouseEnumerate(Mouse:PMouseDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusTouchEnumerate(Touch:PTouchDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusKeyboardEnumerate(Keyboard:PKeyboardDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusJoystickEnumerate(Joystick:PJoystickDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WebStatusConsoleWindowEnumerate(Console:PConsoleDevice; Handle:TWindowHandle; Data:Pointer):LongWord;
Description: To be documented
Note None documented


Return to Unit Reference