#include "storage/browser/file_system/copy_or_move_hook_delegate_composite.h"
#include <memory>
#include <vector>
#include "base/barrier_callback.h"
#include "base/files/file.h"
#include "base/functional/bind.h"
#include "base/functional/callback_forward.h"
#include "storage/browser/file_system/copy_or_move_hook_delegate.h"
#include "storage/browser/file_system/file_system_url.h"
namespace storage {
namespace {
void StatusReduction(CopyOrMoveHookDelegate::StatusCallback callback,
std::vector<std::pair<int, base::File::Error>> errors) { … }
void ErrorReduction(CopyOrMoveHookDelegate::ErrorCallback callback,
std::vector<CopyOrMoveHookDelegate::ErrorAction> actions) { … }
base::RepeatingCallback<void(std::pair<int, base::File::Error>)> CreateBarrier(
size_t size,
CopyOrMoveHookDelegate::StatusCallback callback) { … }
base::RepeatingCallback<void(CopyOrMoveHookDelegate::ErrorAction)>
CreateErrorBarrier(size_t size,
CopyOrMoveHookDelegate::ErrorCallback callback) { … }
CopyOrMoveHookDelegate::StatusCallback CreateStatusCallback(
base::RepeatingCallback<void(std::pair<int, base::File::Error>)> barrier,
size_t index) { … }
CopyOrMoveHookDelegate::ErrorCallback CreateErrorCallback(
base::RepeatingCallback<void(CopyOrMoveHookDelegate::ErrorAction)>
barrier) { … }
}
std::unique_ptr<CopyOrMoveHookDelegate>
CopyOrMoveHookDelegateComposite::CreateOrAdd(
std::unique_ptr<CopyOrMoveHookDelegate> parent,
std::unique_ptr<CopyOrMoveHookDelegate> child) { … }
CopyOrMoveHookDelegateComposite::CopyOrMoveHookDelegateComposite()
: … { … }
CopyOrMoveHookDelegateComposite::~CopyOrMoveHookDelegateComposite() = default;
void CopyOrMoveHookDelegateComposite::OnBeginProcessFile(
const FileSystemURL& source_url,
const FileSystemURL& destination_url,
StatusCallback callback) { … }
void CopyOrMoveHookDelegateComposite::OnBeginProcessDirectory(
const FileSystemURL& source_url,
const FileSystemURL& destination_url,
StatusCallback callback) { … }
void CopyOrMoveHookDelegateComposite::OnProgress(
const FileSystemURL& source_url,
const FileSystemURL& destination_url,
int64_t size) { … }
void CopyOrMoveHookDelegateComposite::OnError(
const FileSystemURL& source_url,
const FileSystemURL& destination_url,
base::File::Error error,
ErrorCallback callback) { … }
void CopyOrMoveHookDelegateComposite::OnEndCopy(
const FileSystemURL& source_url,
const FileSystemURL& destination_url) { … }
void CopyOrMoveHookDelegateComposite::OnEndMove(
const FileSystemURL& source_url,
const FileSystemURL& destination_url) { … }
void CopyOrMoveHookDelegateComposite::OnEndRemoveSource(
const FileSystemURL& source_url) { … }
CopyOrMoveHookDelegateComposite::CopyOrMoveHookDelegateComposite(
std::unique_ptr<CopyOrMoveHookDelegate> delegate)
: … { … }
void CopyOrMoveHookDelegateComposite::Add(
std::unique_ptr<CopyOrMoveHookDelegate> delegate) { … }
}