grpcpp.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. /// \mainpage gRPC C++ API
  19. ///
  20. /// The gRPC C++ API mainly consists of the following classes:
  21. /// <br>
  22. /// - grpc::Channel, which represents the connection to an endpoint. See [the
  23. /// gRPC Concepts page](https://grpc.io/docs/what-is-grpc/core-concepts) for
  24. /// more details. Channels are created by the factory function
  25. /// grpc::CreateChannel.
  26. ///
  27. /// - grpc::CompletionQueue, the producer-consumer queue used for all
  28. /// asynchronous communication with the gRPC runtime.
  29. ///
  30. /// - grpc::ClientContext and grpc::ServerContext, where optional configuration
  31. /// for an RPC can be set, such as setting custom metadata to be conveyed to the
  32. /// peer, compression settings, authentication, etc.
  33. ///
  34. /// - grpc::Server, representing a gRPC server, created by grpc::ServerBuilder.
  35. ///
  36. /// Streaming calls are handled with the streaming classes in
  37. /// \ref sync_stream.h and
  38. /// \ref async_stream.h.
  39. ///
  40. /// Refer to the
  41. /// [examples](https://github.com/grpc/grpc/blob/master/examples/cpp)
  42. /// for code putting these pieces into play.
  43. #ifndef GRPCPP_GRPCPP_H
  44. #define GRPCPP_GRPCPP_H
  45. // Pragma for http://include-what-you-use.org/ tool, tells that following
  46. // headers are not private for grpcpp.h and are part of its interface.
  47. // IWYU pragma: begin_exports
  48. #include <grpc/grpc.h>
  49. #include <grpcpp/channel.h>
  50. #include <grpcpp/client_context.h>
  51. #include <grpcpp/completion_queue.h>
  52. #include <grpcpp/create_channel.h>
  53. #include <grpcpp/create_channel_posix.h>
  54. #include <grpcpp/server.h>
  55. #include <grpcpp/server_builder.h>
  56. #include <grpcpp/server_context.h>
  57. #include <grpcpp/server_posix.h>
  58. #include <grpcpp/version_info.h>
  59. // IWYU pragma: end_exports
  60. namespace grpc {
  61. /// Return gRPC library version.
  62. TString Version();
  63. } // namespace grpc
  64. #endif // GRPCPP_GRPCPP_H