| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <sys/stat.h> | 9 #include <sys/stat.h> |
| 10 | 10 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 | 118 |
| 119 // Used by GDataFileSystem::GetDocumentResourceIdOnIOThreadPool to return | 119 // Used by GDataFileSystem::GetDocumentResourceIdOnIOThreadPool to return |
| 120 // the resource ID read from a document JSON file on the local file system. | 120 // the resource ID read from a document JSON file on the local file system. |
| 121 typedef base::Callback<void(const std::string& resource_id)> | 121 typedef base::Callback<void(const std::string& resource_id)> |
| 122 GetDocumentResourceIdCallback; | 122 GetDocumentResourceIdCallback; |
| 123 | 123 |
| 124 // Callback for GetCacheState operation. | 124 // Callback for GetCacheState operation. |
| 125 typedef base::Callback<void(base::PlatformFileError error, | 125 typedef base::Callback<void(base::PlatformFileError error, |
| 126 int cache_state)> GetCacheStateCallback; | 126 int cache_state)> GetCacheStateCallback; |
| 127 | 127 |
| 128 // Helper structure used for extracting key properties from GDataFile object. | |
| 129 // TODO(satorux): Remove this as part of crosbug.com/30066 | |
| 130 struct GDataFileProperties { | |
| 131 GDataFileProperties(); | |
| 132 ~GDataFileProperties(); | |
| 133 | |
| 134 base::PlatformFileInfo file_info; | |
| 135 std::string resource_id; | |
| 136 std::string file_md5; | |
| 137 std::string mime_type; | |
| 138 GURL content_url; | |
| 139 GURL alternate_url; | |
| 140 bool is_hosted_document; | |
| 141 }; | |
| 142 | |
| 143 // GData file system abstraction layer. | 128 // GData file system abstraction layer. |
| 144 // The interface is defined to make GDataFileSystem mockable. | 129 // The interface is defined to make GDataFileSystem mockable. |
| 145 class GDataFileSystemInterface { | 130 class GDataFileSystemInterface { |
| 146 public: | 131 public: |
| 147 virtual ~GDataFileSystemInterface() {} | 132 virtual ~GDataFileSystemInterface() {} |
| 148 | 133 |
| 149 // Used to notify events on the file system. | 134 // Used to notify events on the file system. |
| 150 // All events are notified on UI thread. | 135 // All events are notified on UI thread. |
| 151 class Observer { | 136 class Observer { |
| 152 public: | 137 public: |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 virtual void RequestDirectoryRefresh(const FilePath& file_path) = 0; | 392 virtual void RequestDirectoryRefresh(const FilePath& file_path) = 0; |
| 408 | 393 |
| 409 // Does server side content search for |search_query|. Search results will be | 394 // Does server side content search for |search_query|. Search results will be |
| 410 // returned as gdata entries in temp directory proto, and their | 395 // returned as gdata entries in temp directory proto, and their |
| 411 // title/file_name will be formatted as |<resource_id>.<original_file_name>|. | 396 // title/file_name will be formatted as |<resource_id>.<original_file_name>|. |
| 412 // | 397 // |
| 413 // Can be called from UI/IO thread. |callback| is run on the calling thread. | 398 // Can be called from UI/IO thread. |callback| is run on the calling thread. |
| 414 virtual void SearchAsync(const std::string& search_query, | 399 virtual void SearchAsync(const std::string& search_query, |
| 415 const ReadDirectoryCallback& callback) = 0; | 400 const ReadDirectoryCallback& callback) = 0; |
| 416 | 401 |
| 417 | |
| 418 // Finds a file (not a directory) by |file_path| and returns its key | |
| 419 // |properties|. Returns true if file was found. | |
| 420 // TODO(satorux): Remove this: crosbug.com/30066. | |
| 421 virtual bool GetFileInfoByPath(const FilePath& file_path, | |
| 422 GDataFileProperties* properties) = 0; | |
| 423 | |
| 424 // Returns true if the given path is under gdata cache directory, i.e. | 402 // Returns true if the given path is under gdata cache directory, i.e. |
| 425 // <user_profile_dir>/GCache/v1 | 403 // <user_profile_dir>/GCache/v1 |
| 426 virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const = 0; | 404 virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const = 0; |
| 427 | 405 |
| 428 // Returns the sub-directory under gdata cache directory for the given sub | 406 // Returns the sub-directory under gdata cache directory for the given sub |
| 429 // directory type. Example: <user_profile_dir>/GCache/v1/tmp | 407 // directory type. Example: <user_profile_dir>/GCache/v1/tmp |
| 430 virtual FilePath GetCacheDirectoryPath( | 408 virtual FilePath GetCacheDirectoryPath( |
| 431 GDataCache::CacheSubDirectoryType sub_dir_type) const = 0; | 409 GDataCache::CacheSubDirectoryType sub_dir_type) const = 0; |
| 432 | 410 |
| 433 // Returns absolute path of the file if it were cached or to be cached. | 411 // Returns absolute path of the file if it were cached or to be cached. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 const FilePath& file_path, | 502 const FilePath& file_path, |
| 525 const GetEntryInfoCallback& callback) OVERRIDE; | 503 const GetEntryInfoCallback& callback) OVERRIDE; |
| 526 virtual void GetFileInfoByPathAsync( | 504 virtual void GetFileInfoByPathAsync( |
| 527 const FilePath& file_path, | 505 const FilePath& file_path, |
| 528 const GetFileInfoCallback& callback) OVERRIDE; | 506 const GetFileInfoCallback& callback) OVERRIDE; |
| 529 virtual void ReadDirectoryByPathAsync( | 507 virtual void ReadDirectoryByPathAsync( |
| 530 const FilePath& file_path, | 508 const FilePath& file_path, |
| 531 const ReadDirectoryCallback& callback) OVERRIDE; | 509 const ReadDirectoryCallback& callback) OVERRIDE; |
| 532 virtual void RequestDirectoryRefresh( | 510 virtual void RequestDirectoryRefresh( |
| 533 const FilePath& file_path) OVERRIDE; | 511 const FilePath& file_path) OVERRIDE; |
| 534 virtual bool GetFileInfoByPath(const FilePath& file_path, | |
| 535 GDataFileProperties* properties) OVERRIDE; | |
| 536 virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const OVERRIDE; | 512 virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const OVERRIDE; |
| 537 virtual FilePath GetCacheDirectoryPath( | 513 virtual FilePath GetCacheDirectoryPath( |
| 538 GDataCache::CacheSubDirectoryType sub_dir_type) const OVERRIDE; | 514 GDataCache::CacheSubDirectoryType sub_dir_type) const OVERRIDE; |
| 539 virtual FilePath GetCacheFilePath( | 515 virtual FilePath GetCacheFilePath( |
| 540 const std::string& resource_id, | 516 const std::string& resource_id, |
| 541 const std::string& md5, | 517 const std::string& md5, |
| 542 GDataCache::CacheSubDirectoryType sub_dir_type, | 518 GDataCache::CacheSubDirectoryType sub_dir_type, |
| 543 CachedFileOrigin file_orign) const OVERRIDE; | 519 CachedFileOrigin file_orign) const OVERRIDE; |
| 544 virtual void GetAvailableSpace( | 520 virtual void GetAvailableSpace( |
| 545 const GetAvailableSpaceCallback& callback) OVERRIDE; | 521 const GetAvailableSpaceCallback& callback) OVERRIDE; |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 // Initiates transfer of |local_file_path| to |remote_dest_file_path|. | 688 // Initiates transfer of |local_file_path| to |remote_dest_file_path|. |
| 713 // |local_file_path| must be a regular file (i.e. not a hosted document) from | 689 // |local_file_path| must be a regular file (i.e. not a hosted document) from |
| 714 // the local file system, |remote_dest_file_path| is the virtual destination | 690 // the local file system, |remote_dest_file_path| is the virtual destination |
| 715 // path within gdata file system. | 691 // path within gdata file system. |
| 716 // | 692 // |
| 717 // Must be called from *UI* thread. |callback| is run on the calling thread. | 693 // Must be called from *UI* thread. |callback| is run on the calling thread. |
| 718 void TransferRegularFile(const FilePath& local_file_path, | 694 void TransferRegularFile(const FilePath& local_file_path, |
| 719 const FilePath& remote_dest_file_path, | 695 const FilePath& remote_dest_file_path, |
| 720 const FileOperationCallback& callback); | 696 const FileOperationCallback& callback); |
| 721 | 697 |
| 698 // Invoked upon completion of GetFileInfoByPathAsync initiated by |
| 699 // GetFileByPath. It then continues to invoke GetResolvedFileByPath. |
| 700 void OnGetFileInfoCompleteForGetFileByPath( |
| 701 const FilePath& file_path, |
| 702 const GetFileCallback& get_file_callback, |
| 703 const GetDownloadDataCallback& get_download_data_callback, |
| 704 base::PlatformFileError error, |
| 705 scoped_ptr<GDataFileProto> file_info); |
| 722 // Invoked upon completion of GetFileInfoByPathAsync initiated by OpenFile. | 706 // Invoked upon completion of GetFileInfoByPathAsync initiated by OpenFile. |
| 723 // It then continues to invoke GetFileByPath and processed to | 707 // It then continues to invoke GetResolvedFileByPath and proceeds to |
| 724 // OnGetFileCompleteForOpenFile. | 708 // OnGetFileCompleteForOpenFile. |
| 725 void OnGetFileInfoCompleteForOpenFile(const FilePath& file_path, | 709 void OnGetFileInfoCompleteForOpenFile(const FilePath& file_path, |
| 726 const OpenFileCallback& callback, | 710 const OpenFileCallback& callback, |
| 727 base::PlatformFileError error, | 711 base::PlatformFileError error, |
| 728 scoped_ptr<GDataFileProto> file_info); | 712 scoped_ptr<GDataFileProto> file_info); |
| 729 // Invoked upon completion of GetFileInfoByPathAsync initiated by CloseFile. | 713 // Invoked upon completion of GetFileInfoByPathAsync initiated by CloseFile. |
| 730 // It then continues to invoke GetFileByPath and processed to | 714 // It then continues to invoke CommitDirtyInCache and proceeds to |
| 731 // OnGetFileCompleteForCloseFile. | 715 // OnCommitDirtyInCacheCompleteForCloseFile. |
| 732 void OnGetFileInfoCompleteForCloseFile(const FilePath& file_path, | 716 void OnGetFileInfoCompleteForCloseFile(const FilePath& file_path, |
| 733 const CloseFileCallback& callback, | 717 const CloseFileCallback& callback, |
| 734 base::PlatformFileError error, | 718 base::PlatformFileError error, |
| 735 scoped_ptr<GDataFileProto> file_info); | 719 scoped_ptr<GDataFileProto> file_info); |
| 736 | 720 |
| 737 // Invoked upon completion of GetFileByPath initiated by Copy. If | 721 // Invoked upon completion of GetFileByPath initiated by Copy. If |
| 738 // GetFileByPath reports no error, calls TransferRegularFile to transfer | 722 // GetFileByPath reports no error, calls TransferRegularFile to transfer |
| 739 // |local_file_path| to |remote_dest_file_path|. | 723 // |local_file_path| to |remote_dest_file_path|. |
| 740 // | 724 // |
| 741 // Can be called from UI/IO thread. |callback| is run on the calling thread. | 725 // Can be called from UI/IO thread. |callback| is run on the calling thread. |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 // Called when an entry is found for ReadDirectoryByPathAsync(). | 1423 // Called when an entry is found for ReadDirectoryByPathAsync(). |
| 1440 void OnReadDirectory(const ReadDirectoryCallback& callback, | 1424 void OnReadDirectory(const ReadDirectoryCallback& callback, |
| 1441 base::PlatformFileError error, | 1425 base::PlatformFileError error, |
| 1442 GDataEntry* entry); | 1426 GDataEntry* entry); |
| 1443 | 1427 |
| 1444 // Finds file info by using virtual |file_path|. This call will also | 1428 // Finds file info by using virtual |file_path|. This call will also |
| 1445 // retrieve and refresh file system content from server and disk cache. | 1429 // retrieve and refresh file system content from server and disk cache. |
| 1446 void FindEntryByPathAsyncOnUIThread(const FilePath& search_file_path, | 1430 void FindEntryByPathAsyncOnUIThread(const FilePath& search_file_path, |
| 1447 const FindEntryCallback& callback); | 1431 const FindEntryCallback& callback); |
| 1448 | 1432 |
| 1433 // Gets |file_path| from the file system after the file info is already |
| 1434 // resolved with GetFileInfoByPathAsync(). This function is called by |
| 1435 // OnGetFileInfoCompleteForGetFileByPath and OnGetFileInfoCompleteForOpenFile. |
| 1436 void GetResolvedFileByPath( |
| 1437 const FilePath& file_path, |
| 1438 const GetFileCallback& get_file_callback, |
| 1439 const GetDownloadDataCallback& get_download_data_callback, |
| 1440 base::PlatformFileError error, |
| 1441 const GDataFileProto* file_proto); |
| 1442 |
| 1449 // The following functions are used to forward calls to asynchronous public | 1443 // The following functions are used to forward calls to asynchronous public |
| 1450 // member functions to UI thread. | 1444 // member functions to UI thread. |
| 1451 void SearchAsyncOnUIThread(const std::string& search_query, | 1445 void SearchAsyncOnUIThread(const std::string& search_query, |
| 1452 const ReadDirectoryCallback& callback); | 1446 const ReadDirectoryCallback& callback); |
| 1453 void OpenFileOnUIThread(const FilePath& file_path, | 1447 void OpenFileOnUIThread(const FilePath& file_path, |
| 1454 const OpenFileCallback& callback); | 1448 const OpenFileCallback& callback); |
| 1455 void CloseFileOnUIThread(const FilePath& file_path, | 1449 void CloseFileOnUIThread(const FilePath& file_path, |
| 1456 const CloseFileCallback& callback); | 1450 const CloseFileCallback& callback); |
| 1457 void CopyOnUIThread(const FilePath& src_file_path, | 1451 void CopyOnUIThread(const FilePath& src_file_path, |
| 1458 const FilePath& dest_file_path, | 1452 const FilePath& dest_file_path, |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1564 }; | 1558 }; |
| 1565 | 1559 |
| 1566 // Sets the free disk space getter for testing. | 1560 // Sets the free disk space getter for testing. |
| 1567 // The existing getter is deleted. | 1561 // The existing getter is deleted. |
| 1568 void SetFreeDiskSpaceGetterForTesting( | 1562 void SetFreeDiskSpaceGetterForTesting( |
| 1569 FreeDiskSpaceGetterInterface* getter); | 1563 FreeDiskSpaceGetterInterface* getter); |
| 1570 | 1564 |
| 1571 } // namespace gdata | 1565 } // namespace gdata |
| 1572 | 1566 |
| 1573 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 1567 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| OLD | NEW |