<?php

namespace Kicken\Fibers\FiberEventLoop\Trigger;

use 
Kicken\Fibers\FiberEventLoop\TriggerMonitor;

class 
ProcessTerminated implements Trigger {
    private array 
$status = [];

    public function 
__construct(private $process){
    }

    public function 
prepare(TriggerMonitor $monitor) : void{
        
$monitor->addProcessExited($this->process);
    }

    public function 
isTriggered(TriggerMonitor $monitor) : bool{
        
$this->status $monitor->getProcessStatus($this->process);

        return !
$this->status['running'];
    }

    public function 
getResumeData() : array{
        return 
$this->status;
    }
}