| 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 48043d69bcc80bfe75adc49ee2ef2236e87d00c3..5eb10baa594c6d6aab46ace1fda6f8295f67fd20 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() = 0;
|
| +
|
| + 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)>
|
| @@ -55,6 +67,9 @@ class DriveFileSyncClient : public base::NonThreadSafe,
|
| 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,
|
| @@ -150,6 +165,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;
|
| @@ -238,6 +256,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);
|
| };
|
|
|
|
|