Add MakeChannelArgumentOption() for void* (#32096)

pull/32107/head
Yousuk Seung 2 years ago committed by GitHub
parent aff72ba18b
commit 6b31b8d346
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      include/grpcpp/impl/channel_argument_option.h
  2. 21
      src/cpp/server/channel_argument_option.cc

@ -31,6 +31,8 @@ std::unique_ptr<ServerBuilderOption> MakeChannelArgumentOption(
const std::string& name, const std::string& value);
std::unique_ptr<ServerBuilderOption> MakeChannelArgumentOption(
const std::string& name, int value);
std::unique_ptr<ServerBuilderOption> MakeChannelArgumentOption(
const std::string& name, void* value);
} // namespace grpc

@ -69,4 +69,25 @@ std::unique_ptr<ServerBuilderOption> MakeChannelArgumentOption(
return std::unique_ptr<ServerBuilderOption>(new IntOption(name, value));
}
std::unique_ptr<ServerBuilderOption> MakeChannelArgumentOption(
const std::string& name, void* value) {
class PointerOption final : public ServerBuilderOption {
public:
PointerOption(const std::string& name, void* value)
: name_(name), value_(value) {}
void UpdateArguments(ChannelArguments* args) override {
args->SetPointer(name_, value_);
}
void UpdatePlugins(
std::vector<std::unique_ptr<ServerBuilderPlugin>>* /*plugins*/)
override {}
private:
const std::string name_;
void* value_;
};
return std::unique_ptr<ServerBuilderOption>(new PointerOption(name, value));
}
} // namespace grpc

Loading…
Cancel
Save