GRPC C++  1.26.0
socket_mutator.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_SOCKET_MUTATOR_H
20 #define GRPC_CORE_LIB_IOMGR_SOCKET_MUTATOR_H
21 
23 
25 #include <grpc/support/sync.h>
26 
27 #include <stdbool.h>
28 
30 typedef struct {
32  bool (*mutate_fd)(int fd, grpc_socket_mutator* mutator);
34  int (*compare)(grpc_socket_mutator* a, grpc_socket_mutator* b);
36  void (*destroy)(grpc_socket_mutator* mutator);
38 
43 };
44 
47  const grpc_socket_mutator_vtable* vtable);
48 
51 
54 
57 
60 
61 #endif /* GRPC_CORE_LIB_IOMGR_SOCKET_MUTATOR_H */
void grpc_socket_mutator_unref(grpc_socket_mutator *mutator)
grpc_socket_mutator * grpc_socket_mutator_ref(grpc_socket_mutator *mutator)
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator *mutator, int fd)
Perform the file descriptor mutation operation of mutator on fd.
void grpc_socket_mutator_init(grpc_socket_mutator *mutator, const grpc_socket_mutator_vtable *vtable)
called by concrete implementations to initialize the base struct
grpc_arg grpc_socket_mutator_to_arg(grpc_socket_mutator *mutator)
Wrap mutator as a grpc_arg.
int grpc_socket_mutator_compare(grpc_socket_mutator *a, grpc_socket_mutator *b)
Compare if a and b are the same mutator or have same settings.
Definition: sync_generic.h:36
A single argument...
Definition: grpc_types.h:103
The virtual table of grpc_socket_mutator.
Definition: socket_mutator.h:30
The Socket Mutator interface allows changes on socket options.
Definition: socket_mutator.h:40
gpr_refcount refcount
Definition: socket_mutator.h:42
const grpc_socket_mutator_vtable * vtable
Definition: socket_mutator.h:41