update to PHP-8.1
[m6w6/seekat] / lib / API / Future.php
index 2b53ea1cf847c827be0838eb5320f54557f1694f..1ef0b1d38ae1323a4165c1d2f5409f1442863645 100644 (file)
@@ -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;
 }