8c3571c6e0dc6a8bceff2ce40811943ec64cf33f
[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 object $context Promisor returned by createContext
23 * @param mixed $value
24 * @return void
25 */
26 function onSuccess($context, $value);
27
28 /**
29 * @param object $context Proisor returned by createContext
30 * @param mixed $reason
31 * @return void
32 */
33 function onFailure($context, $reason);
34
35 /**
36 * @param object $context Promisor returned by createContext
37 * @param mixed $update
38 * @return void
39 */
40 function onUpdate($context, $update);
41 }