flush
[m6w6/seekat] / lib / API / Future.php
1 <?php
2
3 namespace seekat\API;
4
5 use AsyncInterop\Promise;
6
7 interface Future
8 {
9 /**
10 * @param callable $onCancel
11 * @return mixed Promisor providing a promise() method
12 */
13 function createContext(callable $onCancel = null);
14
15 /**
16 * @param object $context Promisor
17 * @return Promise
18 */
19 function getPromise($context) : Promise;
20
21 /**
22 * @param Promise $promise
23 * @return bool
24 */
25 function cancelPromise(Promise $promise) : bool;
26
27 /**
28 * @param object $context Promisor returned by createContext
29 * @param mixed $value
30 * @return void
31 */
32 function onSuccess($context, $value);
33
34 /**
35 * @param object $context Proisor returned by createContext
36 * @param mixed $reason
37 * @return void
38 */
39 function onFailure($context, $reason);
40
41 /**
42 * @param object $context Promisor returned by createContext
43 * @param array $promises
44 * @return Promise
45 */
46 function onMultiple($context, array $promises) : Promise;
47 }