diff options
Diffstat (limited to 'examples/cpp/metadata/greeter_server.cc')
-rw-r--r-- | examples/cpp/metadata/greeter_server.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/examples/cpp/metadata/greeter_server.cc b/examples/cpp/metadata/greeter_server.cc index db2fecbcaf..a9a4f33cb0 100644 --- a/examples/cpp/metadata/greeter_server.cc +++ b/examples/cpp/metadata/greeter_server.cc @@ -46,7 +46,19 @@ class GreeterServiceImpl final : public Greeter::Service { std::cout << "Client metadata: " << std::endl; const std::multimap<grpc::string_ref, grpc::string_ref> metadata = context->client_metadata(); for (auto iter = metadata.begin(); iter != metadata.end(); ++iter) { - std::cout << "Header key: " << iter->first << " , value: " << iter->second << std::endl; + std::cout << "Header key: " << iter->first << ", value: "; + // Check for binary value + size_t isbin = iter->first.find("-bin"); + if ((isbin != std::string::npos) && (isbin + 4 == iter->first.size())) { + std::cout << std::hex; + for (auto c : iter->second) { + std::cout << static_cast<unsigned int>(c); + } + std::cout << std::dec; + } else { + std::cout << iter->second; + } + std::cout << std::endl; } context->AddInitialMetadata("custom-server-metadata", "initial metadata value"); |