control.grpc.swift 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. //
  2. // Copyright 2024, gRPC Authors All rights reserved.
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. // DO NOT EDIT.
  16. // swift-format-ignore-file
  17. //
  18. // Generated by the gRPC Swift generator plugin for the protocol buffer compiler.
  19. // Source: control.proto
  20. //
  21. // For information on using the generated types, please see the documentation:
  22. // https://github.com/grpc/grpc-swift
  23. import GRPCCore
  24. import GRPCProtobuf
  25. internal enum Control {
  26. internal static let descriptor = GRPCCore.ServiceDescriptor.Control
  27. internal enum Method {
  28. internal enum Unary {
  29. internal typealias Input = ControlInput
  30. internal typealias Output = ControlOutput
  31. internal static let descriptor = GRPCCore.MethodDescriptor(
  32. service: Control.descriptor.fullyQualifiedService,
  33. method: "Unary"
  34. )
  35. }
  36. internal enum ServerStream {
  37. internal typealias Input = ControlInput
  38. internal typealias Output = ControlOutput
  39. internal static let descriptor = GRPCCore.MethodDescriptor(
  40. service: Control.descriptor.fullyQualifiedService,
  41. method: "ServerStream"
  42. )
  43. }
  44. internal enum ClientStream {
  45. internal typealias Input = ControlInput
  46. internal typealias Output = ControlOutput
  47. internal static let descriptor = GRPCCore.MethodDescriptor(
  48. service: Control.descriptor.fullyQualifiedService,
  49. method: "ClientStream"
  50. )
  51. }
  52. internal enum BidiStream {
  53. internal typealias Input = ControlInput
  54. internal typealias Output = ControlOutput
  55. internal static let descriptor = GRPCCore.MethodDescriptor(
  56. service: Control.descriptor.fullyQualifiedService,
  57. method: "BidiStream"
  58. )
  59. }
  60. internal static let descriptors: [GRPCCore.MethodDescriptor] = [
  61. Unary.descriptor,
  62. ServerStream.descriptor,
  63. ClientStream.descriptor,
  64. BidiStream.descriptor
  65. ]
  66. }
  67. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  68. internal typealias StreamingServiceProtocol = ControlStreamingServiceProtocol
  69. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  70. internal typealias ServiceProtocol = ControlServiceProtocol
  71. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  72. internal typealias ClientProtocol = ControlClientProtocol
  73. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  74. internal typealias Client = ControlClient
  75. }
  76. extension GRPCCore.ServiceDescriptor {
  77. internal static let Control = Self(
  78. package: "",
  79. service: "Control"
  80. )
  81. }
  82. /// A controllable service for testing.
  83. ///
  84. /// The control service has one RPC of each kind, the input to each RPC controls
  85. /// the output.
  86. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  87. internal protocol ControlStreamingServiceProtocol: GRPCCore.RegistrableRPCService {
  88. func unary(
  89. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  90. context: GRPCCore.ServerContext
  91. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  92. func serverStream(
  93. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  94. context: GRPCCore.ServerContext
  95. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  96. func clientStream(
  97. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  98. context: GRPCCore.ServerContext
  99. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  100. func bidiStream(
  101. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  102. context: GRPCCore.ServerContext
  103. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  104. }
  105. /// Conformance to `GRPCCore.RegistrableRPCService`.
  106. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  107. extension Control.StreamingServiceProtocol {
  108. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  109. internal func registerMethods(with router: inout GRPCCore.RPCRouter) {
  110. router.registerHandler(
  111. forMethod: Control.Method.Unary.descriptor,
  112. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlInput>(),
  113. serializer: GRPCProtobuf.ProtobufSerializer<ControlOutput>(),
  114. handler: { request, context in
  115. try await self.unary(
  116. request: request,
  117. context: context
  118. )
  119. }
  120. )
  121. router.registerHandler(
  122. forMethod: Control.Method.ServerStream.descriptor,
  123. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlInput>(),
  124. serializer: GRPCProtobuf.ProtobufSerializer<ControlOutput>(),
  125. handler: { request, context in
  126. try await self.serverStream(
  127. request: request,
  128. context: context
  129. )
  130. }
  131. )
  132. router.registerHandler(
  133. forMethod: Control.Method.ClientStream.descriptor,
  134. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlInput>(),
  135. serializer: GRPCProtobuf.ProtobufSerializer<ControlOutput>(),
  136. handler: { request, context in
  137. try await self.clientStream(
  138. request: request,
  139. context: context
  140. )
  141. }
  142. )
  143. router.registerHandler(
  144. forMethod: Control.Method.BidiStream.descriptor,
  145. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlInput>(),
  146. serializer: GRPCProtobuf.ProtobufSerializer<ControlOutput>(),
  147. handler: { request, context in
  148. try await self.bidiStream(
  149. request: request,
  150. context: context
  151. )
  152. }
  153. )
  154. }
  155. }
  156. /// A controllable service for testing.
  157. ///
  158. /// The control service has one RPC of each kind, the input to each RPC controls
  159. /// the output.
  160. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  161. internal protocol ControlServiceProtocol: Control.StreamingServiceProtocol {
  162. func unary(
  163. request: GRPCCore.ServerRequest.Single<ControlInput>,
  164. context: GRPCCore.ServerContext
  165. ) async throws -> GRPCCore.ServerResponse.Single<ControlOutput>
  166. func serverStream(
  167. request: GRPCCore.ServerRequest.Single<ControlInput>,
  168. context: GRPCCore.ServerContext
  169. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  170. func clientStream(
  171. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  172. context: GRPCCore.ServerContext
  173. ) async throws -> GRPCCore.ServerResponse.Single<ControlOutput>
  174. func bidiStream(
  175. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  176. context: GRPCCore.ServerContext
  177. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput>
  178. }
  179. /// Partial conformance to `ControlStreamingServiceProtocol`.
  180. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  181. extension Control.ServiceProtocol {
  182. internal func unary(
  183. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  184. context: GRPCCore.ServerContext
  185. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput> {
  186. let response = try await self.unary(
  187. request: GRPCCore.ServerRequest.Single(stream: request),
  188. context: context
  189. )
  190. return GRPCCore.ServerResponse.Stream(single: response)
  191. }
  192. internal func serverStream(
  193. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  194. context: GRPCCore.ServerContext
  195. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput> {
  196. let response = try await self.serverStream(
  197. request: GRPCCore.ServerRequest.Single(stream: request),
  198. context: context
  199. )
  200. return response
  201. }
  202. internal func clientStream(
  203. request: GRPCCore.ServerRequest.Stream<ControlInput>,
  204. context: GRPCCore.ServerContext
  205. ) async throws -> GRPCCore.ServerResponse.Stream<ControlOutput> {
  206. let response = try await self.clientStream(
  207. request: request,
  208. context: context
  209. )
  210. return GRPCCore.ServerResponse.Stream(single: response)
  211. }
  212. }
  213. /// A controllable service for testing.
  214. ///
  215. /// The control service has one RPC of each kind, the input to each RPC controls
  216. /// the output.
  217. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  218. internal protocol ControlClientProtocol: Sendable {
  219. func unary<R>(
  220. request: GRPCCore.ClientRequest.Single<ControlInput>,
  221. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  222. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  223. options: GRPCCore.CallOptions,
  224. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R
  225. ) async throws -> R where R: Sendable
  226. func serverStream<R>(
  227. request: GRPCCore.ClientRequest.Single<ControlInput>,
  228. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  229. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  230. options: GRPCCore.CallOptions,
  231. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  232. ) async throws -> R where R: Sendable
  233. func clientStream<R>(
  234. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  235. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  236. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  237. options: GRPCCore.CallOptions,
  238. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R
  239. ) async throws -> R where R: Sendable
  240. func bidiStream<R>(
  241. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  242. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  243. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  244. options: GRPCCore.CallOptions,
  245. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  246. ) async throws -> R where R: Sendable
  247. }
  248. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  249. extension Control.ClientProtocol {
  250. internal func unary<R>(
  251. request: GRPCCore.ClientRequest.Single<ControlInput>,
  252. options: GRPCCore.CallOptions = .defaults,
  253. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R = {
  254. try $0.message
  255. }
  256. ) async throws -> R where R: Sendable {
  257. try await self.unary(
  258. request: request,
  259. serializer: GRPCProtobuf.ProtobufSerializer<ControlInput>(),
  260. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlOutput>(),
  261. options: options,
  262. body
  263. )
  264. }
  265. internal func serverStream<R>(
  266. request: GRPCCore.ClientRequest.Single<ControlInput>,
  267. options: GRPCCore.CallOptions = .defaults,
  268. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  269. ) async throws -> R where R: Sendable {
  270. try await self.serverStream(
  271. request: request,
  272. serializer: GRPCProtobuf.ProtobufSerializer<ControlInput>(),
  273. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlOutput>(),
  274. options: options,
  275. body
  276. )
  277. }
  278. internal func clientStream<R>(
  279. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  280. options: GRPCCore.CallOptions = .defaults,
  281. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R = {
  282. try $0.message
  283. }
  284. ) async throws -> R where R: Sendable {
  285. try await self.clientStream(
  286. request: request,
  287. serializer: GRPCProtobuf.ProtobufSerializer<ControlInput>(),
  288. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlOutput>(),
  289. options: options,
  290. body
  291. )
  292. }
  293. internal func bidiStream<R>(
  294. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  295. options: GRPCCore.CallOptions = .defaults,
  296. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  297. ) async throws -> R where R: Sendable {
  298. try await self.bidiStream(
  299. request: request,
  300. serializer: GRPCProtobuf.ProtobufSerializer<ControlInput>(),
  301. deserializer: GRPCProtobuf.ProtobufDeserializer<ControlOutput>(),
  302. options: options,
  303. body
  304. )
  305. }
  306. }
  307. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  308. extension Control.ClientProtocol {
  309. internal func unary<Result>(
  310. _ message: ControlInput,
  311. metadata: GRPCCore.Metadata = [:],
  312. options: GRPCCore.CallOptions = .defaults,
  313. onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> Result = {
  314. try $0.message
  315. }
  316. ) async throws -> Result where Result: Sendable {
  317. let request = GRPCCore.ClientRequest.Single<ControlInput>(
  318. message: message,
  319. metadata: metadata
  320. )
  321. return try await self.unary(
  322. request: request,
  323. options: options,
  324. handleResponse
  325. )
  326. }
  327. internal func serverStream<Result>(
  328. _ message: ControlInput,
  329. metadata: GRPCCore.Metadata = [:],
  330. options: GRPCCore.CallOptions = .defaults,
  331. onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> Result
  332. ) async throws -> Result where Result: Sendable {
  333. let request = GRPCCore.ClientRequest.Single<ControlInput>(
  334. message: message,
  335. metadata: metadata
  336. )
  337. return try await self.serverStream(
  338. request: request,
  339. options: options,
  340. handleResponse
  341. )
  342. }
  343. internal func clientStream<Result>(
  344. metadata: GRPCCore.Metadata = [:],
  345. options: GRPCCore.CallOptions = .defaults,
  346. requestProducer: @Sendable @escaping (GRPCCore.RPCWriter<ControlInput>) async throws -> Void,
  347. onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> Result = {
  348. try $0.message
  349. }
  350. ) async throws -> Result where Result: Sendable {
  351. let request = GRPCCore.ClientRequest.Stream<ControlInput>(
  352. metadata: metadata,
  353. producer: requestProducer
  354. )
  355. return try await self.clientStream(
  356. request: request,
  357. options: options,
  358. handleResponse
  359. )
  360. }
  361. internal func bidiStream<Result>(
  362. metadata: GRPCCore.Metadata = [:],
  363. options: GRPCCore.CallOptions = .defaults,
  364. requestProducer: @Sendable @escaping (GRPCCore.RPCWriter<ControlInput>) async throws -> Void,
  365. onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> Result
  366. ) async throws -> Result where Result: Sendable {
  367. let request = GRPCCore.ClientRequest.Stream<ControlInput>(
  368. metadata: metadata,
  369. producer: requestProducer
  370. )
  371. return try await self.bidiStream(
  372. request: request,
  373. options: options,
  374. handleResponse
  375. )
  376. }
  377. }
  378. /// A controllable service for testing.
  379. ///
  380. /// The control service has one RPC of each kind, the input to each RPC controls
  381. /// the output.
  382. @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
  383. internal struct ControlClient: Control.ClientProtocol {
  384. private let client: GRPCCore.GRPCClient
  385. internal init(wrapping client: GRPCCore.GRPCClient) {
  386. self.client = client
  387. }
  388. internal func unary<R>(
  389. request: GRPCCore.ClientRequest.Single<ControlInput>,
  390. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  391. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  392. options: GRPCCore.CallOptions = .defaults,
  393. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R = {
  394. try $0.message
  395. }
  396. ) async throws -> R where R: Sendable {
  397. try await self.client.unary(
  398. request: request,
  399. descriptor: Control.Method.Unary.descriptor,
  400. serializer: serializer,
  401. deserializer: deserializer,
  402. options: options,
  403. handler: body
  404. )
  405. }
  406. internal func serverStream<R>(
  407. request: GRPCCore.ClientRequest.Single<ControlInput>,
  408. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  409. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  410. options: GRPCCore.CallOptions = .defaults,
  411. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  412. ) async throws -> R where R: Sendable {
  413. try await self.client.serverStreaming(
  414. request: request,
  415. descriptor: Control.Method.ServerStream.descriptor,
  416. serializer: serializer,
  417. deserializer: deserializer,
  418. options: options,
  419. handler: body
  420. )
  421. }
  422. internal func clientStream<R>(
  423. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  424. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  425. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  426. options: GRPCCore.CallOptions = .defaults,
  427. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Single<ControlOutput>) async throws -> R = {
  428. try $0.message
  429. }
  430. ) async throws -> R where R: Sendable {
  431. try await self.client.clientStreaming(
  432. request: request,
  433. descriptor: Control.Method.ClientStream.descriptor,
  434. serializer: serializer,
  435. deserializer: deserializer,
  436. options: options,
  437. handler: body
  438. )
  439. }
  440. internal func bidiStream<R>(
  441. request: GRPCCore.ClientRequest.Stream<ControlInput>,
  442. serializer: some GRPCCore.MessageSerializer<ControlInput>,
  443. deserializer: some GRPCCore.MessageDeserializer<ControlOutput>,
  444. options: GRPCCore.CallOptions = .defaults,
  445. _ body: @Sendable @escaping (GRPCCore.ClientResponse.Stream<ControlOutput>) async throws -> R
  446. ) async throws -> R where R: Sendable {
  447. try await self.client.bidirectionalStreaming(
  448. request: request,
  449. descriptor: Control.Method.BidiStream.descriptor,
  450. serializer: serializer,
  451. deserializer: deserializer,
  452. options: options,
  453. handler: body
  454. )
  455. }
  456. }