• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  //
2  //
3  // Copyright 2020 gRPC authors.
4  //
5  // Licensed under the Apache License, Version 2.0 (the "License");
6  // you may not use this file except in compliance with the License.
7  // You may obtain a copy of the License at
8  //
9  //     http://www.apache.org/licenses/LICENSE-2.0
10  //
11  // Unless required by applicable law or agreed to in writing, software
12  // distributed under the License is distributed on an "AS IS" BASIS,
13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  // See the License for the specific language governing permissions and
15  // limitations under the License.
16  //
17  //
18  
19  #ifndef GRPCPP_XDS_SERVER_BUILDER_H
20  #define GRPCPP_XDS_SERVER_BUILDER_H
21  
22  #include <grpc/impl/codegen/port_platform.h>
23  
24  #include <grpcpp/server_builder.h>
25  
26  namespace grpc {
27  namespace experimental {
28  
29  class XdsServerBuilder : public ::grpc::ServerBuilder {
30   public:
BuildAndStart()31    std::unique_ptr<Server> BuildAndStart() override {
32      grpc_server_config_fetcher* fetcher =
33          grpc_server_config_fetcher_xds_create();
34      if (fetcher == nullptr) return nullptr;
35      set_fetcher(fetcher);
36      return ServerBuilder::BuildAndStart();
37    }
38  };
39  
40  }  // namespace experimental
41  }  // namespace grpc
42  
43  #endif /* GRPCPP_XDS_SERVER_BUILDER_H */
44