Imported Upstream version 1.33.1
[platform/upstream/grpc.git] / src / core / ext / xds / xds_client.h
index 15e95c6..3e74c2c 100644 (file)
@@ -39,7 +39,7 @@
 
 namespace grpc_core {
 
-extern TraceFlag grpc_xds_client_trace;
+extern TraceFlag xds_client_trace;
 
 class XdsClient : public DualRefCounted<XdsClient> {
  public:
@@ -86,7 +86,7 @@ class XdsClient : public DualRefCounted<XdsClient> {
 
   // Callers should not instantiate directly.  Use GetOrCreate() instead.
   explicit XdsClient(grpc_error** error);
-  ~XdsClient() override;
+  ~XdsClient();
 
   grpc_pollset_set* interested_parties() const { return interested_parties_; }
 
@@ -199,7 +199,7 @@ class XdsClient : public DualRefCounted<XdsClient> {
 
     ChannelState(WeakRefCountedPtr<XdsClient> xds_client,
                  grpc_channel* channel);
-    ~ChannelState() override;
+    ~ChannelState();
 
     void Orphan() override;
 
@@ -267,13 +267,17 @@ class XdsClient : public DualRefCounted<XdsClient> {
     absl::optional<XdsApi::EdsUpdate> update;
   };
 
+  // TODO(roth): Change this to store exactly one instance of
+  // XdsClusterDropStats and exactly one instance of
+  // XdsClusterLocalityStats per locality.  We can return multiple refs
+  // to the same object instead of registering multiple objects.
   struct LoadReportState {
     struct LocalityState {
-      XdsClusterLocalityStats* locality_stats = nullptr;
-      XdsClusterLocalityStats::Snapshot deleted_locality_stats;
+      std::set<XdsClusterLocalityStats*> locality_stats;
+      std::vector<XdsClusterLocalityStats::Snapshot> deleted_locality_stats;
     };
 
-    XdsClusterDropStats* drop_stats = nullptr;
+    std::set<XdsClusterDropStats*> drop_stats;
     XdsClusterDropStats::Snapshot deleted_drop_stats;
     std::map<RefCountedPtr<XdsLocalityName>, LocalityState,
              XdsLocalityName::Less>
@@ -313,9 +317,6 @@ class XdsClient : public DualRefCounted<XdsClient> {
       LoadReportState>
       load_report_map_;
 
-  // Stores the most recent accepted resource version for each resource type.
-  std::map<std::string /*type*/, std::string /*version*/> resource_version_map_;
-
   bool shutting_down_ = false;
 };