| // Copyright 2014 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 COMPONENTS_DRIVE_FILE_SYSTEM_OPERATION_DELEGATE_H_ | 
 | #define COMPONENTS_DRIVE_FILE_SYSTEM_OPERATION_DELEGATE_H_ | 
 |  | 
 | #include "components/drive/file_errors.h" | 
 |  | 
 | namespace base { | 
 | class FilePath; | 
 | } | 
 |  | 
 | namespace drive { | 
 |  | 
 | struct ClientContext; | 
 | class FileChange; | 
 |  | 
 | namespace file_system { | 
 |  | 
 | // Error type of sync client. | 
 | // Keep it synced with "DriveSyncErrorType" in file_manager_private.idl. | 
 | enum DriveSyncErrorType { | 
 |   // Request to delete a file without permission. | 
 |   DRIVE_SYNC_ERROR_DELETE_WITHOUT_PERMISSION, | 
 |   // Google Drive is temporary unavailable. | 
 |   DRIVE_SYNC_ERROR_SERVICE_UNAVAILABLE, | 
 |   // There is no server space to sync a file. | 
 |   DRIVE_SYNC_ERROR_NO_SERVER_SPACE, | 
 |   // Errors other than above ones. No fallback is provided for the error. | 
 |   DRIVE_SYNC_ERROR_MISC, | 
 | }; | 
 |  | 
 | // Passes notifications from Drive operations back to the file system. | 
 | class OperationDelegate { | 
 |  public: | 
 |   // Sent when a content of a directory has been changed. | 
 |   // |directory_path| is a virtual directory path representing the | 
 |   // changed directory. | 
 |   virtual void OnFileChangedByOperation(const FileChange& changed_files) {} | 
 |  | 
 |   // Sent when an entry is updated and sync is needed. The passed |context| is | 
 |   // used for syncing. | 
 |   virtual void OnEntryUpdatedByOperation(const ClientContext& context, | 
 |                                          const std::string& local_id) {} | 
 |  | 
 |   // Sent when a specific drive sync error occurred. | 
 |   // |local_id| is the local ID of the resource entry. | 
 |   virtual void OnDriveSyncError(DriveSyncErrorType type, | 
 |                                 const std::string& local_id) {} | 
 |  | 
 |   // Waits for the sync task to complete and runs the callback. | 
 |   // Returns false if no task is found for the spcecified ID. | 
 |   virtual bool WaitForSyncComplete(const std::string& local_id, | 
 |                                    const FileOperationCallback& callback); | 
 | }; | 
 |  | 
 | }  // namespace file_system | 
 | }  // namespace drive | 
 |  | 
 | #endif  // COMPONENTS_DRIVE_FILE_SYSTEM_OPERATION_DELEGATE_H_ |