Ferreteria/v0.6/clade/IO/Aspect/Connx/run/Session/@code/rmv/2026/09/27

From WoozleCodes
Jump to navigation Jump to search
2026/09/26 2026/09/27 2026/09/28

Doing some tidying up before tweaking the API a bit.

  • 2026-09-20 replacing this with $SCommand + Open() / Shut(), in some order or other...
#
    // ACTION: Runs the executable and makes I/O/E Streams available
    public function DoCommand(CmdIface &$oCmd) : OpCmdIface {

        $oPort = $this->OPort;
        $oProc = $oPort->NewProcess($oCmd->AsString);
        #$this->AmHere('PROCESS COMMAND = ['.$oProc->SCommand.']');
        $this->OProc = $oProc;

        $oOp = OpCmdClass::FromSession($this);

        $ok = FALSE;

        $oOpAux = $oPort->Open();

        if ($oOpAux->IsOkay) {
            $oOpAux = $oProc->Open();
            if ($oOpAux->IsOkay) {
                $ok = TRUE;
            } else {
                $oOpAux->AddMsgString('Could not start process.');
            }
        } else {
            $oOpAux->AddMsgString('Could not open connection.');
        }
        $oOp->Assimilate($oOpAux);

        #$oOp = OpCmdClass::FromAnother($oOp);

        #$oOp->IsOkay = $ok;  // 2026-09-20 Should be redundant now.

        return $oOp;

    }
public function SendCommand(CmdIface &$oCmd) : OpCmdIface {
        $sCmd = $oCmd->AsString;
        $oOpComm = $this->OExecRespond->PushBytes($sCmd."\n");
        $this->AmHere("SENT COMMAND: [$sCmd]");
        $oOpCmd = OpCmdClass::FromAnother($oOpComm);
        return $oOpCmd;
    }

I commented this out a few days ago, probably after 9/20:

#
    protected function RunIt() {
        $oPort = $this->OPort;
        $oProc = $oPort->NewProcess($this->SCommand); // TODO: helpful error if $SCommand is not set
        $this->OProc = $oProc;

      $this->AmHere('ActualOpen of Session: Port='.get_class($oPort).' Proc='.get_class($oProc));

        #$this->AmHere('PROCESS COMMAND = ['.$oProc->SCommand.']');

        $ok = FALSE;

        $oOpOpen = $oPort->Open();

        if ($oOpOpen->IsOkay) {
            $oOpOpen = $oProc->Open();
            if ($oOpOpen->IsOkay) {
                $ok = TRUE;
            } else {
                $oOpOpen->AddMsgString('Could not start process.');
            }
        } else {
            $oOpOpen->AddMsgString('Could not open connection.');
        }

        $this->OOpOpen = $oPort->Open();
    }