grpc_posix.h 2.3 KB

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