server-session-unary.swift 994 B

12345678910111213141516171819202122232425262728
  1. // unary
  2. public class {{ .|session:protoFile,service,method }} {
  3. var handler : gRPC.Handler
  4. var provider : {{ .|provider:protoFile,service }}
  5. fileprivate init(handler:gRPC.Handler, provider: {{ .|provider:protoFile,service }}) {
  6. self.handler = handler
  7. self.provider = provider
  8. }
  9. fileprivate func run(queue:DispatchQueue) {
  10. do {
  11. try handler.receiveMessage(initialMetadata:Metadata()) {(requestData) in
  12. if let requestData = requestData {
  13. let requestMessage = try! {{ method|input }}(protobuf:requestData)
  14. let replyMessage = try! self.provider.get(request:requestMessage)
  15. try self.handler.sendResponse(message:replyMessage.serializeProtobuf(),
  16. statusCode: 0,
  17. statusMessage: "OK",
  18. trailingMetadata:Metadata())
  19. }
  20. }
  21. } catch (let callError) {
  22. print("grpc error: \(callError)")
  23. }
  24. }
  25. }