15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef STORAGE_BROWSER_FILEAPI_LOCAL_FILE_UTIL_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define STORAGE_BROWSER_FILEAPI_LOCAL_FILE_UTIL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/files/file_path.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/file_system_file_util.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/storage_browser_export.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Time; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GURL; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace storage { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FileSystemOperationContext; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FileSystemURL; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// An instance of this class is created and owned by *FileSystemBackend. 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass STORAGE_EXPORT LocalFileUtil 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) : public FileSystemFileUtil { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalFileUtil(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~LocalFileUtil(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual base::File CreateOrOpen( 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) int file_flags) OVERRIDE; 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error EnsureFileExists( 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, bool* created) OVERRIDE; 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error CreateDirectory( 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool exclusive, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool recursive) OVERRIDE; 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error GetFileInfo( 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::File::Info* file_info, 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath* platform_file) OVERRIDE; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator( 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const FileSystemURL& root_url) OVERRIDE; 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error GetLocalFilePath( 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& file_system_url, 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath* local_file_path) OVERRIDE; 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error Touch( 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Time& last_access_time, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Time& last_modified_time) OVERRIDE; 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error Truncate( 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 length) OVERRIDE; 655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error CopyOrMoveFile( 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& src_url, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& dest_url, 6968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) CopyOrMoveOption option, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool copy) OVERRIDE; 715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error CopyInForeignFile( 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& src_file_path, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& dest_url) OVERRIDE; 755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error DeleteFile( 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url) OVERRIDE; 785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual base::File::Error DeleteDirectory( 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url) OVERRIDE; 8103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual storage::ScopedFile CreateSnapshotFile( 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileSystemOperationContext* context, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const FileSystemURL& url, 845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::File::Error* error, 855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::File::Info* file_info, 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::FilePath* platform_path) OVERRIDE; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(LocalFileUtil); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace storage 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // STORAGE_BROWSER_FILEAPI_LOCAL_FILE_UTIL_H_ 95