74 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Swift
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Swift
		
	
	
	
// Generated GRPC code for FlatBuffers swift!
 | 
						|
/// The following code is generated by the Flatbuffers library which might not be in sync with grpc-swift
 | 
						|
/// in case of an issue please open github issue, though it would be maintained
 | 
						|
import Foundation
 | 
						|
import GRPC
 | 
						|
import NIO
 | 
						|
import NIOHTTP1
 | 
						|
import FlatBuffers
 | 
						|
 | 
						|
public protocol GRPCFlatBufPayload: GRPCPayload, FlatBufferGRPCMessage {}
 | 
						|
public extension GRPCFlatBufPayload {
 | 
						|
    init(serializedByteBuffer: inout NIO.ByteBuffer) throws {
 | 
						|
        self.init(byteBuffer: FlatBuffers.ByteBuffer(contiguousBytes: serializedByteBuffer.readableBytesView, count: serializedByteBuffer.readableBytes))
 | 
						|
    }
 | 
						|
    func serialize(into buffer: inout NIO.ByteBuffer) throws {
 | 
						|
        let buf = UnsafeRawBufferPointer(start: self.rawPointer, count: Int(self.size))
 | 
						|
        buffer.writeBytes(buf)
 | 
						|
    }
 | 
						|
}
 | 
						|
extension Message: GRPCFlatBufPayload {}
 | 
						|
 | 
						|
/// Usage: instantiate GreeterServiceClient, then call methods of this protocol to make API calls.
 | 
						|
public protocol GreeterService {
 | 
						|
	 func SayHello(_ request: Message<HelloRequest>, callOptions: CallOptions?) -> UnaryCall<Message<HelloRequest>,Message<HelloReply>>
 | 
						|
	 func SayManyHellos(_ request: Message<ManyHellosRequest>, callOptions: CallOptions?, handler: @escaping (Message<HelloReply>) -> Void) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>>
 | 
						|
}
 | 
						|
 | 
						|
public final class GreeterServiceClient: GRPCClient, GreeterService {
 | 
						|
	public let connection: ClientConnection
 | 
						|
	public var defaultCallOptions: CallOptions
 | 
						|
 | 
						|
	public init(connection: ClientConnection, defaultCallOptions: CallOptions = CallOptions()) {
 | 
						|
		self.connection = connection
 | 
						|
		self.defaultCallOptions = defaultCallOptions
 | 
						|
	}
 | 
						|
 | 
						|
	public func SayHello(_ request: Message<HelloRequest>, callOptions: CallOptions? = nil) -> UnaryCall<Message<HelloRequest>,Message<HelloReply>> {
 | 
						|
		return self.makeUnaryCall(path: "/Greeter/SayHello", request: request, callOptions: callOptions ?? self.defaultCallOptions)
 | 
						|
	}
 | 
						|
 | 
						|
	public func SayManyHellos(_ request: Message<ManyHellosRequest>, callOptions: CallOptions? = nil, handler: @escaping (Message<HelloReply>) -> Void) -> ServerStreamingCall<Message<ManyHellosRequest>, Message<HelloReply>> {
 | 
						|
		return self.makeServerStreamingCall(path: "/Greeter/SayManyHellos", request: request, callOptions: callOptions ?? self.defaultCallOptions, handler: handler)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
public protocol GreeterProvider: CallHandlerProvider {
 | 
						|
	func SayHello(_ request: Message<HelloRequest>, context: StatusOnlyCallContext) -> EventLoopFuture<Message<HelloReply>>
 | 
						|
	func SayManyHellos(request: Message<ManyHellosRequest>, context: StreamingResponseCallContext<Message<HelloReply>>) -> EventLoopFuture<GRPCStatus>
 | 
						|
}
 | 
						|
 | 
						|
public extension GreeterProvider {
 | 
						|
	var serviceName: String { return "Greeter" }
 | 
						|
	func handleMethod(_ methodName: String, callHandlerContext: CallHandlerContext) -> GRPCCallHandler? {
 | 
						|
		switch methodName {
 | 
						|
		case "SayHello":
 | 
						|
		return UnaryCallHandler(callHandlerContext: callHandlerContext) { context in
 | 
						|
			return { request in
 | 
						|
				self.SayHello(request, context: context)
 | 
						|
			}
 | 
						|
		}
 | 
						|
		case "SayManyHellos":
 | 
						|
		return ServerStreamingCallHandler(callHandlerContext: callHandlerContext) { context in
 | 
						|
			return { request in
 | 
						|
				self.SayManyHellos(request: request, context: context)
 | 
						|
			}
 | 
						|
		}
 | 
						|
		default: return nil;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |