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/grpc.h> 23 #include <grpc/impl/grpc_types.h> 24 #include <grpc/support/port_platform.h> 25 #include <stddef.h> 26 27 #ifdef __cplusplus 28 extern "C" { 29 #endif 30 31 /*! \mainpage GRPC Core POSIX 32 * 33 * The GRPC Core POSIX library provides some POSIX-specific low-level 34 * functionality on top of GRPC Core. 35 */ 36 37 /** Create a secure channel to 'target' using file descriptor 'fd' and passed-in 38 credentials. The 'target' argument will be used to indicate the name for 39 this channel. Note that this API currently only supports insecure channel 40 credentials. Using other types of credentials will result in a failure. */ 41 GRPCAPI grpc_channel* grpc_channel_create_from_fd( 42 const char* target, int fd, grpc_channel_credentials* creds, 43 const grpc_channel_args* args); 44 45 /** Add the connected secure communication channel based on file descriptor 'fd' 46 to the 'server' and server credentials 'creds'. The 'fd' must be an open file 47 descriptor corresponding to a connected socket. Events from the file 48 descriptor may come on any of the server completion queues (i.e completion 49 queues registered via the grpc_server_register_completion_queue API). 50 Note that this API currently only supports inseure server credentials 51 Using other types of credentials will result in a failure. 52 TODO(hork): add channel_args to this API to allow endpoints and transports 53 created in this function to participate in the resource quota feature. */ 54 GRPCAPI void grpc_server_add_channel_from_fd(grpc_server* server, int fd, 55 grpc_server_credentials* creds); 56 57 #ifdef __cplusplus 58 } 59 #endif 60 61 #endif /* GRPC_GRPC_POSIX_H */ 62