|
|
@ -371,6 +371,10 @@ static void win_add_to_pollset_set(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, |
|
|
|
grpc_iocp_add_socket(tcp->socket); |
|
|
|
grpc_iocp_add_socket(tcp->socket); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void win_delete_from_pollset_set(grpc_exec_ctx *exec_ctx, |
|
|
|
|
|
|
|
grpc_endpoint *ep, |
|
|
|
|
|
|
|
grpc_pollset_set *pss) {} |
|
|
|
|
|
|
|
|
|
|
|
/* Initiates a shutdown of the TCP endpoint. This will queue abort callbacks
|
|
|
|
/* Initiates a shutdown of the TCP endpoint. This will queue abort callbacks
|
|
|
|
for the potential read and write operations. It is up to the caller to |
|
|
|
for the potential read and write operations. It is up to the caller to |
|
|
|
guarantee this isn't called in parallel to a read or write request, so |
|
|
|
guarantee this isn't called in parallel to a read or write request, so |
|
|
@ -412,10 +416,16 @@ static grpc_resource_user *win_get_resource_user(grpc_endpoint *ep) { |
|
|
|
|
|
|
|
|
|
|
|
static int win_get_fd(grpc_endpoint *ep) { return -1; } |
|
|
|
static int win_get_fd(grpc_endpoint *ep) { return -1; } |
|
|
|
|
|
|
|
|
|
|
|
static grpc_endpoint_vtable vtable = { |
|
|
|
static grpc_endpoint_vtable vtable = {win_read, |
|
|
|
win_read, win_write, win_add_to_pollset, win_add_to_pollset_set, |
|
|
|
win_write, |
|
|
|
win_shutdown, win_destroy, win_get_resource_user, win_get_peer, |
|
|
|
win_add_to_pollset, |
|
|
|
win_get_fd}; |
|
|
|
win_add_to_pollset_set, |
|
|
|
|
|
|
|
win_delete_from_pollset_set, |
|
|
|
|
|
|
|
win_shutdown, |
|
|
|
|
|
|
|
win_destroy, |
|
|
|
|
|
|
|
win_get_resource_user, |
|
|
|
|
|
|
|
win_get_peer, |
|
|
|
|
|
|
|
win_get_fd}; |
|
|
|
|
|
|
|
|
|
|
|
grpc_endpoint *grpc_tcp_create(grpc_exec_ctx *exec_ctx, grpc_winsocket *socket, |
|
|
|
grpc_endpoint *grpc_tcp_create(grpc_exec_ctx *exec_ctx, grpc_winsocket *socket, |
|
|
|
grpc_channel_args *channel_args, |
|
|
|
grpc_channel_args *channel_args, |
|
|
|