1
0
mirror of https://github.com/danog/MadelineProto.git synced 2024-12-04 05:07:45 +01:00
MadelineProto/src/loop.php

77 lines
2.3 KiB
PHP

<?php
declare(strict_types=1);
namespace danog\Loop\Generic {
if (\defined('MADELINE_POLYFILLED_LOOP')) {
return;
}
\define('MADELINE_POLYFILLED_LOOP', true);
use danog\Loop\GenericLoop as LoopGenericLoop;
use danog\Loop\PeriodicLoop as LoopPeriodicLoop;
use danog\MadelineProto\Tools;
use Generator;
/**
* @deprecated Please use danog\Loop\PeriodicLoop instead
*/
class PeriodicLoop extends LoopPeriodicLoop
{
public function __construct(callable $callback, string $name, ?int $interval)
{
if ($callback instanceof \Closure) {
try {
$callback = $callback->bindTo($this);
} catch (\Throwable) {
// Might cause an error for wrapped object methods
}
}
/** @psalm-suppress InvalidArgument */
parent::__construct(
function ($_) use ($callback) {
$result = $callback();
if ($result instanceof Generator) {
$result = Tools::consumeGenerator($result);
}
return $result;
},
$name,
$interval ? $interval/1000 : null
);
}
}
/**
* @deprecated Please use danog\Loop\GenericLoop instead
*/
class GenericLoop extends LoopGenericLoop
{
public function __construct(callable $callback, string $name)
{
if ($callback instanceof \Closure) {
try {
$callback = $callback->bindTo($this);
} catch (\Throwable) {
// Might cause an error for wrapped object methods
}
}
/** @psalm-suppress InvalidArgument */
parent::__construct(
function ($_) use ($callback) {
$result = $callback();
if ($result instanceof Generator) {
$result = Tools::consumeGenerator($result);
}
if (\is_int($result) || \is_float($result)) {
$result /= 1000;
}
return $result;
},
$name
);
}
}
}