Difference between revisions of "Unit Shell"

From Ultibo.org
Jump to: navigation, search
Line 205: Line 205:
 
----
 
----
  
''To be documented''
+
 
 +
'''Shell manager'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellManager = class(TObject)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FLock:TCriticalSectionHandle;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FShells:TLinkedList;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FCommands:TLinkedList;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function AcquireLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ReleaseLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>function GetShell(APrevious:TShell; ALock,AUnlock:Boolean):TShell;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function FindShell(const AName:String):TShell;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function RegisterShell(AShell:TShell):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DeregisterShell(AShell:TShell):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function FindCommand(const AName:String):TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DefaultCommand:TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function RegisterCommand(ACommand:TShellCommand):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DeregisterCommand(ACommand:TShellCommand):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShell = class(TListObject)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FManager:TShellManager;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FAuthenticator:TAuthenticator;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FLock:TCriticalSectionHandle;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FSessions:TLinkedList;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FCommands:TLinkedList;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FBanner:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FPrompt:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FError:String;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FHash:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FFlags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>procedure SetAuthenticator(AAuthenticator:TAuthenticator);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetBanner:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetBanner(const ABanner:String);</code>
 +
| &nbsp;
 +
|-
 +
| <code>function GetPrompt:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetPrompt(const APrompt:String);</code>
 +
| &nbsp;
 +
|-
 +
| <code>function GetError:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetError(const AError:String);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetName(const AName:String);</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetFlags(AFlags:LongWord);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function AcquireLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ReleaseLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>property Manager:TShellManager read FManager;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Authenticator:TAuthenticator read FAuthenticator write SetAuthenticator;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Banner:String read GetBanner write SetBanner;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Prompt:String read GetPrompt write SetPrompt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Error:String read GetError write SetError;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Name:String read GetName write SetName;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Hash:LongWord read FHash;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Flags:LongWord read FFlags write SetFlags;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoClear(ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoBanner(ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoPrompt(ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoError(ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoInput(ASession:TShellSession; var AInput:String):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoOutput(ASession:TShellSession; const AOutput:String):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoOutputEx(ASession:TShellSession; const AOutput:String; AReturn:Boolean):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoGetSize(ASession:TShellSession; var ARows,ACols:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoSetSize(ASession:TShellSession; ARows,ACols:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoGetCursor(ASession:TShellSession; var ARow,ACol:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoSetCursor(ASession:TShellSession; ARow,ACol:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoGetColors(ASession:TShellSession; var AForecolor,ABackcolor:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoSetColors(ASession:TShellSession; AForecolor,ABackcolor:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoGetCoordinates(ASession:TShellSession; var ARow,ACol:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoSetCoordinates(ASession:TShellSession; ARow,ACol:LongWord):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetSession(APrevious:TShellSession; ALock,AUnlock:Boolean):TShellSession;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function FindSession(AIdentifier:LongWord):TShellSession;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function CreateSession(AIdentifier:LongWord):TShellSession;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DestroySession(ASession:TShellSession):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function RegisterSession(ASession:TShellSession):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DeregisterSession(ASession:TShellSession):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function FindCommand(const AName:String):TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DefaultCommand:TShellCommand;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function RegisterCommand(ACommand:TShellCommand):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DeregisterCommand(ACommand:TShellCommand):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function MatchCommand(const ACommand:String; var AContinue:Boolean):TShellCommand; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ProcessCommand(ASession:TShellSession; const ACommand:String):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function CommandName(const ACommand:String):String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function CommandSplit(const ACommand:String):TStrings;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function CommandParse(const ACommand:String; var AName:String; var AParameters:TStrings):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function CommandIndex(AIndex:Integer; const ACommand:String):String;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function ParameterIndex(AIndex:Integer; AParameters:TStrings):String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ParameterValue(const AParameter:String; AParameters:TStrings):String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ParameterExists(const AParameter:String; AParameters:TStrings):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function ParameterValueEx(const AParameter:String; AParameters:TStrings; APlus,AMinus:Boolean):String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ParameterExistsEx(const AParameter:String; AParameters:TStrings; APlus,AMinus:Boolean):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function AddOutput(var AOutput:String; ACol:LongWord; const AValue:String):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell session'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellSession = class(TListObject)</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>constructor Create(AShell:TShell; AIdentifier:LongWord);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FShell:TShell;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FLock:TCriticalSectionHandle; </code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FIdentifier:LongWord;</code>
 +
| Unique identifier for this session
 +
|-
 +
| <code>FFlags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FPrompt:String;</code>
 +
| Current prompt for this session
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FData:Pointer;</code>
 +
| Shell private data for this session
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>procedure SetFlags(AFlags:LongWord);</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetData(AData:Pointer);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetPrompt:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetPrompt(const APrompt:String);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function AcquireLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ReleaseLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>property Shell:TShell read FShell;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Identifier:LongWord read FIdentifier;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Flags:LongWord read FFlags write SetFlags;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Prompt:String read GetPrompt write SetPrompt;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Data:Pointer read FData write SetData;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommand = class(TListObject)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FManager:TShellManager;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FLock:TCriticalSectionHandle; </code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FAliases:TLinkedList;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FHash:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FFlags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetName(const AName:String);</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetFlags(AFlags:LongWord);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function AcquireLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ReleaseLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>property Manager:TShellManager read FManager;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>property Name:String read GetName write SetName;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Hash:LongWord read FHash;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Flags:LongWord read FFlags write SetFlags;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoDefault(AShell:TShell; ASession:TShellSession; const AName:String; AParameters:TStrings):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoExtended(AShell:TShell; ASession:TShellSession; const AName:String; AParameters:TStrings):Boolean; virtual;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetAlias(APrevious:TShellAlias; ALock,AUnlock:Boolean):TShellAlias;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function FindAlias(const AName:String):TShellAlias;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function RegisterAlias(AAlias:TShellAlias):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DeregisterAlias(AAlias:TShellAlias):Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell alias'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellAlias = class(TListObject)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
| <code>FLock:TCriticalSectionHandle; </code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>FName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FHash:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FFlags:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>function GetName:String;</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetName(const AName:String);</code>
 +
| &nbsp;
 +
|-
 +
| <code>procedure SetFlags(AFlags:LongWord);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
 +
|-
 +
| <code>function AcquireLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function ReleaseLock:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>property Name:String read GetName write SetName;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Hash:LongWord read FHash;</code>
 +
| &nbsp;
 +
|-
 +
| <code>property Flags:LongWord read FFlags write SetFlags;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command help'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandHelp = class(TShellCommand)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandInfo = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command version'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandVer = class(TShellCommand)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command time'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandTime = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command clear'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandClear = class(TShellCommand)</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>constructor Create;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>destructor Destroy; override;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command restart'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandRestart = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command shutdown'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandShutdown = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''Shell command uptime'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandUptime = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command threads'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandThreads = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Shell command memory'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandMemory = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''Shell command devices'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
 
 +
<code>TShellCommandDevices = class(TShellCommand)</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>constructor Create;</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;">'''public'''</div>
 +
|-
 +
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===

Revision as of 05:15, 21 March 2017

Return to Unit Reference


Description


Ultibo Generic Shell unit

To be documented

Constants



[Expand]
Shell specific constants SHELL_*


[Expand]
Shell flag constants SHELL_FLAG_*


[Expand]
Shell session flag constants SHELL_SESSION_FLAG_*


[Expand]
Shell command flag constants SHELL_COMMAND_FLAG_*


[Expand]
Shell alias flag constants SHELL_ALIAS_FLAG_*


[Expand]
Shell command constants SHELL_COMMAND_*


[Expand]
Shell alias constants SHELL_ALIAS_*


[Expand]
Shell logging constants SHELL_LOG_*


Type definitions


None defined

Class definitions



Shell manager

[Expand]

TShellManager = class(TObject)

Shell

[Expand]

TShell = class(TListObject)

Shell session

[Expand]

TShellSession = class(TListObject)

Shell command

[Expand]

TShellCommand = class(TListObject)

Shell alias

[Expand]

TShellAlias = class(TListObject)

Shell command help

[Expand]

TShellCommandHelp = class(TShellCommand)

Shell command information

[Expand]

TShellCommandInfo = class(TShellCommand)

Shell command version

[Expand]

TShellCommandVer = class(TShellCommand)

Shell command time

[Expand]

TShellCommandTime = class(TShellCommand)

Shell command clear

[Expand]

TShellCommandClear = class(TShellCommand)

Shell command restart

[Expand]

TShellCommandRestart = class(TShellCommand)

Shell command shutdown

[Expand]

TShellCommandShutdown = class(TShellCommand)

Shell command uptime

[Expand]

TShellCommandUptime = class(TShellCommand)

Shell command threads

[Expand]

TShellCommandThreads = class(TShellCommand)

Shell command memory

[Expand]

TShellCommandMemory = class(TShellCommand)

Shell command devices

[Expand]

TShellCommandDevices = class(TShellCommand)


Public variables



Shell logging

SHELL_DEFAULT_LOG_LEVEL:LongWord = SHELL_LOG_LEVEL_DEBUG; Minimum level for Shell messages. Only messages with level greater than or equal to this will be printed.
SHELL_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

[Expand]
procedure ShellInit;
Description: To be documented


Shell functions

[Expand]
function ShellGetShell(APrevious:TShell; ALock,AUnlock:Boolean):TShell;
Description: To be documented


[Expand]
function ShellFindShell(const AName:String):TShell;
Description: To be documented


[Expand]
function ShellRegisterShell(AShell:TShell):Boolean;
Description: To be documented


[Expand]
function ShellDeregisterShell(AShell:TShell):Boolean;
Description: To be documented


[Expand]
function ShellGetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;
Description: To be documented


[Expand]
function ShellFindCommand(const AName:String):TShellCommand;
Description: To be documented


[Expand]
function ShellRegisterCommand(ACommand:TShellCommand):Boolean;
Description: To be documented


[Expand]
function ShellDeregisterCommand(ACommand:TShellCommand):Boolean;
Description: To be documented


Shell helper functions

[Expand]
procedure ShellLog(Level:LongWord; const AText:String);
Description: To be documented


[Expand]
procedure ShellLogInfo(const AText:String);
Description: To be documented


[Expand]
procedure ShellLogError(const AText:String);
Description: To be documented


[Expand]
procedure ShellLogDebug(const AText:String);
Description: To be documented


Return to Unit Reference