Ferreteria/v0.6/clade/IO/Aspect/Connx/Runner
Jump to navigation
Jump to search
| ||||||||||||||||||||||||||||||
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
- 2026-02-19 reparented to
IO\Aspect\Connx
Pages
- functions:
Code
interface iRunner extends BaseIface, ClientIface, ServerIface {
// LIFECYCLE
## function Open() : OpenIface;
## function Shut() : ShutIface;
// EXEC (DOCS: https://wooz.dev/Ferreteria/v0.6/clade/IO/Aspect/Connx/Runner/@fx/DoCommand)
function DoCommand(CLineIface $oCmd) : ResultIface;
// OUTPUT
#{I} function DescribeInline() : string;
// OBJECTS
function OResult(?ResultIface $o=NULL) : ResultIface;
function QOAudience() : QStreamIface;
function QOLecturer() : QStreamIface;
function QPanel() : QPanelIface;
}
abstract class caRunner extends BaseClass implements SelfIface {
use ClientTrait;
// ++ ACTION ++ //
// ++ ACTION: I/O ++
public function PullBytes(int $nMax=NULL) : OpDataIface {
echo $this->OProcess()->ReflectThis()->Report(); die();
#return $this->OProcess()-> ...something...
}
// ACTION: add on as new bytes
public function PushBytes(string $s) : OpDataIface {
echo $this->OProcess()->ReflectThis()->Report(); die();
}
// -- ACTION -- //
// ++ OBJECTS ++ //
private $oRes = NULL;
public function OResult(?ResultIface $o=NULL) : ResultIface { return is_null($o) ? ($this->oRes ?? $this->OResultNew()) : ($this->oRes = $o); }
protected function OResultNew() : ResultIface { return ($this->oRes = ResultClass::FromOAPipes($this->OAPipes())); }
private $qoAud = NULL;
public function QOAudience() : QStreamIface { return $this->qoAud ?? ($this->qoAud = QStreamClass::AsNew()); }
private $qoLec = NULL;
public function QOLecturer() : QStreamIface { return $this->qoLec ?? ($this->qoLec = QStreamClass::AsNew()); }
private $qoPanel = NULL;
public function QPanel() : QPanelIface { return $this->qoPanel ?? ($this->qoPanel = QPanelClass::AsNew()); }
// ++ OBJECTS ++ //
}