aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/client_config/subchannel.h
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2015-11-18 11:41:30 -0800
committerGravatar yang-g <yangg@google.com>2015-11-18 11:41:30 -0800
commit71b962634eceacae336b1c706829e4ad9621b397 (patch)
tree35378c669bf04c24097a403af65a5adb8c82e812 /src/core/client_config/subchannel.h
parent42630b010f398ca072a0ba89648855c3052c6594 (diff)
parent75b53d6a5d891fa33a9173318b1446faeaf154e4 (diff)
merge with head
Diffstat (limited to 'src/core/client_config/subchannel.h')
-rw-r--r--src/core/client_config/subchannel.h34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/core/client_config/subchannel.h b/src/core/client_config/subchannel.h
index ec1cc7cc69..1fefa1888a 100644
--- a/src/core/client_config/subchannel.h
+++ b/src/core/client_config/subchannel.h
@@ -44,7 +44,7 @@ typedef struct grpc_subchannel grpc_subchannel;
typedef struct grpc_subchannel_call grpc_subchannel_call;
typedef struct grpc_subchannel_args grpc_subchannel_args;
-#ifdef GRPC_SUBCHANNEL_REFCOUNT_DEBUG
+#ifdef GRPC_STREAM_REFCOUNT_DEBUG
#define GRPC_SUBCHANNEL_REF(p, r) \
grpc_subchannel_ref((p), __FILE__, __LINE__, (r))
#define GRPC_SUBCHANNEL_UNREF(cl, p, r) \
@@ -75,27 +75,22 @@ void grpc_subchannel_call_unref(grpc_exec_ctx *exec_ctx,
grpc_subchannel_call *call
GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
-typedef enum {
- GRPC_SUBCHANNEL_CALL_CREATE_READY,
- GRPC_SUBCHANNEL_CALL_CREATE_PENDING
-} grpc_subchannel_call_create_status;
-
/** construct a subchannel call (possibly asynchronously).
*
- * If the returned status is \a GRPC_SUBCHANNEL_CALL_CREATE_READY, the call will
- * return immediately and \a target will point to a connected \a subchannel_call
- * instance. Note that \a notify will \em not be invoked in this case.
- * Otherwise, if the returned status is GRPC_SUBCHANNEL_CALL_CREATE_PENDING, the
- * subchannel call will be created asynchronously, invoking the \a notify
- * callback upon completion. */
-grpc_subchannel_call_create_status grpc_subchannel_create_call(
- grpc_exec_ctx *exec_ctx, grpc_subchannel *subchannel, grpc_pollset *pollset,
- grpc_subchannel_call **target, grpc_closure *notify);
+ * If the returned status is 1, the call will return immediately and \a target
+ * will point to a connected \a subchannel_call instance. Note that \a notify
+ * will \em not be invoked in this case.
+ * Otherwise, if the returned status is 0, the subchannel call will be created
+ * asynchronously, invoking the \a notify callback upon completion. */
+int grpc_subchannel_create_call(grpc_exec_ctx *exec_ctx,
+ grpc_subchannel *subchannel,
+ grpc_pollset *pollset, gpr_atm *target,
+ grpc_closure *notify);
/** cancel \a call in the waiting state. */
-void grpc_subchannel_cancel_waiting_call(grpc_exec_ctx *exec_ctx,
- grpc_subchannel *subchannel,
- int iomgr_success);
+void grpc_subchannel_cancel_create_call(grpc_exec_ctx *exec_ctx,
+ grpc_subchannel *subchannel,
+ gpr_atm *target);
/** process a transport level op */
void grpc_subchannel_process_transport_op(grpc_exec_ctx *exec_ctx,
@@ -138,6 +133,9 @@ void grpc_subchannel_call_process_op(grpc_exec_ctx *exec_ctx,
char *grpc_subchannel_call_get_peer(grpc_exec_ctx *exec_ctx,
grpc_subchannel_call *subchannel_call);
+grpc_call_stack *grpc_subchannel_call_get_call_stack(
+ grpc_subchannel_call *subchannel_call);
+
struct grpc_subchannel_args {
/** Channel filters for this channel - wrapped factories will likely
want to mutate this */