xref: /aosp_15_r20/external/grpc-grpc/examples/cpp/deadline/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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