helloworld.grpc.swift 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. //
  2. // DO NOT EDIT.
  3. // swift-format-ignore-file
  4. //
  5. // Generated by the protocol buffer compiler.
  6. // Source: helloworld.proto
  7. //
  8. import GRPC
  9. import NIO
  10. import NIOConcurrencyHelpers
  11. import SwiftProtobuf
  12. /// The greeting service definition.
  13. ///
  14. /// Usage: instantiate `Helloworld_GreeterClient`, then call methods of this protocol to make API calls.
  15. public protocol Helloworld_GreeterClientProtocol: GRPCClient {
  16. var serviceName: String { get }
  17. var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? { get }
  18. func sayHello(
  19. _ request: Helloworld_HelloRequest,
  20. callOptions: CallOptions?
  21. ) -> UnaryCall<Helloworld_HelloRequest, Helloworld_HelloReply>
  22. }
  23. extension Helloworld_GreeterClientProtocol {
  24. public var serviceName: String {
  25. return "helloworld.Greeter"
  26. }
  27. /// Sends a greeting
  28. ///
  29. /// - Parameters:
  30. /// - request: Request to send to SayHello.
  31. /// - callOptions: Call options.
  32. /// - Returns: A `UnaryCall` with futures for the metadata, status and response.
  33. public func sayHello(
  34. _ request: Helloworld_HelloRequest,
  35. callOptions: CallOptions? = nil
  36. ) -> UnaryCall<Helloworld_HelloRequest, Helloworld_HelloReply> {
  37. return self.makeUnaryCall(
  38. path: Helloworld_GreeterClientMetadata.Methods.sayHello.path,
  39. request: request,
  40. callOptions: callOptions ?? self.defaultCallOptions,
  41. interceptors: self.interceptors?.makeSayHelloInterceptors() ?? []
  42. )
  43. }
  44. }
  45. @available(*, deprecated)
  46. extension Helloworld_GreeterClient: @unchecked Sendable {}
  47. @available(*, deprecated, renamed: "Helloworld_GreeterNIOClient")
  48. public final class Helloworld_GreeterClient: Helloworld_GreeterClientProtocol {
  49. private let lock = Lock()
  50. private var _defaultCallOptions: CallOptions
  51. private var _interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol?
  52. public let channel: GRPCChannel
  53. public var defaultCallOptions: CallOptions {
  54. get { self.lock.withLock { return self._defaultCallOptions } }
  55. set { self.lock.withLockVoid { self._defaultCallOptions = newValue } }
  56. }
  57. public var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? {
  58. get { self.lock.withLock { return self._interceptors } }
  59. set { self.lock.withLockVoid { self._interceptors = newValue } }
  60. }
  61. /// Creates a client for the helloworld.Greeter service.
  62. ///
  63. /// - Parameters:
  64. /// - channel: `GRPCChannel` to the service host.
  65. /// - defaultCallOptions: Options to use for each service call if the user doesn't provide them.
  66. /// - interceptors: A factory providing interceptors for each RPC.
  67. public init(
  68. channel: GRPCChannel,
  69. defaultCallOptions: CallOptions = CallOptions(),
  70. interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? = nil
  71. ) {
  72. self.channel = channel
  73. self._defaultCallOptions = defaultCallOptions
  74. self._interceptors = interceptors
  75. }
  76. }
  77. public struct Helloworld_GreeterNIOClient: Helloworld_GreeterClientProtocol {
  78. public var channel: GRPCChannel
  79. public var defaultCallOptions: CallOptions
  80. public var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol?
  81. /// Creates a client for the helloworld.Greeter service.
  82. ///
  83. /// - Parameters:
  84. /// - channel: `GRPCChannel` to the service host.
  85. /// - defaultCallOptions: Options to use for each service call if the user doesn't provide them.
  86. /// - interceptors: A factory providing interceptors for each RPC.
  87. public init(
  88. channel: GRPCChannel,
  89. defaultCallOptions: CallOptions = CallOptions(),
  90. interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? = nil
  91. ) {
  92. self.channel = channel
  93. self.defaultCallOptions = defaultCallOptions
  94. self.interceptors = interceptors
  95. }
  96. }
  97. /// The greeting service definition.
  98. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  99. public protocol Helloworld_GreeterAsyncClientProtocol: GRPCClient {
  100. static var serviceDescriptor: GRPCServiceDescriptor { get }
  101. var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? { get }
  102. func makeSayHelloCall(
  103. _ request: Helloworld_HelloRequest,
  104. callOptions: CallOptions?
  105. ) -> GRPCAsyncUnaryCall<Helloworld_HelloRequest, Helloworld_HelloReply>
  106. }
  107. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  108. extension Helloworld_GreeterAsyncClientProtocol {
  109. public static var serviceDescriptor: GRPCServiceDescriptor {
  110. return Helloworld_GreeterClientMetadata.serviceDescriptor
  111. }
  112. public var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? {
  113. return nil
  114. }
  115. public func makeSayHelloCall(
  116. _ request: Helloworld_HelloRequest,
  117. callOptions: CallOptions? = nil
  118. ) -> GRPCAsyncUnaryCall<Helloworld_HelloRequest, Helloworld_HelloReply> {
  119. return self.makeAsyncUnaryCall(
  120. path: Helloworld_GreeterClientMetadata.Methods.sayHello.path,
  121. request: request,
  122. callOptions: callOptions ?? self.defaultCallOptions,
  123. interceptors: self.interceptors?.makeSayHelloInterceptors() ?? []
  124. )
  125. }
  126. }
  127. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  128. extension Helloworld_GreeterAsyncClientProtocol {
  129. public func sayHello(
  130. _ request: Helloworld_HelloRequest,
  131. callOptions: CallOptions? = nil
  132. ) async throws -> Helloworld_HelloReply {
  133. return try await self.performAsyncUnaryCall(
  134. path: Helloworld_GreeterClientMetadata.Methods.sayHello.path,
  135. request: request,
  136. callOptions: callOptions ?? self.defaultCallOptions,
  137. interceptors: self.interceptors?.makeSayHelloInterceptors() ?? []
  138. )
  139. }
  140. }
  141. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  142. public struct Helloworld_GreeterAsyncClient: Helloworld_GreeterAsyncClientProtocol {
  143. public var channel: GRPCChannel
  144. public var defaultCallOptions: CallOptions
  145. public var interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol?
  146. public init(
  147. channel: GRPCChannel,
  148. defaultCallOptions: CallOptions = CallOptions(),
  149. interceptors: Helloworld_GreeterClientInterceptorFactoryProtocol? = nil
  150. ) {
  151. self.channel = channel
  152. self.defaultCallOptions = defaultCallOptions
  153. self.interceptors = interceptors
  154. }
  155. }
  156. public protocol Helloworld_GreeterClientInterceptorFactoryProtocol: Sendable {
  157. /// - Returns: Interceptors to use when invoking 'sayHello'.
  158. func makeSayHelloInterceptors() -> [ClientInterceptor<Helloworld_HelloRequest, Helloworld_HelloReply>]
  159. }
  160. public enum Helloworld_GreeterClientMetadata {
  161. public static let serviceDescriptor = GRPCServiceDescriptor(
  162. name: "Greeter",
  163. fullName: "helloworld.Greeter",
  164. methods: [
  165. Helloworld_GreeterClientMetadata.Methods.sayHello,
  166. ]
  167. )
  168. public enum Methods {
  169. public static let sayHello = GRPCMethodDescriptor(
  170. name: "SayHello",
  171. path: "/helloworld.Greeter/SayHello",
  172. type: GRPCCallType.unary
  173. )
  174. }
  175. }
  176. /// The greeting service definition.
  177. ///
  178. /// To build a server, implement a class that conforms to this protocol.
  179. public protocol Helloworld_GreeterProvider: CallHandlerProvider {
  180. var interceptors: Helloworld_GreeterServerInterceptorFactoryProtocol? { get }
  181. /// Sends a greeting
  182. func sayHello(request: Helloworld_HelloRequest, context: StatusOnlyCallContext) -> EventLoopFuture<Helloworld_HelloReply>
  183. }
  184. extension Helloworld_GreeterProvider {
  185. public var serviceName: Substring {
  186. return Helloworld_GreeterServerMetadata.serviceDescriptor.fullName[...]
  187. }
  188. /// Determines, calls and returns the appropriate request handler, depending on the request's method.
  189. /// Returns nil for methods not handled by this service.
  190. public func handle(
  191. method name: Substring,
  192. context: CallHandlerContext
  193. ) -> GRPCServerHandlerProtocol? {
  194. switch name {
  195. case "SayHello":
  196. return UnaryServerHandler(
  197. context: context,
  198. requestDeserializer: ProtobufDeserializer<Helloworld_HelloRequest>(),
  199. responseSerializer: ProtobufSerializer<Helloworld_HelloReply>(),
  200. interceptors: self.interceptors?.makeSayHelloInterceptors() ?? [],
  201. userFunction: self.sayHello(request:context:)
  202. )
  203. default:
  204. return nil
  205. }
  206. }
  207. }
  208. /// The greeting service definition.
  209. ///
  210. /// To implement a server, implement an object which conforms to this protocol.
  211. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  212. public protocol Helloworld_GreeterAsyncProvider: CallHandlerProvider, Sendable {
  213. static var serviceDescriptor: GRPCServiceDescriptor { get }
  214. var interceptors: Helloworld_GreeterServerInterceptorFactoryProtocol? { get }
  215. /// Sends a greeting
  216. func sayHello(
  217. request: Helloworld_HelloRequest,
  218. context: GRPCAsyncServerCallContext
  219. ) async throws -> Helloworld_HelloReply
  220. }
  221. @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
  222. extension Helloworld_GreeterAsyncProvider {
  223. public static var serviceDescriptor: GRPCServiceDescriptor {
  224. return Helloworld_GreeterServerMetadata.serviceDescriptor
  225. }
  226. public var serviceName: Substring {
  227. return Helloworld_GreeterServerMetadata.serviceDescriptor.fullName[...]
  228. }
  229. public var interceptors: Helloworld_GreeterServerInterceptorFactoryProtocol? {
  230. return nil
  231. }
  232. public func handle(
  233. method name: Substring,
  234. context: CallHandlerContext
  235. ) -> GRPCServerHandlerProtocol? {
  236. switch name {
  237. case "SayHello":
  238. return GRPCAsyncServerHandler(
  239. context: context,
  240. requestDeserializer: ProtobufDeserializer<Helloworld_HelloRequest>(),
  241. responseSerializer: ProtobufSerializer<Helloworld_HelloReply>(),
  242. interceptors: self.interceptors?.makeSayHelloInterceptors() ?? [],
  243. wrapping: { try await self.sayHello(request: $0, context: $1) }
  244. )
  245. default:
  246. return nil
  247. }
  248. }
  249. }
  250. public protocol Helloworld_GreeterServerInterceptorFactoryProtocol: Sendable {
  251. /// - Returns: Interceptors to use when handling 'sayHello'.
  252. /// Defaults to calling `self.makeInterceptors()`.
  253. func makeSayHelloInterceptors() -> [ServerInterceptor<Helloworld_HelloRequest, Helloworld_HelloReply>]
  254. }
  255. public enum Helloworld_GreeterServerMetadata {
  256. public static let serviceDescriptor = GRPCServiceDescriptor(
  257. name: "Greeter",
  258. fullName: "helloworld.Greeter",
  259. methods: [
  260. Helloworld_GreeterServerMetadata.Methods.sayHello,
  261. ]
  262. )
  263. public enum Methods {
  264. public static let sayHello = GRPCMethodDescriptor(
  265. name: "SayHello",
  266. path: "/helloworld.Greeter/SayHello",
  267. type: GRPCCallType.unary
  268. )
  269. }
  270. }