OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sync_file_system/drive_file_sync_client.h" | 5 #include "chrome/browser/sync_file_system/drive_file_sync_client.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 return NULL; | 61 return NULL; |
62 } | 62 } |
63 | 63 |
64 } // namespace | 64 } // namespace |
65 | 65 |
66 DriveFileSyncClient::DriveFileSyncClient(Profile* profile) { | 66 DriveFileSyncClient::DriveFileSyncClient(Profile* profile) { |
67 drive_service_.reset(new google_apis::GDataWapiService( | 67 drive_service_.reset(new google_apis::GDataWapiService( |
68 GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), | 68 GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), |
69 "" /* custom_user_agent */)); | 69 "" /* custom_user_agent */)); |
70 drive_service_->Initialize(profile); | 70 drive_service_->Initialize(profile); |
| 71 drive_service_->AddObserver(this); |
71 | 72 |
72 drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get())); | 73 drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get())); |
73 } | 74 } |
74 | 75 |
75 scoped_ptr<DriveFileSyncClient> DriveFileSyncClient::CreateForTesting( | 76 scoped_ptr<DriveFileSyncClient> DriveFileSyncClient::CreateForTesting( |
76 Profile* profile, | 77 Profile* profile, |
77 scoped_ptr<google_apis::DriveServiceInterface> drive_service, | 78 scoped_ptr<google_apis::DriveServiceInterface> drive_service, |
78 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { | 79 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { |
79 return make_scoped_ptr(new DriveFileSyncClient( | 80 return make_scoped_ptr(new DriveFileSyncClient( |
80 profile, drive_service.Pass(), drive_uploader.Pass())); | 81 profile, drive_service.Pass(), drive_uploader.Pass())); |
81 } | 82 } |
82 | 83 |
83 DriveFileSyncClient::DriveFileSyncClient( | 84 DriveFileSyncClient::DriveFileSyncClient( |
84 Profile* profile, | 85 Profile* profile, |
85 scoped_ptr<google_apis::DriveServiceInterface> drive_service, | 86 scoped_ptr<google_apis::DriveServiceInterface> drive_service, |
86 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { | 87 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { |
87 drive_service_ = drive_service.Pass(); | 88 drive_service_ = drive_service.Pass(); |
88 drive_service_->Initialize(profile); | 89 drive_service_->Initialize(profile); |
| 90 drive_service_->AddObserver(this); |
89 | 91 |
90 drive_uploader_ = drive_uploader.Pass(); | 92 drive_uploader_ = drive_uploader.Pass(); |
91 } | 93 } |
92 | 94 |
93 DriveFileSyncClient::~DriveFileSyncClient() { | 95 DriveFileSyncClient::~DriveFileSyncClient() { |
94 DCHECK(CalledOnValidThread()); | 96 DCHECK(CalledOnValidThread()); |
| 97 drive_service_->RemoveObserver(this); |
95 drive_service_->CancelAll(); | 98 drive_service_->CancelAll(); |
96 } | 99 } |
97 | 100 |
| 101 void DriveFileSyncClient::AddObserver(DriveFileSyncClientObserver* observer) { |
| 102 DCHECK(CalledOnValidThread()); |
| 103 observers_.AddObserver(observer); |
| 104 } |
| 105 |
| 106 void DriveFileSyncClient::RemoveObserver( |
| 107 DriveFileSyncClientObserver* observer) { |
| 108 DCHECK(CalledOnValidThread()); |
| 109 observers_.RemoveObserver(observer); |
| 110 } |
| 111 |
98 void DriveFileSyncClient::GetDriveDirectoryForSyncRoot( | 112 void DriveFileSyncClient::GetDriveDirectoryForSyncRoot( |
99 const ResourceIdCallback& callback) { | 113 const ResourceIdCallback& callback) { |
100 DCHECK(CalledOnValidThread()); | 114 DCHECK(CalledOnValidThread()); |
101 | 115 |
102 std::string directory_name(kSyncRootDirectoryName); | 116 std::string directory_name(kSyncRootDirectoryName); |
103 SearchFilesInDirectory( | 117 SearchFilesInDirectory( |
104 kRootResourceId, | 118 kRootResourceId, |
105 FormatTitleQuery(directory_name), | 119 FormatTitleQuery(directory_name), |
106 base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), | 120 base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), |
107 kRootResourceId, directory_name, callback)); | 121 kRootResourceId, directory_name, callback)); |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 const GDataErrorCallback& callback) { | 363 const GDataErrorCallback& callback) { |
350 DCHECK(CalledOnValidThread()); | 364 DCHECK(CalledOnValidThread()); |
351 drive_service_->GetDocumentEntry( | 365 drive_service_->GetDocumentEntry( |
352 resource_id, | 366 resource_id, |
353 base::Bind(&DriveFileSyncClient::DidGetDocumentEntryData, | 367 base::Bind(&DriveFileSyncClient::DidGetDocumentEntryData, |
354 AsWeakPtr(), | 368 AsWeakPtr(), |
355 base::Bind(&DriveFileSyncClient::DeleteFileInternal, | 369 base::Bind(&DriveFileSyncClient::DeleteFileInternal, |
356 AsWeakPtr(), remote_file_md5, callback))); | 370 AsWeakPtr(), remote_file_md5, callback))); |
357 } | 371 } |
358 | 372 |
| 373 void DriveFileSyncClient::OnReadyToPerformOperations() { |
| 374 DCHECK(CalledOnValidThread()); |
| 375 FOR_EACH_OBSERVER(DriveFileSyncClientObserver, observers_, OnAuthenticated()); |
| 376 } |
| 377 |
359 void DriveFileSyncClient::DidGetDocumentFeedData( | 378 void DriveFileSyncClient::DidGetDocumentFeedData( |
360 const DocumentFeedCallback& callback, | 379 const DocumentFeedCallback& callback, |
361 google_apis::GDataErrorCode error, | 380 google_apis::GDataErrorCode error, |
362 scoped_ptr<base::Value> data) { | 381 scoped_ptr<base::Value> data) { |
363 DCHECK(CalledOnValidThread()); | 382 DCHECK(CalledOnValidThread()); |
364 | 383 |
365 if (error != google_apis::HTTP_SUCCESS) { | 384 if (error != google_apis::HTTP_SUCCESS) { |
366 callback.Run(error, scoped_ptr<google_apis::DocumentFeed>()); | 385 callback.Run(error, scoped_ptr<google_apis::DocumentFeed>()); |
367 return; | 386 return; |
368 } | 387 } |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 } | 617 } |
599 | 618 |
600 void DriveFileSyncClient::DidDeleteFile( | 619 void DriveFileSyncClient::DidDeleteFile( |
601 const GDataErrorCallback& callback, | 620 const GDataErrorCallback& callback, |
602 google_apis::GDataErrorCode error) { | 621 google_apis::GDataErrorCode error) { |
603 DCHECK(CalledOnValidThread()); | 622 DCHECK(CalledOnValidThread()); |
604 callback.Run(error); | 623 callback.Run(error); |
605 } | 624 } |
606 | 625 |
607 } // namespace sync_file_system | 626 } // namespace sync_file_system |
OLD | NEW |