Chromium Code Reviews| Index: chrome/browser/sync_file_system/drive_file_sync_client.h |
| diff --git a/chrome/browser/sync_file_system/drive_file_sync_client.h b/chrome/browser/sync_file_system/drive_file_sync_client.h |
| index e2b43f6f8b746caa12f6e5e12b4fe1689018c668..9ebddd8d9cf480de6d50289f3cbd181bf91b132d 100644 |
| --- a/chrome/browser/sync_file_system/drive_file_sync_client.h |
| +++ b/chrome/browser/sync_file_system/drive_file_sync_client.h |
| @@ -10,6 +10,7 @@ |
| #include "base/callback_forward.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "base/observer_list.h" |
| #include "base/threading/non_thread_safe.h" |
| #include "chrome/browser/google_apis/drive_service_interface.h" |
| #include "chrome/browser/google_apis/drive_upload_error.h" |
| @@ -25,10 +26,21 @@ class DriveUploaderInterface; |
| namespace sync_file_system { |
| +class DriveFileSyncClientObserver { |
| + public: |
| + DriveFileSyncClientObserver() {} |
| + virtual ~DriveFileSyncClientObserver() {} |
| + virtual void OnAuthenticated() {} |
|
kinuko
2012/11/30 06:26:50
I prefer leaving this pure virtual
nhiroki
2012/11/30 08:27:41
Done.
|
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(DriveFileSyncClientObserver); |
| +}; |
| + |
| // This class is responsible for talking to the Drive service to get and put |
| // Drive directories, files and metadata. |
| // This class is owned by DriveFileSyncService. |
| -class DriveFileSyncClient : public base::NonThreadSafe, |
| +class DriveFileSyncClient : public google_apis::DriveServiceObserver, |
| + public base::NonThreadSafe, |
| public base::SupportsWeakPtr<DriveFileSyncClient> { |
| public: |
| typedef base::Callback<void(google_apis::GDataErrorCode error)> |
| @@ -52,9 +64,19 @@ class DriveFileSyncClient : public base::NonThreadSafe, |
| scoped_ptr<google_apis::DocumentEntry> entry)> |
| DocumentEntryCallback; |
| + class Observer { |
| + public: |
| + Observer() {} |
| + virtual ~Observer() {} |
| + virtual void OnAuthenticated(); |
| + }; |
|
kinuko
2012/11/30 06:26:50
Not used?
nhiroki
2012/11/30 08:27:41
Done.
|
| + |
| explicit DriveFileSyncClient(Profile* profile); |
| virtual ~DriveFileSyncClient(); |
| + void AddObserver(DriveFileSyncClientObserver* observer); |
| + void RemoveObserver(DriveFileSyncClientObserver* observer); |
| + |
| static scoped_ptr<DriveFileSyncClient> CreateForTesting( |
| Profile* profile, |
| scoped_ptr<google_apis::DriveServiceInterface> drive_service, |
| @@ -145,6 +167,9 @@ class DriveFileSyncClient : public base::NonThreadSafe, |
| const std::string& remote_file_md5, |
| const GDataErrorCallback& callback); |
| + // DriveServiceObserver override. |
| + virtual void OnReadyToPerformOperations() OVERRIDE; |
| + |
| private: |
| friend class DriveFileSyncClientTest; |
| friend class DriveFileSyncServiceTest; |
| @@ -233,6 +258,8 @@ class DriveFileSyncClient : public base::NonThreadSafe, |
| scoped_ptr<google_apis::DriveServiceInterface> drive_service_; |
| scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader_; |
| + ObserverList<DriveFileSyncClientObserver> observers_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(DriveFileSyncClient); |
| }; |