Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync_file_system / drive_backend / drive_service_on_worker.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_ON_WORKER_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_ON_WORKER_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/weak_ptr.h"
10 #include "base/sequence_checker.h"
11 #include "chrome/browser/drive/drive_service_interface.h"
12
13 namespace base {
14 class SingleThreadTaskRunner;
15 class SequencedTaskRunner;
16 }
17
18 namespace sync_file_system {
19 namespace drive_backend {
20
21 class DriveServiceWrapper;
22
23 // This class wraps a part of DriveServiceInterface class to post actual
24 // tasks to DriveServiceWrapper which lives in another thread.
25 // Each method wraps corresponding name method of DriveServiceInterface.
26 // See comments in drive_service_interface.h for details.
27 class DriveServiceOnWorker : public drive::DriveServiceInterface {
28  public:
29   DriveServiceOnWorker(
30       const base::WeakPtr<DriveServiceWrapper>& wrapper,
31       base::SingleThreadTaskRunner* ui_task_runner,
32       base::SequencedTaskRunner* worker_task_runner);
33   ~DriveServiceOnWorker() override;
34
35   google_apis::CancelCallback AddNewDirectory(
36       const std::string& parent_resource_id,
37       const std::string& directory_title,
38       const AddNewDirectoryOptions& options,
39       const google_apis::FileResourceCallback& callback) override;
40
41   google_apis::CancelCallback DeleteResource(
42       const std::string& resource_id,
43       const std::string& etag,
44       const google_apis::EntryActionCallback& callback) override;
45
46   google_apis::CancelCallback DownloadFile(
47       const base::FilePath& local_cache_path,
48       const std::string& resource_id,
49       const google_apis::DownloadActionCallback& download_action_callback,
50       const google_apis::GetContentCallback& get_content_callback,
51       const google_apis::ProgressCallback& progress_callback) override;
52
53   google_apis::CancelCallback GetAboutResource(
54       const google_apis::AboutResourceCallback& callback) override;
55
56   google_apis::CancelCallback GetChangeList(
57       int64 start_changestamp,
58       const google_apis::ChangeListCallback& callback) override;
59
60   google_apis::CancelCallback GetRemainingChangeList(
61       const GURL& next_link,
62       const google_apis::ChangeListCallback& callback) override;
63
64   std::string GetRootResourceId() const override;
65
66   google_apis::CancelCallback GetRemainingFileList(
67       const GURL& next_link,
68       const google_apis::FileListCallback& callback) override;
69
70   google_apis::CancelCallback GetFileResource(
71       const std::string& resource_id,
72       const google_apis::FileResourceCallback& callback) override;
73
74   google_apis::CancelCallback GetFileListInDirectory(
75       const std::string& directory_resource_id,
76       const google_apis::FileListCallback& callback) override;
77
78   google_apis::CancelCallback RemoveResourceFromDirectory(
79       const std::string& parent_resource_id,
80       const std::string& resource_id,
81       const google_apis::EntryActionCallback& callback) override;
82
83   google_apis::CancelCallback SearchByTitle(
84       const std::string& title,
85       const std::string& directory_resource_id,
86       const google_apis::FileListCallback& callback) override;
87
88   bool HasRefreshToken() const override;
89
90   // Following virtual methods are expected not to be accessed at all.
91   void Initialize(const std::string& account_id) override;
92   void AddObserver(drive::DriveServiceObserver* observer) override;
93   void RemoveObserver(drive::DriveServiceObserver* observer) override;
94   bool CanSendRequest() const override;
95   bool HasAccessToken() const override;
96   void RequestAccessToken(
97       const google_apis::AuthStatusCallback& callback) override;
98   void ClearAccessToken() override;
99   void ClearRefreshToken() override;
100   google_apis::CancelCallback GetAllFileList(
101       const google_apis::FileListCallback& callback) override;
102   google_apis::CancelCallback Search(
103       const std::string& search_query,
104       const google_apis::FileListCallback& callback) override;
105   google_apis::CancelCallback GetShareUrl(
106       const std::string& resource_id,
107       const GURL& embed_origin,
108       const google_apis::GetShareUrlCallback& callback) override;
109   google_apis::CancelCallback GetAppList(
110       const google_apis::AppListCallback& callback) override;
111   google_apis::CancelCallback TrashResource(
112       const std::string& resource_id,
113       const google_apis::EntryActionCallback& callback) override;
114   google_apis::CancelCallback CopyResource(
115       const std::string& resource_id,
116       const std::string& parent_resource_id,
117       const std::string& new_title,
118       const base::Time& last_modified,
119       const google_apis::FileResourceCallback& callback) override;
120   google_apis::CancelCallback UpdateResource(
121       const std::string& resource_id,
122       const std::string& parent_resource_id,
123       const std::string& new_title,
124       const base::Time& last_modified,
125       const base::Time& last_viewed_by_me,
126       const google_apis::FileResourceCallback& callback) override;
127   google_apis::CancelCallback AddResourceToDirectory(
128       const std::string& parent_resource_id,
129       const std::string& resource_id,
130       const google_apis::EntryActionCallback& callback) override;
131   google_apis::CancelCallback InitiateUploadNewFile(
132       const std::string& content_type,
133       int64 content_length,
134       const std::string& parent_resource_id,
135       const std::string& title,
136       const InitiateUploadNewFileOptions& options,
137       const google_apis::InitiateUploadCallback& callback) override;
138   google_apis::CancelCallback InitiateUploadExistingFile(
139       const std::string& content_type,
140       int64 content_length,
141       const std::string& resource_id,
142       const InitiateUploadExistingFileOptions& options,
143       const google_apis::InitiateUploadCallback& callback) override;
144   google_apis::CancelCallback ResumeUpload(
145       const GURL& upload_url,
146       int64 start_position,
147       int64 end_position,
148       int64 content_length,
149       const std::string& content_type,
150       const base::FilePath& local_file_path,
151       const google_apis::drive::UploadRangeCallback& callback,
152       const google_apis::ProgressCallback& progress_callback) override;
153   google_apis::CancelCallback GetUploadStatus(
154       const GURL& upload_url,
155       int64 content_length,
156       const google_apis::drive::UploadRangeCallback& callback) override;
157   google_apis::CancelCallback AuthorizeApp(
158       const std::string& resource_id,
159       const std::string& app_id,
160       const google_apis::AuthorizeAppCallback& callback) override;
161   google_apis::CancelCallback UninstallApp(
162       const std::string& app_id,
163       const google_apis::EntryActionCallback& callback) override;
164   google_apis::CancelCallback AddPermission(
165       const std::string& resource_id,
166       const std::string& email,
167       google_apis::drive::PermissionRole role,
168       const google_apis::EntryActionCallback& callback) override;
169
170  private:
171   base::WeakPtr<DriveServiceWrapper> wrapper_;
172   scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
173   scoped_refptr<base::SequencedTaskRunner> worker_task_runner_;
174
175   base::SequenceChecker sequence_checker_;
176
177   DISALLOW_COPY_AND_ASSIGN(DriveServiceOnWorker);
178 };
179
180 }  // namespace drive_backend
181 }  // namespace sync_file_system
182
183 #endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_ON_WORKER_H_