Tanvi Jagtap
fc09bb43b7
[grpc][Gpr_To_Absl_Logging] Migrating from gpr to absl logging go/gpr_to_absl_logs Replacing GPR_ASSERT with absl CHECK GPR_ASSERT http://google3/third_party/grpc/include/grpc/support/log.h?q=symbol%3A%5CbGPR_ASSERT%5Cb%20case%3Ayes CHECK http://google3/third_party/absl/log/check.h?q=symbol%3A%5CbCHECK%5Cb%20case%3Ayes <!-- If you know who should review your pull request, please assign it to that person, otherwise the pull request would get assigned randomly. If your pull request is for a specific language, please add the appropriate lang label. --> Closes #36327 PiperOrigin-RevId: 623851813 |
10 months ago | |
---|---|---|
.. | ||
BUILD |
…
|
|
CMakeLists.txt |
…
|
|
README.md |
…
|
|
caching_interceptor.h |
…
|
|
client.cc |
…
|
|
server.cc |
…
|
README.md
gRPC C++ Interceptors Example
The C++ Interceptors example shows how interceptors might be used with a simple key-value store. Note that the C++ Interception API is still experimental and subject to change.
Key Value Store
The key-value store service is defined in keyvaluestore.proto.It has a simple bidi streaming RPC where the request messages contain a key and the response messages contain a value.
The example shows a very naive CachingInterceptor added on the client channel that caches the key-value pairs that it sees. If the client looks up a key present in the cache, the interceptor responds with its saved value and the server doesn't see the request for that key.
On the server-side, a very simple logging interceptor is added that simply logs to stdout whenever a new RPC is received.
Running the example
To run the server -
$ tools/bazel run examples/cpp/interceptors:server
To run the client (on a different terminal) -
$ tools/bazel run examples/cpp/interceptors:client