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 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 struct CreateDirectoryParams; | 164 struct CreateDirectoryParams; |
165 | 165 |
166 // Defines set of parameters passed to an intermediate callback | 166 // Defines set of parameters passed to an intermediate callback |
167 // OnGetFileCompleteForOpen, during execution of OpenFile() method. | 167 // OnGetFileCompleteForOpen, during execution of OpenFile() method. |
168 struct GetFileCompleteForOpenParams; | 168 struct GetFileCompleteForOpenParams; |
169 | 169 |
170 // Defines set of parameters passed to intermediate callbacks during | 170 // Defines set of parameters passed to intermediate callbacks during |
171 // execution of GetFileByPath() method. | 171 // execution of GetFileByPath() method. |
172 struct GetFileFromCacheParams; | 172 struct GetFileFromCacheParams; |
173 | 173 |
174 // Callback similar to FileOperationCallback but with a given |file_path|. | |
175 typedef base::Callback<void(GDataFileError error, | |
176 const FilePath& file_path)> | |
177 FilePathUpdateCallback; | |
178 | 174 |
179 // Struct used for StartFileUploadOnUIThread(). | 175 // Struct used for StartFileUploadOnUIThread(). |
180 struct StartFileUploadParams; | 176 struct StartFileUploadParams; |
181 | 177 |
182 // Callback passed to |LoadFeedFromServer| from |Search| method. | 178 // Callback passed to |LoadFeedFromServer| from |Search| method. |
183 // |callback| is that should be run with data received from | 179 // |callback| is that should be run with data received from |
184 // |LoadFeedFromServer|. | 180 // |LoadFeedFromServer|. |
185 // |params| params used for getting document feed for content search. | 181 // |params| params used for getting document feed for content search. |
186 // |error| error code returned by |LoadFeedFromServer|. | 182 // |error| error code returned by |LoadFeedFromServer|. |
187 void OnSearch(const SearchCallback& callback, | 183 void OnSearch(const SearchCallback& callback, |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 | 344 |
349 // Copies a document with |resource_id| to the directory at |dir_path| | 345 // Copies a document with |resource_id| to the directory at |dir_path| |
350 // and names the copied document as |new_name|. | 346 // and names the copied document as |new_name|. |
351 // | 347 // |
352 // Can be called from UI thread. |callback| is run on the calling thread. | 348 // Can be called from UI thread. |callback| is run on the calling thread. |
353 void CopyDocumentToDirectory(const FilePath& dir_path, | 349 void CopyDocumentToDirectory(const FilePath& dir_path, |
354 const std::string& resource_id, | 350 const std::string& resource_id, |
355 const FilePath::StringType& new_name, | 351 const FilePath::StringType& new_name, |
356 const FileOperationCallback& callback); | 352 const FileOperationCallback& callback); |
357 | 353 |
358 // Renames a file or directory at |file_path| to |new_name|. | 354 // Renames a file or directory at |file_path| to |new_name| in the same |
| 355 // directory. |callback| will receive the new file path if the operation is |
| 356 // successful. If the new name already exists in the same directory, the file |
| 357 // name is uniquified by adding a parenthesized serial number like |
| 358 // "foo (2).txt" |
359 // | 359 // |
360 // Can be called from UI thread. |callback| is run on the calling thread. | 360 // Can be called from UI thread. |callback| is run on the calling thread. |
361 void Rename(const FilePath& file_path, | 361 void Rename(const FilePath& file_path, |
362 const FilePath::StringType& new_name, | 362 const FilePath::StringType& new_name, |
363 const FilePathUpdateCallback& callback); | 363 const FileMoveCallback& callback); |
364 | 364 |
365 // Part of Rename(). Called after GetEntryInfoByPath() is complete. | 365 // Part of Rename(). Called after GetEntryInfoByPath() is complete. |
366 void RenameAfterGetEntryInfo(const FilePath& file_path, | 366 void RenameAfterGetEntryInfo(const FilePath& file_path, |
367 const FilePath::StringType& new_name, | 367 const FilePath::StringType& new_name, |
368 const FilePathUpdateCallback& callback, | 368 const FileMoveCallback& callback, |
369 GDataFileError error, | 369 GDataFileError error, |
370 scoped_ptr<GDataEntryProto> entry_proto); | 370 scoped_ptr<GDataEntryProto> entry_proto); |
371 | 371 |
372 // Adds a file or directory at |file_path| to the directory at |dir_path|. | 372 // Adds a file or directory at |file_path| to the directory at |dir_path|. |
373 // | 373 // |
374 // Can be called from UI thread. |callback| is run on the calling thread. | 374 // Can be called from UI thread. |callback| is run on the calling thread. |
375 void AddEntryToDirectory(const FilePath& dir_path, | 375 void AddEntryToDirectory(const FilePath& dir_path, |
376 const FileOperationCallback& callback, | 376 const FileOperationCallback& callback, |
377 GDataFileError error, | 377 GDataFileError error, |
378 const FilePath& file_path); | 378 const FilePath& file_path); |
379 | 379 |
380 // Removes a file or directory at |file_path| from the directory at | 380 // Removes a file or directory at |file_path| from the directory at |
381 // |dir_path| and moves it to the root directory. | 381 // |dir_path| and moves it to the root directory. |
382 // | 382 // |
383 // Can be called from UI thread. |callback| is run on the calling thread. | 383 // Can be called from UI thread. |callback| is run on the calling thread. |
384 void RemoveEntryFromDirectory(const FilePath& dir_path, | 384 void RemoveEntryFromDirectory(const FilePath& dir_path, |
385 const FilePathUpdateCallback& callback, | 385 const FileMoveCallback& callback, |
386 GDataFileError error, | 386 GDataFileError error, |
387 const FilePath& file_path); | 387 const FilePath& file_path); |
388 | 388 |
389 // Removes file under |file_path| from in-memory snapshot of the file system. | 389 // Removes file under |file_path| from in-memory snapshot of the file system. |
390 // |resource_id| contains the resource id of the removed file if it was a | 390 // |resource_id| contains the resource id of the removed file if it was a |
391 // file. | 391 // file. |
392 // Return PLATFORM_FILE_OK if successful. | 392 // Return PLATFORM_FILE_OK if successful. |
393 GDataFileError RemoveEntryFromGData(const FilePath& file_path, | 393 GDataFileError RemoveEntryFromGData(const FilePath& file_path, |
394 std::string* resource_id); | 394 std::string* resource_id); |
395 | 395 |
396 // A pass-through callback used for bridging from | 396 // A pass-through callback used for bridging from |
397 // FilePathUpdateCallback to FileOperationCallback. | 397 // FileMoveCallback to FileOperationCallback. |
398 void OnFilePathUpdated(const FileOperationCallback& cllback, | 398 void OnFilePathUpdated(const FileOperationCallback& cllback, |
399 GDataFileError error, | 399 GDataFileError error, |
400 const FilePath& file_path); | 400 const FilePath& file_path); |
401 | 401 |
402 // Invoked upon completion of MarkDirtyInCache initiated by OpenFile. Invokes | 402 // Invoked upon completion of MarkDirtyInCache initiated by OpenFile. Invokes |
403 // |callback| with |cache_file_path|, which is the path of the cache file | 403 // |callback| with |cache_file_path|, which is the path of the cache file |
404 // ready for modification. | 404 // ready for modification. |
405 // | 405 // |
406 // Must be called on UI thread. | 406 // Must be called on UI thread. |
407 void OnMarkDirtyInCacheCompleteForOpenFile( | 407 void OnMarkDirtyInCacheCompleteForOpenFile( |
408 const OpenFileCallback& callback, | 408 const OpenFileCallback& callback, |
409 GDataFileError error, | 409 GDataFileError error, |
410 const std::string& resource_id, | 410 const std::string& resource_id, |
411 const std::string& md5, | 411 const std::string& md5, |
412 const FilePath& cache_file_path); | 412 const FilePath& cache_file_path); |
413 | 413 |
414 // Callback for handling resource rename attempt. | |
415 void OnRenameResourceCompleted(const FilePath& file_path, | |
416 const FilePath::StringType& new_name, | |
417 const FilePathUpdateCallback& callback, | |
418 GDataErrorCode status, | |
419 const GURL& document_url); | |
420 | |
421 // Callback for handling document copy attempt. | 414 // Callback for handling document copy attempt. |
422 void OnCopyDocumentCompleted(const FilePath& dir_path, | 415 void OnCopyDocumentCompleted(const FilePath& dir_path, |
423 const FileOperationCallback& callback, | 416 const FileOperationCallback& callback, |
424 GDataErrorCode status, | 417 GDataErrorCode status, |
425 scoped_ptr<base::Value> data); | 418 scoped_ptr<base::Value> data); |
426 | 419 |
427 // Callback for handling an attempt to add a file or directory to another | 420 // Callback for handling an attempt to add a file or directory to another |
428 // directory. | 421 // directory. |
429 void OnAddEntryToDirectoryCompleted(const FileOperationCallback& callback, | 422 void OnAddEntryToDirectoryCompleted(const FileOperationCallback& callback, |
430 const FilePath& file_path, | 423 const FilePath& file_path, |
431 const FilePath& dir_path, | 424 const FilePath& dir_path, |
432 GDataErrorCode status, | 425 GDataErrorCode status, |
433 const GURL& document_url); | 426 const GURL& document_url); |
434 | 427 |
435 // Callback for handling an attempt to remove a file or directory from | |
436 // another directory. | |
437 void OnRemoveEntryFromDirectoryCompleted( | |
438 const FilePathUpdateCallback& callback, | |
439 const FilePath& file_path, | |
440 const FilePath& dir_path, | |
441 GDataErrorCode status, | |
442 const GURL& document_url); | |
443 | |
444 // Callback for handling account metadata fetch. | 428 // Callback for handling account metadata fetch. |
445 void OnGetAvailableSpace( | 429 void OnGetAvailableSpace( |
446 const GetAvailableSpaceCallback& callback, | 430 const GetAvailableSpaceCallback& callback, |
447 GDataErrorCode status, | 431 GDataErrorCode status, |
448 scoped_ptr<base::Value> data); | 432 scoped_ptr<base::Value> data); |
449 | 433 |
450 // Callback for handling document remove attempt. | 434 // Callback for handling document remove attempt. |
451 void OnRemovedDocument( | 435 void OnRemovedDocument( |
452 const FileOperationCallback& callback, | 436 const FileOperationCallback& callback, |
453 const FilePath& file_path, | 437 const FilePath& file_path, |
(...skipping 27 matching lines...) Expand all Loading... |
481 const GURL& content_url, | 465 const GURL& content_url, |
482 const FilePath& downloaded_file_path, | 466 const FilePath& downloaded_file_path, |
483 bool* has_enough_space); | 467 bool* has_enough_space); |
484 | 468 |
485 // Callback for handling internal StoreToCache() calls after downloading | 469 // Callback for handling internal StoreToCache() calls after downloading |
486 // file content. | 470 // file content. |
487 void OnDownloadStoredToCache(GDataFileError error, | 471 void OnDownloadStoredToCache(GDataFileError error, |
488 const std::string& resource_id, | 472 const std::string& resource_id, |
489 const std::string& md5); | 473 const std::string& md5); |
490 | 474 |
491 // Renames a file or directory at |file_path| on in-memory snapshot | 475 // Callback for handling resource rename attempt. Renames a file or |
492 // of the file system. Returns PLATFORM_FILE_OK if successful. | 476 // directory at |file_path| on in-memory snapshot of the file system. |
493 GDataFileError RenameFileOnFilesystem( | 477 void RenameFileOnFileSystem(const FilePath& file_path, |
494 const FilePath& file_path, const FilePath::StringType& new_name, | 478 const FilePath::StringType& new_name, |
495 FilePath* updated_file_path); | 479 const FileMoveCallback& callback, |
| 480 GDataErrorCode status, |
| 481 const GURL& document_url); |
496 | 482 |
497 // Adds an |entry| to another directory at |dir_path| on in-memory snapshot | 483 // Callback for handling an attempt to remove a file or directory from |
498 // of the file system. Returns PLATFORM_FILE_OK if successful. | 484 // another directory. Removes a file or directory at |file_path| and moves it |
499 GDataFileError AddEntryToDirectoryOnFilesystem( | 485 // to root on in-memory snapshot of the file system. |
500 GDataEntry* entry, const FilePath& dir_path); | 486 void RemoveEntryFromDirectoryOnFileSystem( |
501 | 487 const FileMoveCallback& callback, |
502 // Removes a file or directory at |file_path| from another directory at | 488 const FilePath& file_path, |
503 // |dir_path| on in-memory snapshot of the file system. | 489 const FilePath& dir_path, |
504 // Returns PLATFORM_FILE_OK if successful. | 490 GDataErrorCode status, |
505 GDataFileError RemoveEntryFromDirectoryOnFilesystem( | 491 const GURL& document_url); |
506 const FilePath& file_path, const FilePath& dir_path, | |
507 FilePath* updated_file_path); | |
508 | 492 |
509 // Removes a file or directory under |file_path| from in-memory snapshot of | 493 // Removes a file or directory under |file_path| from in-memory snapshot of |
510 // the file system and the corresponding file from cache if it exists. | 494 // the file system and the corresponding file from cache if it exists. |
511 // Return PLATFORM_FILE_OK if successful. | 495 // Return PLATFORM_FILE_OK if successful. |
512 GDataFileError RemoveEntryFromFileSystem(const FilePath& file_path); | 496 GDataFileError RemoveEntryFromFileSystem(const FilePath& file_path); |
513 | 497 |
| 498 // Callback for GDataDirectoryService::MoveEntryToDirectory with |
| 499 // FileMoveCallback. |
| 500 void OnMoveEntryToDirectoryWithFileMoveCallback( |
| 501 const FileMoveCallback& callback, |
| 502 GDataFileError error, |
| 503 const FilePath& moved_file_path); |
| 504 |
| 505 // Callback for GDataDirectoryService::MoveEntryToDirectory with |
| 506 // FileOperationCallback. |
| 507 void OnMoveEntryToDirectoryWithFileOperationCallback( |
| 508 const FileOperationCallback& callback, |
| 509 GDataFileError error, |
| 510 const FilePath& moved_file_path); |
| 511 |
514 // Callback for GetEntryByResourceIdAsync. | 512 // Callback for GetEntryByResourceIdAsync. |
515 // Removes stale entry upon upload of file. | 513 // Removes stale entry upon upload of file. |
516 static void RemoveStaleEntryOnUpload(const std::string& resource_id, | 514 static void RemoveStaleEntryOnUpload(const std::string& resource_id, |
517 GDataDirectory* parent_dir, | 515 GDataDirectory* parent_dir, |
518 GDataEntry* existing_entry); | 516 GDataEntry* existing_entry); |
519 | 517 |
520 // Converts |entry_value| into GFileDocument instance and adds it | 518 // Converts |entry_value| into GFileDocument instance and adds it |
521 // to virtual file system at |directory_path|. | 519 // to virtual file system at |directory_path|. |
522 GDataFileError AddNewDirectory(const FilePath& directory_path, | 520 GDataFileError AddNewDirectory(const FilePath& directory_path, |
523 base::Value* entry_value); | 521 base::Value* entry_value); |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 // invalidate the weak pointers before any other members are destroyed. | 815 // invalidate the weak pointers before any other members are destroyed. |
818 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_; | 816 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_; |
819 // Unlike other classes, we need this as we need this to redirect a task | 817 // Unlike other classes, we need this as we need this to redirect a task |
820 // from IO thread to UI thread. | 818 // from IO thread to UI thread. |
821 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; | 819 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; |
822 }; | 820 }; |
823 | 821 |
824 } // namespace gdata | 822 } // namespace gdata |
825 | 823 |
826 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 824 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
OLD | NEW |