// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_REPORTING_REPORTING_CACHE_OBSERVER_H_ #define NET_REPORTING_REPORTING_CACHE_OBSERVER_H_ #include #include "net/base/net_export.h" #include "net/reporting/reporting_endpoint.h" #include "net/reporting/reporting_report.h" namespace net { class NET_EXPORT ReportingCacheObserver { public: ReportingCacheObserver(const ReportingCacheObserver&) = delete; ReportingCacheObserver& operator=(const ReportingCacheObserver&) = delete; // Called whenever any change is made to the reports in the ReportingCache. virtual void OnReportsUpdated(); // Called whenever a new report is added to the ReportingCache. virtual void OnReportAdded(const ReportingReport* report); // Called whenever a report in the ReportingCache is updated. virtual void OnReportUpdated(const ReportingReport* report); // Called whenever any change is made to the client entries in the // ReportingCache. virtual void OnClientsUpdated(); // Called when V1 reporting endpoints for an origin are updated in the // ReportingCache. virtual void OnEndpointsUpdatedForOrigin( const std::vector& endpoints); protected: ReportingCacheObserver(); ~ReportingCacheObserver(); }; } // namespace net #endif // NET_REPORTING_REPORTING_CACHE_OBSERVER_H_