// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_FILES_FILE_PROXY_H_ #define BASE_FILES_FILE_PROXY_H_ #include <stdint.h> #include "base/base_export.h" #include "base/containers/span.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/functional/callback_forward.h" #include "base/memory/weak_ptr.h" namespace base { class TaskRunner; class Time; // This class provides asynchronous access to a File. All methods follow the // same rules of the equivalent File method, as they are implemented by bouncing // the operation to File using a TaskRunner. // // This class performs automatic proxying to close the underlying file at // destruction. // // The TaskRunner is in charge of any sequencing of the operations, but a single // operation can be proxied at a time, regardless of the use of a callback. // In other words, having a sequence like // // proxy.Write(...); // proxy.Write(...); // // means the second Write will always fail. class BASE_EXPORT FileProxy final { … }; } // namespace base #endif // BASE_FILES_FILE_PROXY_H_