// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef STORAGE_BROWSER_FILE_SYSTEM_ASYNC_FILE_UTIL_H_ #define STORAGE_BROWSER_FILE_SYSTEM_ASYNC_FILE_UTIL_H_ #include <stdint.h> #include <memory> #include <vector> #include "base/component_export.h" #include "base/files/file.h" #include "base/functional/callback_forward.h" #include "components/services/filesystem/public/mojom/types.mojom.h" #include "storage/browser/file_system/file_system_operation.h" namespace base { class Time; } namespace storage { class ShareableFileReference; } namespace storage { class FileSystemOperationContext; class FileSystemURL; // An interface which provides filesystem-specific file operations for // FileSystemOperationImpl. // // Each filesystem which needs to be dispatched from FileSystemOperationImpl // must implement this interface or a synchronous version of interface: // FileSystemFileUtil. // // As far as an instance of this class is owned by a FileSystemBackend // (which is owned by FileSystemContext), it's guaranteed that this instance's // alive while FileSystemOperationContext given to each operation is kept // alive. (Note that this instance might be freed on different thread // from the thread it is created.) // // It is NOT valid to give null callback to this class, and implementors // can assume that they don't get any null callbacks. // class AsyncFileUtil { … }; } // namespace storage #endif // STORAGE_BROWSER_FILE_SYSTEM_ASYNC_FILE_UTIL_H_