• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * Copyright 2016 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_GRPC_POSIX_H
20 #define GRPC_GRPC_POSIX_H
21 
22 #include <grpc/support/port_platform.h>
23 
24 #include <grpc/impl/codegen/grpc_types.h>
25 
26 #include <stddef.h>
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /*! \mainpage GRPC Core POSIX
33  *
34  * The GRPC Core POSIX library provides some POSIX-specific low-level
35  * functionality on top of GRPC Core.
36  */
37 
38 /** Create a client channel to 'target' using file descriptor 'fd'. The 'target'
39     argument will be used to indicate the name for this channel. See the comment
40     for grpc_insecure_channel_create for description of 'args' argument. */
41 GRPCAPI grpc_channel* grpc_insecure_channel_create_from_fd(
42     const char* target, int fd, const grpc_channel_args* args);
43 
44 /** Add the connected communication channel based on file descriptor 'fd' to the
45     'server'. The 'fd' must be an open file descriptor corresponding to a
46     connected socket. Events from the file descriptor may come on any of the
47     server completion queues (i.e completion queues registered via the
48     grpc_server_register_completion_queue API).
49 
50     The 'reserved' pointer MUST be NULL.
51     */
52 GRPCAPI void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
53                                                       void* reserved, int fd);
54 
55 /** GRPC Core POSIX library may internally use signals to optimize some work.
56    The library uses (SIGRTMIN + 6) signal by default. Use this API to instruct
57    the library to use a different signal i.e 'signum' instead.
58    Note:
59    - To prevent GRPC library from using any signals, pass a 'signum' of -1
60    - This API is optional but if called, it MUST be called before grpc_init() */
61 GRPCAPI void grpc_use_signal(int signum);
62 
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif /* GRPC_GRPC_POSIX_H */
68