#ifndef CONTENT_BROWSER_AGGREGATION_SERVICE_AGGREGATION_SERVICE_OBSERVER_H_
#define CONTENT_BROWSER_AGGREGATION_SERVICE_AGGREGATION_SERVICE_OBSERVER_H_
#include "base/observer_list_types.h"
#include "content/browser/aggregation_service/aggregation_service_storage.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
namespace base {
class Time;
}
namespace content {
class AggregatableReport;
class AggregatableReportRequest;
class AggregationServiceObserver : public base::CheckedObserver {
public:
enum ReportStatus {
kSent = 0,
kFailedToAssemble = 1,
kFailedToSend = 2,
kMaxValue = kFailedToSend,
};
~AggregationServiceObserver() override = default;
virtual void OnRequestStorageModified() {}
virtual void OnReportHandled(
const AggregatableReportRequest& request,
absl::optional<AggregationServiceStorage::RequestId> id,
const absl::optional<AggregatableReport>& report,
base::Time report_handled_time,
ReportStatus status) {}
};
}
#endif