summaryrefslogtreecommitdiff
path: root/grpc/src/cpp/server/csds/csds.h
diff options
context:
space:
mode:
Diffstat (limited to 'grpc/src/cpp/server/csds/csds.h')
-rw-r--r--grpc/src/cpp/server/csds/csds.h55
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