OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "sync/internal_api/public/attachments/attachment_service_impl.h" | 5 #include "sync/internal_api/public/attachments/attachment_service_impl.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
| 8 #include <utility> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/macros.h" | 11 #include "base/macros.h" |
11 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
12 #include "base/thread_task_runner_handle.h" | 13 #include "base/thread_task_runner_handle.h" |
13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
14 #include "sync/api/attachments/attachment.h" | 15 #include "sync/api/attachments/attachment.h" |
15 #include "sync/internal_api/public/attachments/fake_attachment_downloader.h" | 16 #include "sync/internal_api/public/attachments/fake_attachment_downloader.h" |
16 #include "sync/internal_api/public/attachments/fake_attachment_uploader.h" | 17 #include "sync/internal_api/public/attachments/fake_attachment_uploader.h" |
17 | 18 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 } | 111 } |
111 } | 112 } |
112 | 113 |
113 AttachmentServiceImpl::AttachmentServiceImpl( | 114 AttachmentServiceImpl::AttachmentServiceImpl( |
114 scoped_ptr<AttachmentStoreForSync> attachment_store, | 115 scoped_ptr<AttachmentStoreForSync> attachment_store, |
115 scoped_ptr<AttachmentUploader> attachment_uploader, | 116 scoped_ptr<AttachmentUploader> attachment_uploader, |
116 scoped_ptr<AttachmentDownloader> attachment_downloader, | 117 scoped_ptr<AttachmentDownloader> attachment_downloader, |
117 Delegate* delegate, | 118 Delegate* delegate, |
118 const base::TimeDelta& initial_backoff_delay, | 119 const base::TimeDelta& initial_backoff_delay, |
119 const base::TimeDelta& max_backoff_delay) | 120 const base::TimeDelta& max_backoff_delay) |
120 : attachment_store_(attachment_store.Pass()), | 121 : attachment_store_(std::move(attachment_store)), |
121 attachment_uploader_(attachment_uploader.Pass()), | 122 attachment_uploader_(std::move(attachment_uploader)), |
122 attachment_downloader_(attachment_downloader.Pass()), | 123 attachment_downloader_(std::move(attachment_downloader)), |
123 delegate_(delegate), | 124 delegate_(delegate), |
124 weak_ptr_factory_(this) { | 125 weak_ptr_factory_(this) { |
125 DCHECK(CalledOnValidThread()); | 126 DCHECK(CalledOnValidThread()); |
126 DCHECK(attachment_store_.get()); | 127 DCHECK(attachment_store_.get()); |
127 | 128 |
128 // TODO(maniscalco): Observe network connectivity change events. When the | 129 // TODO(maniscalco): Observe network connectivity change events. When the |
129 // network becomes disconnected, consider suspending queue dispatch. When | 130 // network becomes disconnected, consider suspending queue dispatch. When |
130 // connectivity is restored, consider clearing any dispatch backoff (bug | 131 // connectivity is restored, consider clearing any dispatch backoff (bug |
131 // 411981). | 132 // 411981). |
132 upload_task_queue_.reset(new TaskQueue<AttachmentId>( | 133 upload_task_queue_.reset(new TaskQueue<AttachmentId>( |
(...skipping 14 matching lines...) Expand all Loading... |
147 scoped_ptr<syncer::AttachmentService> AttachmentServiceImpl::CreateForTest() { | 148 scoped_ptr<syncer::AttachmentService> AttachmentServiceImpl::CreateForTest() { |
148 scoped_ptr<syncer::AttachmentStore> attachment_store = | 149 scoped_ptr<syncer::AttachmentStore> attachment_store = |
149 AttachmentStore::CreateInMemoryStore(); | 150 AttachmentStore::CreateInMemoryStore(); |
150 scoped_ptr<AttachmentUploader> attachment_uploader( | 151 scoped_ptr<AttachmentUploader> attachment_uploader( |
151 new FakeAttachmentUploader); | 152 new FakeAttachmentUploader); |
152 scoped_ptr<AttachmentDownloader> attachment_downloader( | 153 scoped_ptr<AttachmentDownloader> attachment_downloader( |
153 new FakeAttachmentDownloader()); | 154 new FakeAttachmentDownloader()); |
154 scoped_ptr<syncer::AttachmentService> attachment_service( | 155 scoped_ptr<syncer::AttachmentService> attachment_service( |
155 new syncer::AttachmentServiceImpl( | 156 new syncer::AttachmentServiceImpl( |
156 attachment_store->CreateAttachmentStoreForSync(), | 157 attachment_store->CreateAttachmentStoreForSync(), |
157 attachment_uploader.Pass(), attachment_downloader.Pass(), NULL, | 158 std::move(attachment_uploader), std::move(attachment_downloader), |
158 base::TimeDelta(), base::TimeDelta())); | 159 NULL, base::TimeDelta(), base::TimeDelta())); |
159 return attachment_service.Pass(); | 160 return attachment_service; |
160 } | 161 } |
161 | 162 |
162 void AttachmentServiceImpl::GetOrDownloadAttachments( | 163 void AttachmentServiceImpl::GetOrDownloadAttachments( |
163 const AttachmentIdList& attachment_ids, | 164 const AttachmentIdList& attachment_ids, |
164 const GetOrDownloadCallback& callback) { | 165 const GetOrDownloadCallback& callback) { |
165 DCHECK(CalledOnValidThread()); | 166 DCHECK(CalledOnValidThread()); |
166 scoped_refptr<GetOrDownloadState> state( | 167 scoped_refptr<GetOrDownloadState> state( |
167 new GetOrDownloadState(attachment_ids, callback)); | 168 new GetOrDownloadState(attachment_ids, callback)); |
168 // SetModelTypeReference() makes attachments visible for model type. | 169 // SetModelTypeReference() makes attachments visible for model type. |
169 // Needed when attachment doesn't have model type reference, but still | 170 // Needed when attachment doesn't have model type reference, but still |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 AttachmentMap::const_iterator end = attachments->end(); | 321 AttachmentMap::const_iterator end = attachments->end(); |
321 for (; iter != end; ++iter) { | 322 for (; iter != end; ++iter) { |
322 attachment_uploader_->UploadAttachment( | 323 attachment_uploader_->UploadAttachment( |
323 iter->second, | 324 iter->second, |
324 base::Bind(&AttachmentServiceImpl::UploadDone, | 325 base::Bind(&AttachmentServiceImpl::UploadDone, |
325 weak_ptr_factory_.GetWeakPtr())); | 326 weak_ptr_factory_.GetWeakPtr())); |
326 } | 327 } |
327 } | 328 } |
328 | 329 |
329 void AttachmentServiceImpl::SetTimerForTest(scoped_ptr<base::Timer> timer) { | 330 void AttachmentServiceImpl::SetTimerForTest(scoped_ptr<base::Timer> timer) { |
330 upload_task_queue_->SetTimerForTest(timer.Pass()); | 331 upload_task_queue_->SetTimerForTest(std::move(timer)); |
331 } | 332 } |
332 | 333 |
333 } // namespace syncer | 334 } // namespace syncer |
OLD | NEW |