Преглед изворни кода

Fix Echo examples to expect streaming completion handlers to be called when calls finish.

Tim Burks пре 7 година
родитељ
комит
fa9c4c67a1

+ 4 - 12
Examples/Echo/PackageManager/Sources/main.swift

@@ -97,12 +97,9 @@ Group {
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
     print("Sending: " + requestMessage.text)
-    let sem = DispatchSemaphore(value: 0)
     let expandCall = try service.expand(requestMessage) { result in
-      print("result \(result)")
-      sem.signal()
+      print("expand completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
     var running = true
     while running {
       do {
@@ -118,12 +115,9 @@ Group {
   $0.command("collect", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a client-streaming collect().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
-    let sem = DispatchSemaphore(value: 0)
     let collectCall = try service.collect { result in
-      print("result \(result)")
-      sem.signal()
+      print("collect completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
     let parts = message.components(separatedBy: " ")
     for part in parts {
       var requestMessage = Echo_EchoRequest()
@@ -139,13 +133,11 @@ Group {
   $0.command("update", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a bidirectional-streaming update().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
-    let sem = DispatchSemaphore(value: 0)
     let updateCall = try service.update { result in
-      print("result \(result)")
-      sem.signal()
+      print("update completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
 
+    let sem = DispatchSemaphore(value: 0)
     DispatchQueue.global().async {
       var running = true
       while running {

+ 3 - 3
Examples/Echo/Xcode/Echo/EchoViewController.swift

@@ -147,7 +147,7 @@ class EchoViewController: NSViewController, NSTextFieldDelegate {
           var requestMessage = Echo_EchoRequest()
           requestMessage.text = messageField.stringValue
           expandCall = try service.expand(requestMessage) { call in
-            print("Started expand \(call)")
+            print("Completed expand \(call)")
           }
           try receiveExpandMessages()
           displayMessageSent(requestMessage.text)
@@ -160,7 +160,7 @@ class EchoViewController: NSViewController, NSTextFieldDelegate {
       do {
         if !nowStreaming {
           let collectCall = try service.collect { call in
-            print("Started collect \(call)")
+            print("Completed collect \(call)")
           }
           self.collectCall = collectCall
           nowStreaming = true
@@ -177,7 +177,7 @@ class EchoViewController: NSViewController, NSTextFieldDelegate {
       do {
         if !nowStreaming {
           let updateCall = try service.update { call in
-            print("Started update \(call)")
+            print("Completed update \(call)")
           }
           self.updateCall = updateCall
           nowStreaming = true

+ 2 - 0
Examples/Echo2/Makefile

@@ -1,5 +1,7 @@
+PATH := ../../Plugin:$(PATH)
 
 all:
+	protoc Protos/*.proto -IProtos --swift_out=Sources --swiftgrpc_out=Sources 
 	swift build -c release
 	cp .build/release/Echo .
 

+ 1 - 0
Examples/Echo2/RUNME

@@ -7,6 +7,7 @@
 # protoc-gen-swiftgrpc binaries and assumes that protoc-gen-swift 
 # is installed in $HOME/local/bin.
 
+PATH=../../Plugin:$PATH
 protoc \
 	Protos/*.proto \
 	--swift_out=Sources \

+ 4 - 12
Examples/Echo2/Sources/main.swift

@@ -97,12 +97,9 @@ Group {
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
     print("Sending: " + requestMessage.text)
-    let sem = DispatchSemaphore(value: 0)
     let expandCall = try service.expand(requestMessage) { result in
-      print("result \(result)")
-      sem.signal()
+      print("expand completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
     var running = true
     while running {
       do {
@@ -118,12 +115,9 @@ Group {
   $0.command("collect", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a client-streaming collect().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
-    let sem = DispatchSemaphore(value: 0)
     let collectCall = try service.collect { result in
-      print("result \(result)")
-      sem.signal()
+      print("collect completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
     let parts = message.components(separatedBy: " ")
     for part in parts {
       var requestMessage = Echo_EchoRequest()
@@ -139,13 +133,11 @@ Group {
   $0.command("update", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a bidirectional-streaming update().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
-    let sem = DispatchSemaphore(value: 0)
     let updateCall = try service.update { result in
-      print("result \(result)")
-      sem.signal()
+      print("update completed with result \(result)")
     }
-    _ = sem.wait(timeout: DispatchTime.distantFuture)
 
+    let sem = DispatchSemaphore(value: 0)
     DispatchQueue.global().async {
       var running = true
       while running {