Browse Source

Update StickyNotes sample

Tim Burks 9 years ago
parent
commit
facf2c05c5

+ 47 - 43
Examples/StickyNotes/StickyNotes/StickyNoteViewController.swift

@@ -63,58 +63,62 @@ class StickyNoteViewController : NSViewController, NSTextFieldDelegate {
   }
   }
 
 
   func callServer(address:String) {
   func callServer(address:String) {
-    let fileDescriptorSet = FileDescriptorSet(filename:"stickynote.out")
-
-    let text = self.messageField.stringValue
-
-    // build the message
-    if let requestMessage = fileDescriptorSet.makeMessage("StickyNoteRequest") {
-      requestMessage.addField("message", value:text)
-
-      let requestHost = "foo.test.google.fr"
-      let requestMethod = "/messagepb.StickyNote/Get"
-      let requestMetadata = Metadata([["x":"xylophone"],
-                                      ["y":"yu"],
-                                      ["z":"zither"]])
-
-      client = Client(address:address)
-      let call = client.makeCall(host: requestHost, method: requestMethod, timeout: 600)
-      _ = call.performNonStreamingCall(messageData: requestMessage.data(),
-                                       metadata: requestMetadata,
-                                       completion:
-        { (callResult) in
-
-          if let initialMetadata = callResult.initialMetadata {
-            for j in 0..<initialMetadata.count() {
-              self.log("Received initial metadata -> "
-                + initialMetadata.key(index:j) + " : "
-                + initialMetadata.value(index:j))
+    do {
+      let fileDescriptorSet = FileDescriptorSet(filename:"stickynote.out")
+
+      let text = self.messageField.stringValue
+
+      // build the message
+      if let requestMessage = fileDescriptorSet.makeMessage("StickyNoteRequest") {
+        requestMessage.addField("message", value:text)
+
+        let requestHost = "foo.test.google.fr"
+        let requestMethod = "/messagepb.StickyNote/Get"
+        let requestMetadata = Metadata([["x":"xylophone"],
+                                        ["y":"yu"],
+                                        ["z":"zither"]])
+
+        client = Client(address:address)
+        let call = client.makeCall(host: requestHost, method: requestMethod, timeout: 600)
+        try call.performNonStreamingCall(message: requestMessage.data(),
+                                         metadata: requestMetadata,
+                                         completion:
+          { (callResult) in
+
+            if let initialMetadata = callResult.initialMetadata {
+              for j in 0..<initialMetadata.count() {
+                self.log("Received initial metadata -> "
+                  + initialMetadata.key(index:j) + " : "
+                  + initialMetadata.value(index:j))
+              }
             }
             }
-          }
 
 
-          self.log("Received status: \(callResult.statusCode) \(callResult.statusMessage)")
+            self.log("Received status: \(callResult.statusCode) \(callResult.statusMessage)")
 
 
-          if let responseData = callResult.resultData,
-            let responseMessage = fileDescriptorSet.readMessage("StickyNoteResponse",
-                                                                data: responseData) {
-            responseMessage.forOneField("image") {(field) in
-              if let image = NSImage(data: field.data() as Data) {
-                DispatchQueue.main.async {
-                  self.imageView.image = image
+            if let responseData = callResult.resultData,
+              let responseMessage = fileDescriptorSet.readMessage("StickyNoteResponse",
+                                                                  data: responseData) {
+              try responseMessage.forOneField("image") {(field) in
+                if let image = NSImage(data: field.data() as Data) {
+                  DispatchQueue.main.async {
+                    self.imageView.image = image
+                  }
                 }
                 }
               }
               }
             }
             }
-          }
 
 
-          if let trailingMetadata = callResult.trailingMetadata {
-            for j in 0..<trailingMetadata.count() {
-              self.log("Received trailing metadata -> "
-                + trailingMetadata.key(index:j) + " : "
-                + trailingMetadata.value(index:j))
+            if let trailingMetadata = callResult.trailingMetadata {
+              for j in 0..<trailingMetadata.count() {
+                self.log("Received trailing metadata -> "
+                  + trailingMetadata.key(index:j) + " : "
+                  + trailingMetadata.value(index:j))
+              }
             }
             }
           }
           }
-        }
-      )
+        )
+      }
+    } catch (let error) {
+      print("Error calling server: \(error)")
     }
     }
   }
   }
 }
 }

+ 24 - 17
Examples/StickyNotes/StickyNotes/StickyServer.swift

@@ -60,28 +60,35 @@ class StickyServer {
         self.log("Received request to " + requestHandler.host
         self.log("Received request to " + requestHandler.host
           + " calling " + requestHandler.method
           + " calling " + requestHandler.method
           + " from " + requestHandler.caller)
           + " from " + requestHandler.caller)
-        let initialMetadata = requestHandler.requestMetadata
-        for i in 0..<initialMetadata.count() {
-          self.log("Received initial metadata -> " + initialMetadata.key(index:i)
-            + ":" + initialMetadata.value(index:i))
-        }
 
 
-        if (requestHandler.method == "/messagepb.StickyNote/Get") {
-          requestHandler.receiveMessage(initialMetadata:Metadata())
-          {(requestData) in
-            if let requestData = requestData,
-              let requestMessage =
-              fileDescriptorSet.readMessage("StickyNoteRequest", data: requestData) {
-              requestMessage.forOneField("message") {(field) in
-                let imageData = self.drawImage(message: field.string())
+        do {
+          let initialMetadata = requestHandler.requestMetadata
+          for i in 0..<initialMetadata.count() {
+            self.log("Received initial metadata -> " + initialMetadata.key(index:i)
+              + ":" + initialMetadata.value(index:i))
+          }
+
+          if (requestHandler.method == "/messagepb.StickyNote/Get") {
+            try requestHandler.receiveMessage(initialMetadata:Metadata())
+            {(requestData) in
+              if let requestData = requestData,
+                let requestMessage =
+                fileDescriptorSet.readMessage("StickyNoteRequest", data: requestData) {
+                try requestMessage.forOneField("message") {(field) in
+                  let imageData = self.drawImage(message: field.string())
 
 
-                let replyMessage = fileDescriptorSet.makeMessage("StickyNoteResponse")!
-                replyMessage.addField("image", value:imageData)
-                requestHandler.sendResponse(message:replyMessage.data(),
-                                            trailingMetadata:Metadata())
+                  let replyMessage = fileDescriptorSet.makeMessage("StickyNoteResponse")!
+                  replyMessage.addField("image", value:imageData)
+                  try requestHandler.sendResponse(message:replyMessage.data(),
+                                                  statusCode:0,
+                                                  statusMessage:"OK",
+                                                  trailingMetadata:Metadata())
+                }
               }
               }
             }
             }
           }
           }
+        } catch (let error) {
+          print("server error: \(error)")
         }
         }
       }
       }
     }
     }