// 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_