From 38a3da4889cf9e37eba6425069c2473f0521adc5 Mon Sep 17 00:00:00 2001 From: Aaron Piotrowski Date: Sat, 14 May 2016 17:13:35 -0500 Subject: [PATCH] Add $data parameter to watchers --- src/Loop.php | 30 ++++++++++++++++++------------ src/LoopDriver.php | 18 ++++++++++++------ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/Loop.php b/src/Loop.php index ac8ae49..16f6c83 100644 --- a/src/Loop.php +++ b/src/Loop.php @@ -60,12 +60,13 @@ final class Loop * Defer the execution of a callback. * * @param callable $callback The callback to defer. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function defer(callable $callback) + public static function defer(callable $callback, $data = null) { - return self::get()->defer($callback); + return self::get()->defer($callback, $data); } /** @@ -73,12 +74,13 @@ final class Loop * * @param callable $callback The callback to delay. * @param int $time The amount of time, in milliseconds, to delay the execution for. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function delay(callable $callback, $time) + public static function delay(callable $callback, $time, $data = null) { - return self::get()->delay($callback, $time); + return self::get()->delay($callback, $time, $data); } /** @@ -86,12 +88,13 @@ final class Loop * * @param callable $callback The callback to repeat. * @param int $interval The time interval, in milliseconds, to wait between executions. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function repeat(callable $callback, $interval) + public static function repeat(callable $callback, $interval, $data = null) { - return self::get()->repeat($callback, $interval); + return self::get()->repeat($callback, $interval, $data); } /** @@ -99,12 +102,13 @@ final class Loop * * @param resource $stream The stream to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function onReadable($stream, callable $callback) + public static function onReadable($stream, callable $callback, $data = null) { - return self::get()->onReadable($stream, $callback); + return self::get()->onReadable($stream, $callback, $data); } /** @@ -112,12 +116,13 @@ final class Loop * * @param resource $stream The stream to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function onWritable($stream, callable $callback) + public static function onWritable($stream, callable $callback, $data = null) { - return self::get()->onWritable($stream, $callback); + return self::get()->onWritable($stream, $callback, $data); } /** @@ -125,12 +130,13 @@ final class Loop * * @param int $signo The signal number to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public static function onSignal($signo, callable $callback) + public static function onSignal($signo, callable $callback, $data = null) { - return self::get()->onSignal($signo, $callback); + return self::get()->onSignal($signo, $callback, $data); } /** diff --git a/src/LoopDriver.php b/src/LoopDriver.php index 0ab913a..3e94763 100644 --- a/src/LoopDriver.php +++ b/src/LoopDriver.php @@ -24,60 +24,66 @@ interface LoopDriver * Defer the execution of a callback. * * @param callable $callback The callback to defer. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function defer(callable $callback); + public function defer(callable $callback, $data = null); /** * Delay the execution of a callback. The time delay is approximate and accuracy is not guaranteed. * * @param callable $callback The callback to delay. * @param int $delay The amount of time, in milliseconds, to delay the execution for. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function delay(callable $callback, $delay); + public function delay(callable $callback, $delay, $data = null); /** * Repeatedly execute a callback. The interval between executions is approximate and accuracy is not guaranteed. * * @param callable $callback The callback to repeat. * @param int $interval The time interval, in milliseconds, to wait between executions. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function repeat(callable $callback, $interval); + public function repeat(callable $callback, $interval, $data = null); /** * Execute a callback when a stream resource becomes readable. * * @param resource $stream The stream to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function onReadable($stream, callable $callback); + public function onReadable($stream, callable $callback, $data = null); /** * Execute a callback when a stream resource becomes writable. * * @param resource $stream The stream to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function onWritable($stream, callable $callback); + public function onWritable($stream, callable $callback, $data = null); /** * Execute a callback when a signal is received. * * @param int $signo The signal number to monitor. * @param callable $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. * * @return string An identifier that can be used to cancel, enable or disable the event. */ - public function onSignal($signo, callable $callback); + public function onSignal($signo, callable $callback, $data = null); /** * Execute a callback when an error occurs.