1
0
mirror of https://github.com/danog/amp.git synced 2025-01-22 13:21:16 +01:00
amp/lib/Loop/Watcher.php

54 lines
1.0 KiB
PHP
Raw Normal View History

2016-05-19 11:12:35 -05:00
<?php
2017-04-18 09:38:16 -05:00
namespace Amp\Loop;
2016-05-19 11:12:35 -05:00
2017-04-13 18:05:59 +02:00
use Amp\Struct;
2020-03-28 21:55:44 +01:00
/**
* @template TValue as (int|resource|null)
2020-03-28 22:20:44 +01:00
*
* @psalm-suppress MissingConstructor
2020-03-28 21:55:44 +01:00
*/
2020-10-09 12:37:37 -05:00
final class Watcher
2018-06-18 20:00:01 +02:00
{
2017-04-13 18:05:59 +02:00
use Struct;
2020-10-09 12:37:37 -05:00
public const IO = 0b00000011;
public const READABLE = 0b00000001;
public const WRITABLE = 0b00000010;
public const DEFER = 0b00000100;
public const TIMER = 0b00011000;
public const DELAY = 0b00001000;
public const REPEAT = 0b00010000;
public const SIGNAL = 0b00100000;
2016-05-25 23:09:53 -05:00
public int $type;
2016-05-25 23:09:53 -05:00
public bool $enabled = true;
public bool $referenced = true;
public string $id;
2016-05-19 11:12:35 -05:00
2017-02-16 22:36:32 -06:00
/** @var callable */
2016-05-19 11:12:35 -05:00
public $callback;
/**
* Data provided to the watcher callback.
*
2016-05-19 11:12:35 -05:00
* @var mixed
*/
public $data;
/**
2017-04-13 18:05:59 +02:00
* Watcher-dependent value storage. Stream for IO watchers, signal number for signal watchers, interval for timers.
*
2020-03-28 21:55:44 +01:00
* @var resource|int|null
* @psalm-var TValue
2016-05-19 11:12:35 -05:00
*/
2016-05-25 23:09:53 -05:00
public $value;
/** @var int|null Timer expiration timestamp. */
public ?int $expiration = null;
2016-05-19 11:12:35 -05:00
}