Browse Source

Adding print statements for caught errors; something better is needed.

Tim Burks 9 years ago
parent
commit
fda567eba7

+ 23 - 33
Examples/Echo/Swift/Echo/EchoServer.swift

@@ -64,10 +64,8 @@ class EchoServer {
 
       // NONSTREAMING
       if (requestHandler.method == "/echo.Echo/Get") {
-
         do {
-          try requestHandler.receiveMessage(initialMetadata:Metadata())
-          {(requestData) in
+          try requestHandler.receiveMessage(initialMetadata:Metadata()) {(requestData) in
             if let requestData = requestData,
               let requestMessage = fileDescriptorSet.readMessage("EchoRequest", data:requestData) {
               try requestMessage.forOneField("text") {(field) in
@@ -79,58 +77,50 @@ class EchoServer {
             }
           }
         } catch (let callError) {
-
+          print("grpc error: \(callError)")
         }
       }
 
       // STREAMING
       if (requestHandler.method == "/echo.Echo/Update") {
         do {
-          try requestHandler.sendMetadata(
-            initialMetadata: Metadata(),
-            completion: {
-
-              try self.handleMessage(
-                fileDescriptorSet: fileDescriptorSet,
-                requestHandler: requestHandler)
-
-              // we seem to never get this, but I'm told it's what we're supposed to do
-              try requestHandler.receiveClose() {
-                try requestHandler.sendStatus(trailingMetadata: Metadata(), completion: {
-                  print("status sent")
-                  requestHandler.shutdown()
-                })
+          try requestHandler.sendMetadata(initialMetadata:Metadata()) {
+            // wait for messages and handle them
+            try self.receiveMessage(fileDescriptorSet:fileDescriptorSet,
+                                    requestHandler:requestHandler)
+            // concurrently wait for a close message
+            try requestHandler.receiveClose() {
+              try requestHandler.sendStatus(trailingMetadata: Metadata()) {
+                requestHandler.shutdown()
               }
             }
-          )
+          }
         } catch (let callError) {
-
+          print("grpc error: \(callError)")
         }
       }
     }
   }
 
-  func handleMessage(fileDescriptorSet: FileDescriptorSet,
-                     requestHandler: Handler) throws -> Void {
-    try requestHandler.receiveMessage()
-      {(requestData) in
-        if let requestData = requestData,
-          let requestMessage = fileDescriptorSet.readMessage("EchoRequest", data:requestData) {
+  func receiveMessage(fileDescriptorSet: FileDescriptorSet, requestHandler: Handler) throws -> Void {
+    try requestHandler.receiveMessage() {(requestData) in
+      if let requestData = requestData {
+        if let requestMessage = fileDescriptorSet.readMessage("EchoRequest", data:requestData) {
           try requestMessage.forOneField("text") {(field) in
             let replyMessage = fileDescriptorSet.makeMessage("EchoResponse")!
             replyMessage.addField("text", value:"Swift streaming echo " + field.string())
             try requestHandler.sendResponse(message:replyMessage.data()) {
               // after we've sent our response, prepare to handle another message
-              try self.handleMessage(fileDescriptorSet:fileDescriptorSet, requestHandler:requestHandler)
+              try self.receiveMessage(fileDescriptorSet:fileDescriptorSet, requestHandler:requestHandler)
             }
           }
-        } else {
-          // if we get an empty message (nil buffer), we close the connection
-          try requestHandler.sendStatus(trailingMetadata: Metadata(), completion: {
-            print("status sent")
-            requestHandler.shutdown()
-          })
         }
+      } else {
+        // if we get an empty message (requestData == nil), we close the connection
+        try requestHandler.sendStatus(trailingMetadata: Metadata(), completion: {
+          requestHandler.shutdown()
+        })
+      }
     }
   }
 }

+ 2 - 2
Examples/Echo/Swift/Echo/EchoViewController.swift

@@ -51,7 +51,7 @@ class EchoViewController : NSViewController, NSTextFieldDelegate {
     super.init(coder:coder)
   }
 
-  var enabled = false
+  private var enabled = false
 
   @IBAction func messageReturnPressed(sender: NSTextField) {
     if enabled {
@@ -120,7 +120,7 @@ class EchoViewController : NSViewController, NSTextFieldDelegate {
         }
         try call.performNonStreamingCall(messageData: requestMessageData,
                                          metadata: requestMetadata)
-        { (callResult) in
+        {(callResult) in
           print("Received status: \(callResult.statusCode): \(callResult.statusMessage)")
           if let messageData = callResult.resultData,
             let responseMessage = self.fileDescriptorSet.readMessage("EchoResponse",

+ 2 - 2
Packages/gRPC/Sources/Call.swift

@@ -228,7 +228,7 @@ public class Call {
             try self.sendWithoutBlocking(data: data)
             callback()
           } catch (let callError) {
-
+            print("grpc error: \(callError)")
           }
         }
       }
@@ -247,7 +247,7 @@ public class Call {
             do {
               try self.sendWithoutBlocking(data: nextMessage)
             } catch (let callError) {
-
+              print("grpc error: \(callError)")
             }
           } else {
             self.writing = false

+ 1 - 1
Packages/gRPC/Sources/CompletionQueue.swift

@@ -121,7 +121,7 @@ internal class CompletionQueue {
             do {
               try operationGroup.completion(event.success == 1)
             } catch (let callError) {
-
+              print("grpc error: \(callError)")
             }
             self.operationGroups[tag] = nil
           }