clade: IO\Aspect\Connx\Stream\Runner
|
|
| Clade Aliases
|
| Alias |
Clade
|
| Base* [ca,i] |
IO\Aspect\Connx\Stream
|
| BufferIface |
IO\Aspect\Connx\Buffer
|
| Client* [ix,tx] |
IO\Aspect\aux\endpt\Client
|
| CmdLineIface |
Sys\Data\Codec\aux\CmdLine
|
| CommOp* [c,i] |
IO\Aspect\Connx\aux\itWent\CommOp
|
| MemBuffClass |
IO\Aspect\Connx\Buffer\InMem
|
| Result* [c,i] |
IO\Aspect\Connx\aux\itWent\ProcOp
|
| SelfIface |
IO\Aspect\Connx\Stream\Runner
|
| Stream* [c,i] |
IO\Aspect\Connx\Stream
|
|
About
- Purpose: abstraction of a command-shell connection
- ...so that code in callers (e.g. DB clients) doesn't need to know where the target (final endpoint) server is, or even whether it's local.
History
- 2024-10-31 started
- 2024-11-19 moved from [WFe]Config\Def\Connex -> [WFe]IO\Connx\Shell as part of Def/actor integration
- 2025-05-27 moved from [WFe]IO\Connx -> [WFe]IO\Aspect\Connx
- 2025-06-04 moved from [WFe]IO\Aspect\Connx -> [WFe]IO\Aspect\Connx\Plug
- 2026-01-31
- earlier: was moved from [WFe]IO\Aspect\Connx\Plug ⇒ [WFe]IO\Aspect\Connx\Stream
- now: renamed from
Shell ⇒ Runner
Pages
Code
as of 2026-01-31 (probably needs work):
interface iRunner extends BaseIface, ClientIface {
// LIFECYCLE
function Open() : CommOpIface;
function Shut() : CommOpIface;
// OUTPUT
#{I} function DescribeInline() : string;
}
abstract class caRunner extends BaseClass implements SelfIface {
use ClientTrait;
// ++ ACTION ++ //
// DOCS: https://wooz.dev/Ferreteria/v0.6/clade/IO/Aspect/Connx/Stream/Runner/@fx/DoCommand
public function DoCommand(CmdLineIface $oCmd) : ResultIface {
$oProc = $this->OProcess();
$oProc->RunCommand($oCmd);
return $oProc->OResult();
}
// ++ ACTION: I/O ++
public function PullBytes(int $nMax=NULL) : CommOpIface {
echo $this->OProcess()->ReflectThis()->Report(); die();
#return $this->OProcess()-> ...something...
}
// ACTION: add on as new bytes
public function PushBytes(string $s) : int|null {
echo $this->OProcess()->ReflectThis()->Report(); die();
}
// -- ACTION -- //
}