Difference between revisions of "Unit Shell"
Line 205: | Line 205: | ||
---- | ---- | ||
− | '' | + | |
+ | '''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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TCriticalSectionHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FShells:TLinkedList;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FCommands:TLinkedList;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function GetShell(APrevious:TShell; ALock,AUnlock:Boolean):TShell;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindShell(const AName:String):TShell;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function RegisterShell(AShell:TShell):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DeregisterShell(AShell:TShell):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindCommand(const AName:String):TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DefaultCommand:TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function RegisterCommand(ACommand:TShellCommand):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DeregisterCommand(ACommand:TShellCommand):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FManager:TShellManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FAuthenticator:TAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FLock:TCriticalSectionHandle;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FSessions:TLinkedList;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FCommands:TLinkedList;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FBanner:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FPrompt:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FError:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FHash:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FFlags:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>procedure SetAuthenticator(AAuthenticator:TAuthenticator);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetBanner:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetBanner(const ABanner:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetPrompt:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetPrompt(const APrompt:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function GetError:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetError(const AError:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetName(const AName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetFlags(AFlags:LongWord);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Manager:TShellManager read FManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Authenticator:TAuthenticator read FAuthenticator write SetAuthenticator;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Banner:String read GetBanner write SetBanner;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Prompt:String read GetPrompt write SetPrompt;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Error:String read GetError write SetError;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Name:String read GetName write SetName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Hash:LongWord read FHash;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Flags:LongWord read FFlags write SetFlags;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoClear(ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoBanner(ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoPrompt(ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoError(ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoInput(ASession:TShellSession; var AInput:String):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoOutput(ASession:TShellSession; const AOutput:String):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoOutputEx(ASession:TShellSession; const AOutput:String; AReturn:Boolean):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoGetSize(ASession:TShellSession; var ARows,ACols:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoSetSize(ASession:TShellSession; ARows,ACols:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoGetCursor(ASession:TShellSession; var ARow,ACol:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoSetCursor(ASession:TShellSession; ARow,ACol:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoGetColors(ASession:TShellSession; var AForecolor,ABackcolor:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoSetColors(ASession:TShellSession; AForecolor,ABackcolor:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoGetCoordinates(ASession:TShellSession; var ARow,ACol:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoSetCoordinates(ASession:TShellSession; ARow,ACol:LongWord):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetSession(APrevious:TShellSession; ALock,AUnlock:Boolean):TShellSession;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindSession(AIdentifier:LongWord):TShellSession;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function CreateSession(AIdentifier:LongWord):TShellSession;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DestroySession(ASession:TShellSession):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function RegisterSession(ASession:TShellSession):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DeregisterSession(ASession:TShellSession):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindCommand(const AName:String):TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DefaultCommand:TShellCommand;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function RegisterCommand(ACommand:TShellCommand):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DeregisterCommand(ACommand:TShellCommand):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function MatchCommand(const ACommand:String; var AContinue:Boolean):TShellCommand; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ProcessCommand(ASession:TShellSession; const ACommand:String):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function CommandName(const ACommand:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CommandSplit(const ACommand:String):TStrings;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CommandParse(const ACommand:String; var AName:String; var AParameters:TStrings):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function CommandIndex(AIndex:Integer; const ACommand:String):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ParameterIndex(AIndex:Integer; AParameters:TStrings):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ParameterValue(const AParameter:String; AParameters:TStrings):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ParameterExists(const AParameter:String; AParameters:TStrings):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function ParameterValueEx(const AParameter:String; AParameters:TStrings; APlus,AMinus:Boolean):String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ParameterExistsEx(const AParameter:String; AParameters:TStrings; APlus,AMinus:Boolean):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function AddOutput(var AOutput:String; ACol:LongWord; const AValue:String):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FShell:TShell;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FLock:TCriticalSectionHandle; </code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FIdentifier:LongWord;</code> | ||
+ | | Unique identifier for this session | ||
+ | |- | ||
+ | | <code>FFlags:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FPrompt:String;</code> | ||
+ | | Current prompt for this session | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FData:Pointer;</code> | ||
+ | | Shell private data for this session | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>procedure SetFlags(AFlags:LongWord);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetData(AData:Pointer);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetPrompt:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetPrompt(const APrompt:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Shell:TShell read FShell;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Identifier:LongWord read FIdentifier;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Flags:LongWord read FFlags write SetFlags;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Prompt:String read GetPrompt write SetPrompt;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Data:Pointer read FData write SetData;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FManager:TShellManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FLock:TCriticalSectionHandle; </code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FAliases:TLinkedList;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FHash:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FFlags:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetName(const AName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetFlags(AFlags:LongWord);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Manager:TShellManager read FManager;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>property Name:String read GetName write SetName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Hash:LongWord read FHash;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Flags:LongWord read FFlags write SetFlags;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoDefault(AShell:TShell; ASession:TShellSession; const AName:String; AParameters:TStrings):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoExtended(AShell:TShell; ASession:TShellSession; const AName:String; AParameters:TStrings):Boolean; virtual;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetAlias(APrevious:TShellAlias; ALock,AUnlock:Boolean):TShellAlias;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function FindAlias(const AName:String):TShellAlias;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function RegisterAlias(AAlias:TShellAlias):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DeregisterAlias(AAlias:TShellAlias):Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | | <code>FLock:TCriticalSectionHandle; </code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>FName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FHash:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FFlags:LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>function GetName:String;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetName(const AName:String);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>procedure SetFlags(AFlags:LongWord);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div> | ||
+ | |- | ||
+ | | <code>function AcquireLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function ReleaseLock:Boolean;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>property Name:String read GetName write SetName;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Hash:LongWord read FHash;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>property Flags:LongWord read FFlags write SetFlags;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | | <code>destructor Destroy; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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%;"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | ||
+ | |- | ||
+ | | <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
=== Public variables === | === Public variables === |
Revision as of 05:15, 21 March 2017
Return to Unit Reference
Contents
[hide]Description
Ultibo Generic Shell unit
To be documented
Constants
SHELL_*
SHELL_FLAG_*
SHELL_SESSION_FLAG_*
SHELL_COMMAND_FLAG_*
SHELL_ALIAS_FLAG_*
SHELL_COMMAND_*
SHELL_ALIAS_*
SHELL_LOG_*
Type definitions
None defined
Class definitions
Shell manager
TShellManager = class(TObject)
Shell
TShell = class(TListObject)
Shell session
TShellSession = class(TListObject)
Shell command
TShellCommand = class(TListObject)
Shell alias
TShellAlias = class(TListObject)
Shell command help
TShellCommandHelp = class(TShellCommand)
Shell command information
TShellCommandInfo = class(TShellCommand)
Shell command version
TShellCommandVer = class(TShellCommand)
Shell command time
TShellCommandTime = class(TShellCommand)
Shell command clear
TShellCommandClear = class(TShellCommand)
Shell command restart
TShellCommandRestart = class(TShellCommand)
Shell command shutdown
TShellCommandShutdown = class(TShellCommand)
Shell command uptime
TShellCommandUptime = class(TShellCommand)
Shell command threads
TShellCommandThreads = class(TShellCommand)
Shell command memory
TShellCommandMemory = class(TShellCommand)
Shell command devices
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
Shell functions
function ShellGetShell(APrevious:TShell; ALock,AUnlock:Boolean):TShell;
function ShellGetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;
function ShellRegisterCommand(ACommand:TShellCommand):Boolean;
function ShellDeregisterCommand(ACommand:TShellCommand):Boolean;
Shell helper functions
Return to Unit Reference