GRPC Core
9.0.0
src
core
lib
iomgr
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
32
#include <
grpc/support/port_platform.h
>
33
34
#include "
src/core/lib/iomgr/port.h
"
35
36
#include "
src/core/lib/debug/trace.h
"
37
#include "
src/core/lib/iomgr/buffer_list.h
"
38
#include "
src/core/lib/iomgr/endpoint.h
"
39
#include "
src/core/lib/iomgr/ev_posix.h
"
40
41
extern
grpc_core::TraceFlag
grpc_tcp_trace
;
42
43
/* Create a tcp endpoint given a file desciptor and a read slice size.
44
Takes ownership of fd. */
45
grpc_endpoint
*
grpc_tcp_create
(
grpc_fd
* fd,
const
grpc_channel_args
* args,
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
*/
52
int
grpc_tcp_fd
(
grpc_endpoint
* ep);
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. */
57
void
grpc_tcp_destroy_and_release_fd
(
grpc_endpoint
* ep,
int
* fd,
58
grpc_closure
* done);
59
60
#endif
/* GRPC_CORE_LIB_IOMGR_TCP_POSIX_H */
grpc_tcp_fd
int grpc_tcp_fd(grpc_endpoint *ep)
port.h
grpc_tcp_destroy_and_release_fd
void grpc_tcp_destroy_and_release_fd(grpc_endpoint *ep, int *fd, grpc_closure *done)
buffer_list.h
trace.h
grpc_channel_args
An array of arguments that can be passed around.
Definition:
grpc_types.h:132
grpc_core::TraceFlag
Definition:
trace.h:61
ev_posix.h
grpc_fd
struct grpc_fd grpc_fd
Definition:
ev_posix.h:44
grpc_tcp_create
grpc_endpoint * grpc_tcp_create(grpc_fd *fd, const grpc_channel_args *args, const char *peer_string)
endpoint.h
grpc_tcp_trace
grpc_core::TraceFlag grpc_tcp_trace
grpc_closure
A closure over a grpc_iomgr_cb_func.
Definition:
closure.h:56
grpc_endpoint
Definition:
endpoint.h:102
port_platform.h
Generated on Wed Sep 13 2023 00:00:00 for GRPC Core by
1.8.20