| // 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_GDATA_GDATA_WAPI_SERVICE_H_ |
| #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_WAPI_SERVICE_H_ |
| |
| #include <string> |
| |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/weak_ptr.h" |
| #include "chrome/browser/chromeos/gdata/auth_service.h" |
| #include "chrome/browser/chromeos/gdata/drive_service_interface.h" |
| #include "chrome/browser/chromeos/gdata/gdata_operations.h" |
| |
| class FilePath; |
| class GURL; |
| class Profile; |
| |
| namespace gdata { |
| |
| class OperationRunner; |
| |
| // This class provides documents feed service calls for WAPI (codename for |
| // DocumentsList API). |
| // Details of API call are abstracted in each operation class and this class |
| // works as a thin wrapper for the API. |
| class GDataWapiService : public DriveServiceInterface { |
| public: |
| // Instance is usually created by GDataSystemServiceFactory and owned by |
| // GDataFileSystem. |
| GDataWapiService(); |
| virtual ~GDataWapiService(); |
| |
| AuthService* auth_service_for_testing(); |
| |
| // DriveServiceInterface Overrides |
| virtual void Initialize(Profile* profile) OVERRIDE; |
| virtual OperationRegistry* operation_registry() const OVERRIDE; |
| virtual void CancelAll() OVERRIDE; |
| virtual void Authenticate(const AuthStatusCallback& callback) OVERRIDE; |
| virtual bool HasAccessToken() const OVERRIDE; |
| virtual bool HasRefreshToken() const OVERRIDE; |
| virtual void GetDocuments(const GURL& feed_url, |
| int64 start_changestamp, |
| const std::string& search_query, |
| const std::string& directory_resource_id, |
| const GetDataCallback& callback) OVERRIDE; |
| virtual void GetDocumentEntry(const std::string& resource_id, |
| const GetDataCallback& callback) OVERRIDE; |
| |
| virtual void GetAccountMetadata(const GetDataCallback& callback) OVERRIDE; |
| virtual void GetApplicationInfo(const GetDataCallback& callback) OVERRIDE; |
| virtual void DeleteDocument(const GURL& document_url, |
| const EntryActionCallback& callback) OVERRIDE; |
| virtual void DownloadDocument( |
| const FilePath& virtual_path, |
| const FilePath& local_cache_path, |
| const GURL& content_url, |
| DocumentExportFormat format, |
| const DownloadActionCallback& callback) OVERRIDE; |
| virtual void DownloadFile( |
| const FilePath& virtual_path, |
| const FilePath& local_cache_path, |
| const GURL& content_url, |
| const DownloadActionCallback& download_action_callback, |
| const GetContentCallback& get_content_callback) OVERRIDE; |
| virtual void CopyDocument(const std::string& resource_id, |
| const FilePath::StringType& new_name, |
| const GetDataCallback& callback) OVERRIDE; |
| virtual void RenameResource(const GURL& document_url, |
| const FilePath::StringType& new_name, |
| const EntryActionCallback& callback) OVERRIDE; |
| virtual void AddResourceToDirectory( |
| const GURL& parent_content_url, |
| const GURL& resource_url, |
| const EntryActionCallback& callback) OVERRIDE; |
| virtual void RemoveResourceFromDirectory( |
| const GURL& parent_content_url, |
| const GURL& resource_url, |
| const std::string& resource_id, |
| const EntryActionCallback& callback) OVERRIDE; |
| virtual void CreateDirectory(const GURL& parent_content_url, |
| const FilePath::StringType& directory_name, |
| const GetDataCallback& callback) OVERRIDE; |
| virtual void InitiateUpload(const InitiateUploadParams& params, |
| const InitiateUploadCallback& callback) OVERRIDE; |
| virtual void ResumeUpload(const ResumeUploadParams& params, |
| const ResumeUploadCallback& callback) OVERRIDE; |
| virtual void AuthorizeApp(const GURL& resource_url, |
| const std::string& app_id, |
| const GetDataCallback& callback) OVERRIDE; |
| |
| private: |
| Profile* profile_; |
| |
| scoped_ptr<OperationRunner> runner_; |
| |
| DISALLOW_COPY_AND_ASSIGN(GDataWapiService); |
| }; |
| |
| } // namespace gdata |
| |
| #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_WAPI_SERVICE_H_ |