X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fseekat;a=blobdiff_plain;f=lib%2FAPI%2FFuture.php;h=1ef0b1d38ae1323a4165c1d2f5409f1442863645;hp=2b53ea1cf847c827be0838eb5320f54557f1694f;hb=654d736df2c46ec2520f73e9089d06a44f2b9c50;hpb=e368287b3cd2dd40945ac8d1a1946bc32268007d diff --git a/lib/API/Future.php b/lib/API/Future.php index 2b53ea1..1ef0b1d 100644 --- a/lib/API/Future.php +++ b/lib/API/Future.php @@ -2,46 +2,55 @@ namespace seekat\API; -use AsyncInterop\Promise; - -interface Future -{ +interface Future { /** * @param callable $onCancel - * @return mixed Promisor providing a promise() method + * @return object Promisor providing a promise() method + */ + function createContext(callable $onCancel = null) : object; + + /** + * @return object promise */ - function createContext(callable $onCancel = null); + function getPromise(object $context) : object; + + function isPromise(object $promise) : bool; + + function cancelPromise(object $promise) : void; /** - * @param object $context Promisor - * @return Promise + * @return object promise */ - function getPromise($context) : Promise; + function handlePromise(object $promise, callable $onResult = null, callable $onError = null) : object; /** - * @param Promise $promise - * @return bool + * Create an immediately resolved promise */ - function cancelPromise(Promise $promise) : bool; + function resolve(mixed $value) : object; /** * @param object $context Promisor returned by createContext - * @param mixed $value - * @return void */ - function onSuccess($context, $value); + function resolver(object $context) : \Closure; /** - * @param object $context Proisor returned by createContext - * @param mixed $reason - * @return void + * Create an immediately rejected promise */ - function onFailure($context, $reason); + function reject(mixed $reason) : object; /** * @param object $context Promisor returned by createContext + */ + function rejecter(object $context) : \Closure; + + /** * @param array $promises - * @return Promise + * @return object promise + */ + function all(array $promises) : object; + + /** + * */ - function onMultiple($context, array $promises) : Promise; + function reducer() : \Closure; }