Browse Source

More conversion to Swift exceptions for errors.

Tim Burks 9 years ago
parent
commit
92783827ee

+ 3 - 9
Examples/Echo/Swift/Echo/EchoServer.swift

@@ -69,18 +69,12 @@ class EchoServer {
           try requestHandler.receiveMessage(initialMetadata:Metadata())
           {(requestData) in
             if let requestData = requestData,
-              let requestMessage =
-              fileDescriptorSet.readMessage("EchoRequest", data: requestData) {
+              let requestMessage = fileDescriptorSet.readMessage("EchoRequest", data:requestData) {
               try requestMessage.forOneField("text") {(field) in
                 let replyMessage = fileDescriptorSet.makeMessage("EchoResponse")!
                 replyMessage.addField("text", value:"Swift nonstreaming echo " + field.string())
-
-                do {
-                  try requestHandler.sendResponse(message:replyMessage.data(),
-                                                  trailingMetadata:Metadata())
-                } catch (let callError) {
-
-                }
+                try requestHandler.sendResponse(message:replyMessage.data(),
+                                                trailingMetadata:Metadata())
               }
             }
           }

+ 22 - 28
Examples/Echo/Swift/Echo/EchoViewController.swift

@@ -55,23 +55,25 @@ class EchoViewController : NSViewController, NSTextFieldDelegate {
 
   @IBAction func messageReturnPressed(sender: NSTextField) {
     if enabled {
-      do {
-        try callServer(address:addressField.stringValue)
-      } catch (let callError) {
-
+      if let error = try? callServer(address:addressField.stringValue) {
+        print(error)
       }
     }
   }
 
   @IBAction func addressReturnPressed(sender: NSTextField) {
     if (nowStreaming) {
-      self.sendClose()
+      if let error = try? self.sendClose() {
+        print(error)
+      }
     }
   }
 
   @IBAction func buttonValueChanged(sender: NSButton) {
     if (nowStreaming && (sender.intValue == 0)) {
-      self.sendClose()
+      if let error = try? self.sendClose() {
+        print(error)
+      }
     }
   }
 
@@ -150,7 +152,7 @@ class EchoViewController : NSViewController, NSTextFieldDelegate {
           return
         }
         try call.start(metadata:requestMetadata)
-        self.receiveMessage()
+        try self.receiveMessage()
         nowStreaming = true
       }
       self.sendMessage()
@@ -166,38 +168,30 @@ class EchoViewController : NSViewController, NSTextFieldDelegate {
     }
   }
 
-  func receiveMessage() {
+  func receiveMessage() throws -> Void {
     guard let call = call else {
       return
     }
-    do {
-      try call.receiveMessage() {(data) in
-        guard let responseMessage = self.fileDescriptorSet.readMessage("EchoResponse", data:data)
-          else {
-            return // this stops receiving
-        }
-        try responseMessage.forOneField("text") {(field) in
-          DispatchQueue.main.async {
-            self.outputField.stringValue = field.string()
-          }
-          self.receiveMessage()
+    try call.receiveMessage() {(data) in
+      guard let responseMessage = self.fileDescriptorSet.readMessage("EchoResponse", data:data)
+        else {
+          return // this stops receiving
+      }
+      try responseMessage.forOneField("text") {(field) in
+        DispatchQueue.main.async {
+          self.outputField.stringValue = field.string()
         }
+        try self.receiveMessage()
       }
-    } catch (let callError) {
-
     }
   }
 
-  func sendClose() {
+  func sendClose() throws {
     guard let call = call else {
       return
     }
-    do {
-      try call.close() {
-        self.nowStreaming = false
-      }
-    } catch (let callError) {
-      
+    try call.close() {
+      self.nowStreaming = false
     }
   }
 }

+ 56 - 49
Examples/Sessions/Sessions/Document.swift

@@ -171,35 +171,38 @@ class Document: NSDocument {
                                  ["y": "yu"],
                                  ["z": "zither"]])
 
-        _ = call.performNonStreamingCall(messageData: messageData!,
-                                         metadata: metadata)
-        {(callResult) in
-
-          if let initialMetadata = callResult.initialMetadata {
-            for j in 0..<initialMetadata.count() {
-              self.log("\(i): Received initial metadata -> " + initialMetadata.key(index:j)
-                + " : " + initialMetadata.value(index:j))
+        do {
+          try call.performNonStreamingCall(messageData: messageData!,
+                                           metadata: metadata)
+          {(callResult) in
+
+            if let initialMetadata = callResult.initialMetadata {
+              for j in 0..<initialMetadata.count() {
+                self.log("\(i): Received initial metadata -> " + initialMetadata.key(index:j)
+                  + " : " + initialMetadata.value(index:j))
+              }
             }
-          }
 
-          self.log("\(i): Received status: \(callResult.statusCode) \(callResult.statusMessage)")
-          if callResult.statusCode != 0 {
-            self.setIsRunning(false)
-          }
-          if let messageData = messageData {
-            let messageString = String(data: messageData as Data, encoding: .utf8)
-            self.log("\(i): Received message: " + messageString!)
-          }
+            self.log("\(i): Received status: \(callResult.statusCode) \(callResult.statusMessage)")
+            if callResult.statusCode != 0 {
+              self.setIsRunning(false)
+            }
+            if let messageData = messageData {
+              let messageString = String(data: messageData as Data, encoding: .utf8)
+              self.log("\(i): Received message: " + messageString!)
+            }
 
-          if let trailingMetadata = callResult.trailingMetadata {
-            for j in 0..<trailingMetadata.count() {
-              self.log("\(i): Received trailing metadata -> " + trailingMetadata.key(index:j)
-                + " : " + trailingMetadata.value(index:j))
+            if let trailingMetadata = callResult.trailingMetadata {
+              for j in 0..<trailingMetadata.count() {
+                self.log("\(i): Received trailing metadata -> " + trailingMetadata.key(index:j)
+                  + " : " + trailingMetadata.value(index:j))
+              }
             }
           }
-          self.log("------------------------------")
+        } catch (let callError) {
 
         }
+        self.log("------------------------------")
         sleep(1)
       }
       self.log("Client Stopped")
@@ -217,42 +220,46 @@ class Document: NSDocument {
 
     self.server.run() {(requestHandler) in
 
-      requestCount += 1
+      do {
+        requestCount += 1
 
-      self.log("\(requestCount): Received request " + requestHandler.host
-        + " " + requestHandler.method
-        + " from " + requestHandler.caller)
+        self.log("\(requestCount): Received request " + requestHandler.host
+          + " " + requestHandler.method
+          + " from " + requestHandler.caller)
 
-      let initialMetadata = requestHandler.requestMetadata
+        let initialMetadata = requestHandler.requestMetadata
 
-      for i in 0..<initialMetadata.count() {
-        self.log("\(requestCount): Received initial metadata -> " + initialMetadata.key(index:i)
-          + ":" + initialMetadata.value(index:i))
-      }
+        for i in 0..<initialMetadata.count() {
+          self.log("\(requestCount): Received initial metadata -> " + initialMetadata.key(index:i)
+            + ":" + initialMetadata.value(index:i))
+        }
 
-      let initialMetadataToSend = Metadata([["a": "Apple"],
-                                            ["b": "Banana"],
-                                            ["c": "Cherry"]])
-      requestHandler.receiveMessage(initialMetadata:initialMetadataToSend)
-      {(messageData) in
-        let messageString = String(data: messageData!, encoding: .utf8)
-        self.log("\(requestCount): Received message: " + messageString!)
-      }
+        let initialMetadataToSend = Metadata([["a": "Apple"],
+                                              ["b": "Banana"],
+                                              ["c": "Cherry"]])
+        try requestHandler.receiveMessage(initialMetadata:initialMetadataToSend)
+        {(messageData) in
+          let messageString = String(data: messageData!, encoding: .utf8)
+          self.log("\(requestCount): Received message: " + messageString!)
+        }
 
-      if requestHandler.method == "/quit" {
-        self.stop()
-      }
+        if requestHandler.method == "/quit" {
+          self.stop()
+        }
 
-      let replyMessage = "hello, client!"
+        let replyMessage = "hello, client!"
 
-      let trailingMetadataToSend = Metadata([["0": "zero"],
-                                             ["1": "one"],
-                                             ["2": "two"]])
+        let trailingMetadataToSend = Metadata([["0": "zero"],
+                                               ["1": "one"],
+                                               ["2": "two"]])
 
-      requestHandler.sendResponse(message:replyMessage.data(using: .utf8)!,
-                                  trailingMetadata:trailingMetadataToSend)
+        try requestHandler.sendResponse(message:replyMessage.data(using: .utf8)!,
+                                        trailingMetadata:trailingMetadataToSend)
 
-      self.log("------------------------------")
+        self.log("------------------------------")
+      } catch (let callError) {
+        
+      }
     }
     
     self.server.onCompletion() {