diff options
Diffstat (limited to 'grpc/src/cpp/server/csds/csds.h')
-rw-r--r-- | grpc/src/cpp/server/csds/csds.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/grpc/src/cpp/server/csds/csds.h b/grpc/src/cpp/server/csds/csds.h new file mode 100644 index 00000000..be2a4aa1 --- /dev/null +++ b/grpc/src/cpp/server/csds/csds.h @@ -0,0 +1,55 @@ +// +// +// Copyright 2021 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// + +#ifndef GRPC_INTERNAL_CPP_SERVER_CSDS_H +#define GRPC_INTERNAL_CPP_SERVER_CSDS_H + +#include <grpc/support/port_platform.h> +#include <grpcpp/grpcpp.h> +#include "absl/status/status.h" + +#include "src/proto/grpc/testing/xds/v3/csds.grpc.pb.h" + +namespace grpc { +namespace xds { +namespace experimental { + +// The implementation of +// envoy::service::status::v3::ClientStatusDiscoveryService +class ClientStatusDiscoveryService final + : public envoy::service::status::v3::ClientStatusDiscoveryService::Service { + public: + // A streaming call that responds client status for each request. + Status StreamClientStatus( + ServerContext* /*context*/, + ServerReaderWriter<envoy::service::status::v3::ClientStatusResponse, + envoy::service::status::v3::ClientStatusRequest>* + stream) override; + + // An unary call to fetch client status. + Status FetchClientStatus( + ServerContext* /*unused*/, + const envoy::service::status::v3::ClientStatusRequest* /*request*/, + envoy::service::status::v3::ClientStatusResponse* response) override; +}; + +} // namespace experimental +} // namespace xds +} // namespace grpc + +#endif // GRPC_INTERNAL_CPP_SERVER_CSDS_H |