<?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;
    }
}