blob: 8fd8a1c4070117c0d578f97fc1641eb08e2a8254 [file] [log] [blame]
// Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_OPERATION_OBSERVER_H_
#define CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_OPERATION_OBSERVER_H_
namespace base {
class FilePath;
}
namespace drive {
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,
// 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 OperationObserver {
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) = 0;
// Sent when an entry is updated and sync is needed.
virtual void OnEntryUpdatedByOperation(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) {}
};
} // namespace file_system
} // namespace drive
#endif // CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_OPERATION_OBSERVER_H_