diff options
Diffstat (limited to 'webkit/fileapi/local_file_system_file_util.h')
-rw-r--r-- | webkit/fileapi/local_file_system_file_util.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/webkit/fileapi/local_file_system_file_util.h b/webkit/fileapi/local_file_system_file_util.h new file mode 100644 index 0000000..6fc2e11 --- /dev/null +++ b/webkit/fileapi/local_file_system_file_util.h @@ -0,0 +1,112 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_FILE_UTIL_H_ +#define WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_FILE_UTIL_H_ + +#include <vector> + +#include "base/callback.h" +#include "base/file_path.h" +#include "base/file_util.h" +#include "base/file_util_proxy.h" +#include "base/logging.h" +#include "base/platform_file.h" +#include "base/ref_counted.h" +#include "base/singleton.h" +#include "base/tracked_objects.h" +#include "webkit/fileapi/file_system_file_util.h" +#include "webkit/fileapi/file_system_types.h" + +namespace base { +struct PlatformFileInfo; +class MessageLoopProxy; +class Time; +} + +class GURL; + +namespace fileapi { + +using base::PlatformFile; +using base::PlatformFileError; + +class FileSystemOperationContext; + +class LocalFileSystemFileUtil : public FileSystemFileUtil { + public: + static LocalFileSystemFileUtil* GetInstance(); + + virtual PlatformFileError CreateOrOpen( + FileSystemOperationContext* context, + const FilePath& file_path, + int file_flags, + PlatformFile* file_handle, + bool* created); + + virtual PlatformFileError EnsureFileExists( + FileSystemOperationContext* context, + const FilePath& file_path, bool* created); + + virtual PlatformFileError GetFileInfo( + FileSystemOperationContext* context, + const FilePath& file_, base::PlatformFileInfo* file_info); + + virtual PlatformFileError ReadDirectory( + FileSystemOperationContext* context, + const FilePath& file_path, + std::vector<base::FileUtilProxy::Entry>* entries); + + virtual PlatformFileError CreateDirectory( + FileSystemOperationContext* context, + const FilePath& file_path, + bool exclusive, + bool recursive); + + virtual PlatformFileError Copy( + FileSystemOperationContext* context, + const FilePath& src_file_path, + const FilePath& dest_file_path); + + virtual PlatformFileError Move( + FileSystemOperationContext* context, + const FilePath& src_file_path, + const FilePath& dest_file_path); + + virtual PlatformFileError Delete( + FileSystemOperationContext* context, + const FilePath& file_path, + bool recursive); + + virtual PlatformFileError Touch( + FileSystemOperationContext* context, + const FilePath& file_path, + const base::Time& last_access_time, + const base::Time& last_modified_time); + + virtual PlatformFileError Truncate( + FileSystemOperationContext* context, + const FilePath& path, + int64 length); + + protected: + LocalFileSystemFileUtil() { } + + friend struct DefaultSingletonTraits<LocalFileSystemFileUtil>; + DISALLOW_COPY_AND_ASSIGN(LocalFileSystemFileUtil); + + private: + // Given the filesystem's root URL and a virtual path, produces a real, full + // local path. + FilePath GetLocalPath( + FileSystemOperationContext* context, + const GURL& origin_url, + FileSystemType type, + const FilePath& virtual_path); + +}; + +} // namespace fileapi + +#endif // WEBKIT_FILEAPI_LOCAL_FILE_SYSTEM_FILE_UTIL_H_ |