6032e028d42b55117661b3c6c42410965812231c
[m6w6/seekat] / lib / API / Future.php
1 <?php
2
3 namespace seekat\API;
4
5 interface Future
6 {
7 /**
8 * @param callable $onCancel
9 * @return mixed Promisor providing a promise() method
10 */
11 function createContext(callable $onCancel = null);
12
13 /**
14 * @param object $context Promisor
15 * @return mixed promise
16 */
17 function getPromise($context);
18
19 /**
20 * @param mixed $promise
21 * @return bool
22 */
23 function isPromise($promise) : bool;
24
25 /**
26 * @param mixed $promise
27 * @return bool
28 */
29 function cancelPromise($promise) : bool;
30
31 /**
32 * @param mixed $promise
33 * @param callable|null $onResult
34 * @param callable|null $onError
35 * @return mixed promise
36 */
37 function handlePromise($promise, callable $onResult = null, callable $onError = null);
38
39 /**
40 * @param object $context Promisor returned by createContext
41 * @param mixed $value
42 * @return void
43 */
44 function resolve($context, $value);
45
46 /**
47 * @param object $context Promisor returned by createContext
48 * @param mixed $reason
49 * @return void
50 */
51 function reject($context, $reason);
52
53 /**
54 * @param object $context Promisor returned by createContext
55 * @param array $promises
56 * @return mixed promise
57 */
58 function all($context, array $promises);
59 }