// // DO NOT EDIT. // // Generated by the protocol buffer compiler. // Source: echo.proto // // // Copyright 2018, gRPC Authors All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // import Foundation import NIO import NIOHTTP1 import SwiftGRPCNIO import SwiftProtobuf /// To build a server, implement a class that conforms to this protocol. internal protocol Echo_EchoProvider_NIO: CallHandlerProvider { func get(request: Echo_EchoRequest, context: StatusOnlyCallContext) -> EventLoopFuture func expand(request: Echo_EchoRequest, context: StreamingResponseCallContext) -> EventLoopFuture func collect(context: UnaryResponseCallContext) -> EventLoopFuture<(StreamEvent) -> Void> func update(context: StreamingResponseCallContext) -> EventLoopFuture<(StreamEvent) -> Void> } extension Echo_EchoProvider_NIO { internal var serviceName: String { return "echo.Echo" } /// Determines, calls and returns the appropriate request handler, depending on the request's method. /// Returns nil for methods not handled by this service. internal func handleMethod(_ methodName: String, request: HTTPRequestHead, serverHandler: GRPCChannelHandler, channel: Channel, errorDelegate: ServerErrorDelegate?) -> GRPCCallHandler? { switch methodName { case "Get": return UnaryCallHandler(channel: channel, request: request, errorDelegate: errorDelegate) { context in return { request in self.get(request: request, context: context) } } case "Expand": return ServerStreamingCallHandler(channel: channel, request: request, errorDelegate: errorDelegate) { context in return { request in self.expand(request: request, context: context) } } case "Collect": return ClientStreamingCallHandler(channel: channel, request: request, errorDelegate: errorDelegate) { context in return self.collect(context: context) } case "Update": return BidirectionalStreamingCallHandler(channel: channel, request: request, errorDelegate: errorDelegate) { context in return self.update(context: context) } default: return nil } } }