第一版讨论稿。

This commit is contained in:
zhengchao
2018-08-01 17:47:38 +08:00
commit 900dc5c7ba
3 changed files with 238 additions and 0 deletions

37
interface/future.cpp Normal file
View File

@@ -0,0 +1,37 @@
enum e_future_error
{
FUTURE_ERROR_CANCEL
FUTURE_ERROR_EXCEPTION,
FUTURE_ERROR_TIMEOUT
}
typedef void (*future_cb_success_t)(void * result, void * user);
typedef void (*future_cb_failed_t)(enum e_future_error err, const char * what, void * user);
struct future
{
void * user;
future_cb_success_t * cb_success;
future_cb_failed_t * cb_failed;
};
struct promise
{
struct future f;
void * ctx;
}
typedef void * promise_t;
void future_cancel(struct future * future)
{
future->cancel();
}
void promise_success(struct promisc *, void * result);
void promise_fail();
struct future * XXXXXRpc()
{
cancel = ___XXXXCancel()
};