// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_DRIVE_SERVICE_DRIVE_SERVICE_INTERFACE_H_ #define COMPONENTS_DRIVE_SERVICE_DRIVE_SERVICE_INTERFACE_H_ #include <stdint.h> #include <memory> #include <string> #include "base/time/time.h" #include "google_apis/common/auth_service_interface.h" #include "google_apis/drive/drive_api_requests.h" #include "google_apis/drive/drive_base_requests.h" #include "google_apis/drive/drive_common_callbacks.h" #include "google_apis/gaia/core_account_id.h" namespace base { class Time; } namespace drive { // Observer interface for DriveServiceInterface. class DriveServiceObserver { … }; // Optional parameters for AddNewDirectory(). struct AddNewDirectoryOptions { … }; // Optional parameters for InitiateUploadNewFile() and // MultipartUploadNewFile(). struct UploadNewFileOptions { … }; // Optional parameters for InitiateUploadExistingFile() and // MultipartUploadExistingFile(). struct UploadExistingFileOptions { … }; // Interface where we define operations that can be sent in batch requests. class DriveServiceBatchOperationsInterface { … }; // Builder returned by DriveServiceInterface to build batch request. class BatchRequestConfiguratorInterface : public DriveServiceBatchOperationsInterface { … }; // This defines an interface for sharing by DriveService and MockDriveService // so that we can do testing of clients of DriveService. // // All functions must be called on UI thread. DriveService is built on top of // URLFetcher that runs on UI thread. class DriveServiceInterface : public DriveServiceBatchOperationsInterface { … }; } // namespace drive #endif // COMPONENTS_DRIVE_SERVICE_DRIVE_SERVICE_INTERFACE_H_