grpcpp.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. // IWYU pragma: end_exports
  59. namespace grpc {
  60. /// Return gRPC library version.
  61. std::string Version();
  62. } // namespace grpc
  63. #endif // GRPCPP_GRPCPP_H