@@ -39,52 +39,59 @@ print("gRPC version", gRPC.version())
39
39
let server = gRPC. Server ( address: " localhost:8001 " )
40
40
var requestCount = 0
41
41
42
+ let done = NSCondition ( )
43
+
42
44
server. run ( ) { ( requestHandler) in
43
45
44
- do {
45
- requestCount += 1
46
+ do {
47
+ requestCount += 1
46
48
47
- print ( " \( requestCount) : Received request " + requestHandler. host
48
- + " " + requestHandler. method
49
- + " from " + requestHandler. caller)
49
+ print ( " \( requestCount) : Received request " + requestHandler. host
50
+ + " " + requestHandler. method
51
+ + " from " + requestHandler. caller)
50
52
51
- let initialMetadata = requestHandler. requestMetadata
52
- for i in 0 ..< initialMetadata. count ( ) {
53
- print ( " \( requestCount) : Received initial metadata -> " + initialMetadata. key ( index: i)
54
- + " : " + initialMetadata. value ( index: i) )
55
- }
53
+ let initialMetadata = requestHandler. requestMetadata
54
+ for i in 0 ..< initialMetadata. count ( ) {
55
+ print ( " \( requestCount) : Received initial metadata -> " + initialMetadata. key ( index: i)
56
+ + " : " + initialMetadata. value ( index: i) )
57
+ }
56
58
57
- let initialMetadataToSend = Metadata ( [ [ " a " : " Apple " ] ,
58
- [ " b " : " Banana " ] ,
59
- [ " c " : " Cherry " ] ] )
60
- try requestHandler. receiveMessage ( initialMetadata: initialMetadataToSend)
61
- { ( messageData) in
62
- let messageString = String ( data: messageData!, encoding: . utf8)
63
- print ( " \( requestCount) : Received message: " + messageString!)
64
- }
59
+ let initialMetadataToSend = Metadata ( [ [ " a " : " Apple " ] ,
60
+ [ " b " : " Banana " ] ,
61
+ [ " c " : " Cherry " ] ] )
62
+ try requestHandler. receiveMessage ( initialMetadata: initialMetadataToSend)
63
+ { ( messageData) in
64
+ let messageString = String ( data: messageData!, encoding: . utf8)
65
+ print ( " \( requestCount) : Received message: " + messageString!)
66
+ }
65
67
66
- if requestHandler. method == " /quit " {
68
+ if requestHandler. method == " /quit " {
69
+ print ( " quitting " )
70
+ done. lock ( )
71
+ done. signal ( )
72
+ done. unlock ( )
73
+ }
67
74
68
- }
75
+ let replyMessage = " hello, client! "
76
+ let trailingMetadataToSend = Metadata ( [ [ " 0 " : " zero " ] ,
77
+ [ " 1 " : " one " ] ,
78
+ [ " 2 " : " two " ] ] )
79
+ try requestHandler. sendResponse ( message: replyMessage. data ( using: . utf8) !,
80
+ statusCode: 0 ,
81
+ statusMessage: " OK " ,
82
+ trailingMetadata: trailingMetadataToSend)
69
83
70
- let replyMessage = " hello, client! "
71
- let trailingMetadataToSend = Metadata ( [ [ " 0 " : " zero " ] ,
72
- [ " 1 " : " one " ] ,
73
- [ " 2 " : " two " ] ] )
74
- try requestHandler. sendResponse ( message: replyMessage. data ( using: . utf8) !,
75
- statusCode: 0 ,
76
- statusMessage: " OK " ,
77
- trailingMetadata: trailingMetadataToSend)
84
+ print ( " ------------------------------ " )
85
+ } catch ( let callError) {
86
+ Swift . print ( " call error \( callError) " )
87
+ }
88
+ }
78
89
79
- print ( " ------------------------------ " )
80
- } catch ( let callError) {
81
- Swift . print ( " call error \( callError) " )
82
- }
83
- }
84
-
85
90
server. onCompletion ( ) {
86
- print ( " Server Stopped " )
91
+ print ( " Server Stopped " )
87
92
}
88
93
89
- sleep ( 600 )
94
+ done. lock ( )
95
+ done. wait ( )
96
+ done. unlock ( )
90
97
0 commit comments