|
|
@ -49,6 +49,17 @@ |
|
|
|
#include <stdlib.h> |
|
|
|
#include <stdlib.h> |
|
|
|
#include <string.h> |
|
|
|
#include <string.h> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** The maximum number of completions possible.
|
|
|
|
|
|
|
|
Based upon the maximum number of individually queueable ops in the batch |
|
|
|
|
|
|
|
api: |
|
|
|
|
|
|
|
- initial metadata send |
|
|
|
|
|
|
|
- message send |
|
|
|
|
|
|
|
- status/close send (depending on client/server) |
|
|
|
|
|
|
|
- initial metadata recv |
|
|
|
|
|
|
|
- message recv |
|
|
|
|
|
|
|
- status/close recv (depending on client/server) */ |
|
|
|
|
|
|
|
#define MAX_CONCURRENT_COMPLETIONS 6 |
|
|
|
|
|
|
|
|
|
|
|
typedef enum { REQ_INITIAL = 0, REQ_READY, REQ_DONE } req_state; |
|
|
|
typedef enum { REQ_INITIAL = 0, REQ_READY, REQ_DONE } req_state; |
|
|
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
typedef enum { |
|
|
@ -255,7 +266,7 @@ struct grpc_call { |
|
|
|
grpc_iomgr_closure on_done_bind; |
|
|
|
grpc_iomgr_closure on_done_bind; |
|
|
|
|
|
|
|
|
|
|
|
/** completion events - for completion queue use */ |
|
|
|
/** completion events - for completion queue use */ |
|
|
|
grpc_cq_completion completions[6]; |
|
|
|
grpc_cq_completion completions[MAX_CONCURRENT_COMPLETIONS]; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
#define CALL_STACK_FROM_CALL(call) ((grpc_call_stack *)((call) + 1)) |
|
|
|
#define CALL_STACK_FROM_CALL(call) ((grpc_call_stack *)((call) + 1)) |
|
|
|