eventTimer[$timerId]); $func(...$args); }); $this->eventTimer[self::$timerId] = $event; return self::$timerId++; } /** * {@inheritdoc} */ public function offDelay(int $timerId): bool { if (isset($this->eventTimer[$timerId])) { $this->eventTimer[$timerId]->stop(); unset($this->eventTimer[$timerId]); return true; } return false; } /** * {@inheritdoc} */ public function offRepeat(int $timerId): bool { return $this->offDelay($timerId); } /** * {@inheritdoc} */ public function repeat(float $interval, callable $func, array $args = []): int { $event = new EvTimer($interval, $interval, function () use ($func, $args) { $func(...$args); }); $this->eventTimer[self::$timerId] = $event; return self::$timerId++; } /** * {@inheritdoc} */ public function onReadable($stream, callable $func): void { $fdKey = (int)$stream; $event = new EvIo($stream, \Ev::READ, function () use ($func, $stream) { $func($stream); }); $this->readEvents[$fdKey] = $event; } /** * {@inheritdoc} */ public function offReadable($stream): bool { $fdKey = (int)$stream; if (isset($this->readEvents[$fdKey])) { $this->readEvents[$fdKey]->stop(); unset($this->readEvents[$fdKey]); return true; } return false; } /** * {@inheritdoc} */ public function onWritable($stream, callable $func): void { $fdKey = (int)$stream; $event = new EvIo($stream, \Ev::WRITE, function () use ($func, $stream) { $func($stream); }); $this->readEvents[$fdKey] = $event; } /** * {@inheritdoc} */ public function offWritable($stream): bool { $fdKey = (int)$stream; if (isset($this->writeEvents[$fdKey])) { $this->writeEvents[$fdKey]->stop(); unset($this->writeEvents[$fdKey]); return true; } return false; } /** * {@inheritdoc} */ public function onSignal(int $signal, callable $func): void { $event = new EvSignal($signal, function () use ($func, $signal) { $func($signal); }); $this->eventSignal[$signal] = $event; } /** * {@inheritdoc} */ public function offSignal(int $signal): bool { if (isset($this->eventSignal[$signal])) { $this->eventSignal[$signal]->stop(); unset($this->eventSignal[$signal]); return true; } return false; } /** * {@inheritdoc} */ public function deleteAllTimer(): void { foreach ($this->eventTimer as $event) { $event->stop(); } $this->eventTimer = []; } /** * {@inheritdoc} */ public function run(): void { \Ev::run(); } /** * {@inheritdoc} */ public function stop(): void { \Ev::stop(); } /** * {@inheritdoc} */ public function getTimerCount(): int { return count($this->eventTimer); } /** * {@inheritdoc} */ public function setErrorHandler(callable $errorHandler): void { $this->errorHandler = $errorHandler; } /** * {@inheritdoc} */ public function getErrorHandler(): ?callable { return $this->errorHandler; } } __halt_compiler();----SIGNATURE:----jlKxgNEq1zyAdGVL/W2I6yEPnr1Yhq/le+9iyMR76etkZCijmdWyOP5yKPXioe1YG3HXox8z8QmZEOuVCy40nPW1uCQRZ2OOW09MPYiPthCDtBk+CjIrFYOWe5IxQLMNGtMoCW9tuHxOhP+va80cMB/44SmQR/7XwbJeN36SFZ/oLTbpVVMWMsZoGG4O1L2TfHpQwHv6jCnxo50gbgaml8/NjWGWrrDyW8wlVraLYXasC5F0Lz5ZVODTRCbezZTH9F66FGzLUDjZvohCCdlBbOOnAmFt0N570fB0V5o2GKHpdaxBivukmKJZXwFlAbNx8/FonS4us5L4Ba0P1RhTBJ4YMxB/tvYrEq76lQPnmuXeM2XduqLTT8ff43JtpgZ5+9gLw415xYbHpY/eAjjQRu6a3psveTjqrpx8yzHSZ8K6nzXZxqxcAdNKjues5J69kzLptKVCIWsPQVmKWuy/ETOY+b5LCPQ9lVnWHtx+vZ7F4yqqFD6fXsazEvj70CFNiO63GLC6ntOa0Pf5rNuL2QTdwmAArcudaKXxrBp27WSG9vd3DzObo05ShtWHOILamS7cYYXlU/GVe2iS1/RXlOebLWpwwlZwNskHAoo0HJFLmG8QyzfrfzKj+PPheFPQDOaCnfvAVbatfuew6gVPLENHMkwm42Py8AOfO++epIc=----ATTACHMENT:----MTY4NzQ5NTgyMzg1NTUyOSA4NjUxMjEyNDAzMTAyMTc0IDQ5NDcwNTAxMjI4NjgzMjM=