// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_REPORTING_STORAGE_STORAGE_UPLOADER_INTERFACE_H_ #define COMPONENTS_REPORTING_STORAGE_STORAGE_UPLOADER_INTERFACE_H_ #include <cstdint> #include <memory> #include <string_view> #include "base/functional/callback.h" #include "components/reporting/proto/synced/record.pb.h" #include "components/reporting/proto/synced/record_constants.pb.h" #include "components/reporting/resources/resource_manager.h" #include "components/reporting/util/status.h" #include "components/reporting/util/statusor.h" namespace reporting { // Interface for Upload by StorageModule. // Must be implemented by an object returned by |StartUpload| callback (see // below). Every time on of the StorageQueue's starts an upload (by timer or // immediately after Write) it uses this interface to hand available records // over to the actual uploader. StorageQueue takes ownership of it and // automatically discards after |Completed| returns. class UploaderInterface { … }; } // namespace reporting #endif // COMPONENTS_REPORTING_STORAGE_STORAGE_UPLOADER_INTERFACE_H_