GRPC Core  18.0.0
tcp_posix.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #ifndef GRPC_CORE_LIB_IOMGR_TCP_POSIX_H
20 #define GRPC_CORE_LIB_IOMGR_TCP_POSIX_H
21 /*
22  Low level TCP "bottom half" implementation, for use by transports built on
23  top of a TCP connection.
24 
25  Note that this file does not (yet) include APIs for creating the socket in
26  the first place.
27 
28  All calls passing slice transfer ownership of a slice refcount unless
29  otherwise specified.
30 */
31 
33 
35 
40 
42 
43 /* Create a tcp endpoint given a file desciptor and a read slice size.
44  Takes ownership of fd. */
46  const char* peer_string);
47 
48 /* Return the tcp endpoint's fd, or -1 if this is not available. Does not
49  release the fd.
50  Requires: ep must be a tcp endpoint.
51  */
53 
54 /* Destroy the tcp endpoint without closing its fd. *fd will be set and done
55  * will be called when the endpoint is destroyed.
56  * Requires: ep must be a tcp endpoint and fd must not be NULL. */
58  grpc_closure* done);
59 
60 #ifdef GRPC_POSIX_SOCKET_TCP
61 
62 void grpc_tcp_posix_init();
63 
64 void grpc_tcp_posix_shutdown();
65 
66 #endif /* GRPC_POSIX_SOCKET_TCP */
67 
68 #endif /* GRPC_CORE_LIB_IOMGR_TCP_POSIX_H */
Definition: trace.h:61
struct grpc_fd grpc_fd
Definition: ev_posix.h:44
An array of arguments that can be passed around.
Definition: grpc_types.h:132
A closure over a grpc_iomgr_cb_func.
Definition: closure.h:56
Definition: endpoint.h:106
grpc_core::TraceFlag grpc_tcp_trace
void grpc_tcp_destroy_and_release_fd(grpc_endpoint *ep, int *fd, grpc_closure *done)
grpc_endpoint * grpc_tcp_create(grpc_fd *fd, const grpc_channel_args *args, const char *peer_string)
int grpc_tcp_fd(grpc_endpoint *ep)