Ferreteria/v0.6/clade/IO/Aspect/Connx/Stream/Runner

From Woozle Writes Code
< Ferreteria‎ | v0.6‎ | clade‎ | IO‎ | Aspect‎ | Connx‎ | Stream
Jump to navigation Jump to search
clade: IO\Aspect\Connx\Stream\Runner
Clade Family
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
Subpages

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 ShellRunner

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 -- //
}