第一版讨论稿。
This commit is contained in:
37
interface/future.cpp
Normal file
37
interface/future.cpp
Normal 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()
|
||||
};
|
||||
Reference in New Issue
Block a user