1*cc02d7e2SAndroid Build Coastguard Worker# Deadline Example 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard Worker## Overview 4*cc02d7e2SAndroid Build Coastguard Worker 5*cc02d7e2SAndroid Build Coastguard WorkerThis example shows you how to use deadline when calling calls. 6*cc02d7e2SAndroid Build Coastguard Worker 7*cc02d7e2SAndroid Build Coastguard Worker### Try it! 8*cc02d7e2SAndroid Build Coastguard Worker 9*cc02d7e2SAndroid Build Coastguard WorkerOnce you have working gRPC, you can build this example using either bazel or cmake. 10*cc02d7e2SAndroid Build Coastguard Worker 11*cc02d7e2SAndroid Build Coastguard WorkerRun the server, which will listen on port 50051: 12*cc02d7e2SAndroid Build Coastguard Worker 13*cc02d7e2SAndroid Build Coastguard Worker```sh 14*cc02d7e2SAndroid Build Coastguard Worker$ ./server 15*cc02d7e2SAndroid Build Coastguard Worker``` 16*cc02d7e2SAndroid Build Coastguard Worker 17*cc02d7e2SAndroid Build Coastguard WorkerRun the client (in a different terminal): 18*cc02d7e2SAndroid Build Coastguard Worker 19*cc02d7e2SAndroid Build Coastguard Worker```sh 20*cc02d7e2SAndroid Build Coastguard Worker$ ./client 21*cc02d7e2SAndroid Build Coastguard Worker``` 22*cc02d7e2SAndroid Build Coastguard Worker 23*cc02d7e2SAndroid Build Coastguard WorkerTo simulate the test scenario, the test server implements following functionalities: 24*cc02d7e2SAndroid Build Coastguard Worker- Response Delay: The server intentionally delays its response for `delay` request messages to induce timeout conditions. 25*cc02d7e2SAndroid Build Coastguard Worker- Deadline Propagation: Upon receiving a request with the `[propagate me]` prefix, the server forwards it back to itselt. 26*cc02d7e2SAndroid Build Coastguard Worker This simulates the propagation of deadlines within the system. 27*cc02d7e2SAndroid Build Coastguard Worker 28*cc02d7e2SAndroid Build Coastguard WorkerIf things go smoothly, you will see the client output: 29*cc02d7e2SAndroid Build Coastguard Worker 30*cc02d7e2SAndroid Build Coastguard Worker``` 31*cc02d7e2SAndroid Build Coastguard Worker[Successful request] wanted = 0, got = 0 32*cc02d7e2SAndroid Build Coastguard Worker[Exceeds deadline] wanted = 4, got = 4 33*cc02d7e2SAndroid Build Coastguard Worker[Successful request with propagated deadline] wanted = 0, got = 0 34*cc02d7e2SAndroid Build Coastguard Worker[Exceeds propagated deadline] wanted = 4, got = 4 35*cc02d7e2SAndroid Build Coastguard Worker``` 36