19 #ifndef GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H 20 #define GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H 26 #ifdef GRPC_WINSOCK_SOCKET 35 #ifndef WSA_FLAG_NO_HANDLE_INHERIT 36 #define WSA_FLAG_NO_HANDLE_INHERIT 0x80 42 typedef struct grpc_winsocket_callback_info {
48 OVERLAPPED overlapped;
62 DWORD bytes_transferred;
64 } grpc_winsocket_callback_info;
75 typedef struct grpc_winsocket {
79 grpc_winsocket_callback_info write_info;
80 grpc_winsocket_callback_info read_info;
97 grpc_winsocket* grpc_winsocket_create(SOCKET socket,
const char* name);
99 SOCKET grpc_winsocket_wrapped_socket(grpc_winsocket* socket);
103 void grpc_winsocket_shutdown(grpc_winsocket* socket);
106 void grpc_winsocket_destroy(grpc_winsocket* socket);
108 void grpc_socket_notify_on_write(grpc_winsocket* winsocket,
111 void grpc_socket_notify_on_read(grpc_winsocket* winsocket,
114 void grpc_socket_become_ready(grpc_winsocket* winsocket,
115 grpc_winsocket_callback_info* ci);
121 void grpc_wsa_socket_flags_init();
123 DWORD grpc_get_default_wsa_socket_flags();
int grpc_ipv6_loopback_available(void)
Definition: iomgr_internal.h:28
Definition: sync_windows.h:26
A closure over a grpc_iomgr_cb_func.
Definition: closure.h:56