EventInterface.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * This file is part of workerman.
  4. *
  5. * Licensed under The MIT License
  6. * For full copyright and license information, please see the MIT-LICENSE.txt
  7. * Redistributions of files must retain the above copyright notice.
  8. *
  9. * @author walkor<walkor@workerman.net>
  10. * @copyright walkor<walkor@workerman.net>
  11. * @link http://www.workerman.net/
  12. * @license http://www.opensource.org/licenses/mit-license.php MIT License
  13. */
  14. namespace Workerman\Events;
  15. use Throwable;
  16. interface EventInterface
  17. {
  18. /**
  19. * Delay the execution of a callback.
  20. * @param float $delay
  21. * @param callable $func
  22. * @param array $args
  23. * @return int
  24. */
  25. public function delay(float $delay, callable $func, array $args = []): int;
  26. /**
  27. * Delete a delay timer.
  28. * @param int $timerId
  29. * @return bool
  30. */
  31. public function offDelay(int $timerId): bool;
  32. /**
  33. * Repeatedly execute a callback.
  34. * @param float $interval
  35. * @param callable $func
  36. * @param array $args
  37. * @return int
  38. */
  39. public function repeat(float $interval, callable $func, array $args = []): int;
  40. /**
  41. * Delete a repeat timer.
  42. * @param int $timerId
  43. * @return bool
  44. */
  45. public function offRepeat(int $timerId): bool;
  46. /**
  47. * Execute a callback when a stream resource becomes readable or is closed for reading.
  48. * @param resource $stream
  49. * @param callable $func
  50. * @return void
  51. */
  52. public function onReadable($stream, callable $func): void;
  53. /**
  54. * Cancel a callback of stream readable.
  55. * @param resource $stream
  56. * @return bool
  57. */
  58. public function offReadable($stream): bool;
  59. /**
  60. * Execute a callback when a stream resource becomes writable or is closed for writing.
  61. * @param resource $stream
  62. * @param callable $func
  63. * @return void
  64. */
  65. public function onWritable($stream, callable $func): void;
  66. /**
  67. * Cancel a callback of stream writable.
  68. * @param resource $stream
  69. * @return bool
  70. */
  71. public function offWritable($stream): bool;
  72. /**
  73. * Execute a callback when a signal is received.
  74. * @param int $signal
  75. * @param callable $func
  76. * @return void
  77. * @throws Throwable
  78. */
  79. public function onSignal(int $signal, callable $func): void;
  80. /**
  81. * Cancel a callback of signal.
  82. * @param int $signal
  83. * @return bool
  84. */
  85. public function offSignal(int $signal): bool;
  86. /**
  87. * Delete all timer.
  88. * @return void
  89. */
  90. public function deleteAllTimer(): void;
  91. /**
  92. * Run the event loop.
  93. * @return void
  94. * @throws Throwable
  95. */
  96. public function run(): void;
  97. /**
  98. * Stop event loop.
  99. * @return void
  100. */
  101. public function stop(): void;
  102. /**
  103. * Get Timer count.
  104. * @return int
  105. */
  106. public function getTimerCount(): int;
  107. /**
  108. * Set error handler
  109. * @param callable $errorHandler
  110. * @return void
  111. */
  112. public function setErrorHandler(callable $errorHandler): void;
  113. /**
  114. * Get error handler
  115. * @return ?callable(Throwable)
  116. */
  117. public function getErrorHandler(): ?callable;
  118. }