diff options
Diffstat (limited to 'src/core/ext/xds/xds_health_status.cc')
-rw-r--r-- | src/core/ext/xds/xds_health_status.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/core/ext/xds/xds_health_status.cc b/src/core/ext/xds/xds_health_status.cc index 8626a6f46f..ad504ad91d 100644 --- a/src/core/ext/xds/xds_health_status.cc +++ b/src/core/ext/xds/xds_health_status.cc @@ -18,6 +18,10 @@ #include "src/core/ext/xds/xds_health_status.h" +#include <string> + +#include "absl/strings/str_cat.h" +#include "absl/strings/str_join.h" #include "envoy/config/core/v3/health_check.upb.h" namespace grpc_core { @@ -56,8 +60,16 @@ const char* XdsHealthStatus::ToString() const { } } -bool operator<(const XdsHealthStatus& hs1, const XdsHealthStatus& hs2) { - return hs1.status() < hs2.status(); +std::string XdsHealthStatusSet::ToString() const { + std::vector<const char*> set; + set.reserve(3); + for (const auto& status : + {XdsHealthStatus::kUnknown, XdsHealthStatus::kHealthy, + XdsHealthStatus::kDraining}) { + const XdsHealthStatus health_status(status); + if (Contains(health_status)) set.push_back(health_status.ToString()); + } + return absl::StrCat("{", absl::StrJoin(set, ", "), "}"); } } // namespace grpc_core |