Index: chrome/browser/chromeos/gdata/drive_api_service.h |
diff --git a/chrome/browser/chromeos/gdata/drive_api_service.h b/chrome/browser/chromeos/gdata/drive_api_service.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..27a5478b0e8d64ec74a96e7e610a2d7f07b34006 |
--- /dev/null |
+++ b/chrome/browser/chromeos/gdata/drive_api_service.h |
@@ -0,0 +1,120 @@ |
+// 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_DRIVE_API_SERVICE_H_ |
+#define CHROME_BROWSER_CHROMEOS_GDATA_DRIVE_API_SERVICE_H_ |
+ |
+#include <string> |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
+#include "chrome/browser/chromeos/gdata/documents_service_interface.h" |
+#include "chrome/browser/chromeos/gdata/gdata_operations.h" |
+#include "chrome/browser/chromeos/gdata/gdata_auth_service.h" |
+#include "chrome/browser/chromeos/gdata/gdata_errorcode.h" |
+ |
+class FilePath; |
+class GURL; |
+class Profile; |
+ |
+namespace gdata { |
+ |
+class GDataOperationRunner; |
+ |
+// This class provides documents feed service calls for Drive V2 API. |
+// Details of API call are abstracted in each operation class and this class |
+// works as a thin wrapper for the API. |
+class DriveAPIService : public DocumentsServiceInterface { |
+ public: |
+ // Instance is usually created by GDataSystemServiceFactory and owned by |
+ // GDataFileSystem. |
+ DriveAPIService(); |
+ virtual ~DriveAPIService(); |
+ |
+ // DocumentsServiceInterface Overrides |
+ virtual void Initialize(Profile* profile) OVERRIDE; |
+ virtual GDataOperationRegistry* 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: |
+ // Fetches a changelist from |url| with |start_changestamp|, using Drive V2 |
+ // API. If this URL is empty the call will use the default URL. Specify |url| |
+ // when pagenated request should be issued. |
+ // |start_changestamp| specifies the starting point of change list or 0 if |
+ // all changes are necessary. |
+ // Upon completion, invokes |callback| with results on calling thread. |
+ virtual void GetChangelist(const GURL& url, |
+ int64 start_changestamp, |
+ const GetDataCallback& callback); |
+ |
+ // Fetches a filelist from |url| with |search_query|, using Drive V2 API. If |
+ // this URL is empty the call will use the default URL. Specify |url| when |
+ // pagenated request should be issued. |
+ // |search_query| specifies query string, whose syntax is described at |
+ // https://developers.google.com/drive/search-parameters |
+ virtual void GetFilelist(const GURL& url, |
+ const std::string& search_query, |
+ const GetDataCallback& callback); |
+ |
+ Profile* profile_; |
+ scoped_ptr<GDataOperationRunner> runner_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DriveAPIService); |
+}; |
+ |
+} // namespace gdata |
+ |
+#endif // CHROME_BROWSER_CHROMEOS_GDATA_DRIVE_API_SERVICE_H_ |