Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/browser/chromeos/drive/resource_metadata.cc

Issue 16998003: Update CrOS to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/chromeos/drive/resource_metadata.h" 5 #include "chrome/browser/chromeos/drive/resource_metadata.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/sys_info.h" 9 #include "base/sys_info.h"
10 #include "chrome/browser/chromeos/drive/drive.pb.h" 10 #include "chrome/browser/chromeos/drive/drive.pb.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 storage_(new ResourceMetadataStorage(data_directory_path)), 132 storage_(new ResourceMetadataStorage(data_directory_path)),
133 weak_ptr_factory_(this) { 133 weak_ptr_factory_(this) {
134 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 134 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
135 } 135 }
136 136
137 void ResourceMetadata::Initialize(const FileOperationCallback& callback) { 137 void ResourceMetadata::Initialize(const FileOperationCallback& callback) {
138 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 138 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
139 DCHECK(!callback.is_null()); 139 DCHECK(!callback.is_null());
140 140
141 base::PostTaskAndReplyWithResult( 141 base::PostTaskAndReplyWithResult(
142 blocking_task_runner_, 142 blocking_task_runner_.get(),
143 FROM_HERE, 143 FROM_HERE,
144 base::Bind(&ResourceMetadata::InitializeOnBlockingPool, 144 base::Bind(&ResourceMetadata::InitializeOnBlockingPool,
145 base::Unretained(this)), 145 base::Unretained(this)),
146 callback); 146 callback);
147 } 147 }
148 148
149 void ResourceMetadata::Destroy() { 149 void ResourceMetadata::Destroy() {
150 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 150 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
151 151
152 weak_ptr_factory_.InvalidateWeakPtrs(); 152 weak_ptr_factory_.InvalidateWeakPtrs();
153 blocking_task_runner_->PostTask( 153 blocking_task_runner_->PostTask(
154 FROM_HERE, 154 FROM_HERE,
155 base::Bind(&ResourceMetadata::DestroyOnBlockingPool, 155 base::Bind(&ResourceMetadata::DestroyOnBlockingPool,
156 base::Unretained(this))); 156 base::Unretained(this)));
157 } 157 }
158 158
159 void ResourceMetadata::ResetOnUIThread(const FileOperationCallback& callback) { 159 void ResourceMetadata::ResetOnUIThread(const FileOperationCallback& callback) {
160 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 160 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
161 DCHECK(!callback.is_null()); 161 DCHECK(!callback.is_null());
162 162
163 base::PostTaskAndReplyWithResult( 163 base::PostTaskAndReplyWithResult(
164 blocking_task_runner_, 164 blocking_task_runner_.get(),
165 FROM_HERE, 165 FROM_HERE,
166 base::Bind(&ResourceMetadata::Reset, 166 base::Bind(&ResourceMetadata::Reset, base::Unretained(this)),
167 base::Unretained(this)),
168 callback); 167 callback);
169 } 168 }
170 169
171 FileError ResourceMetadata::Reset() { 170 FileError ResourceMetadata::Reset() {
172 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 171 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
173 172
174 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_)) 173 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_))
175 return FILE_ERROR_NO_SPACE; 174 return FILE_ERROR_NO_SPACE;
176 175
177 if (!storage_->SetLargestChangestamp(0) || 176 if (!storage_->SetLargestChangestamp(0) ||
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 void ResourceMetadata::DestroyOnBlockingPool() { 224 void ResourceMetadata::DestroyOnBlockingPool() {
226 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 225 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
227 delete this; 226 delete this;
228 } 227 }
229 228
230 void ResourceMetadata::GetLargestChangestampOnUIThread( 229 void ResourceMetadata::GetLargestChangestampOnUIThread(
231 const GetChangestampCallback& callback) { 230 const GetChangestampCallback& callback) {
232 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 231 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
233 DCHECK(!callback.is_null()); 232 DCHECK(!callback.is_null());
234 base::PostTaskAndReplyWithResult( 233 base::PostTaskAndReplyWithResult(
235 blocking_task_runner_, 234 blocking_task_runner_.get(),
236 FROM_HERE, 235 FROM_HERE,
237 base::Bind(&ResourceMetadata::GetLargestChangestamp, 236 base::Bind(&ResourceMetadata::GetLargestChangestamp,
238 base::Unretained(this)), 237 base::Unretained(this)),
239 callback); 238 callback);
240 } 239 }
241 240
242 void ResourceMetadata::SetLargestChangestampOnUIThread( 241 void ResourceMetadata::SetLargestChangestampOnUIThread(
243 int64 value, 242 int64 value,
244 const FileOperationCallback& callback) { 243 const FileOperationCallback& callback) {
245 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 244 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
246 DCHECK(!callback.is_null()); 245 DCHECK(!callback.is_null());
247 base::PostTaskAndReplyWithResult( 246 base::PostTaskAndReplyWithResult(
248 blocking_task_runner_, 247 blocking_task_runner_.get(),
249 FROM_HERE, 248 FROM_HERE,
250 base::Bind(&ResourceMetadata::SetLargestChangestamp, 249 base::Bind(&ResourceMetadata::SetLargestChangestamp,
251 base::Unretained(this), 250 base::Unretained(this),
252 value), 251 value),
253 callback); 252 callback);
254 } 253 }
255 254
256 int64 ResourceMetadata::GetLargestChangestamp() { 255 int64 ResourceMetadata::GetLargestChangestamp() {
257 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 256 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
258 return storage_->GetLargestChangestamp(); 257 return storage_->GetLargestChangestamp();
259 } 258 }
260 259
261 FileError ResourceMetadata::SetLargestChangestamp(int64 value) { 260 FileError ResourceMetadata::SetLargestChangestamp(int64 value) {
262 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 261 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
263 262
264 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_)) 263 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_))
265 return FILE_ERROR_NO_SPACE; 264 return FILE_ERROR_NO_SPACE;
266 265
267 storage_->SetLargestChangestamp(value); 266 storage_->SetLargestChangestamp(value);
268 return FILE_ERROR_OK; 267 return FILE_ERROR_OK;
269 } 268 }
270 269
271 void ResourceMetadata::AddEntryOnUIThread(const ResourceEntry& entry, 270 void ResourceMetadata::AddEntryOnUIThread(const ResourceEntry& entry,
272 const FileMoveCallback& callback) { 271 const FileMoveCallback& callback) {
273 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
274 DCHECK(!callback.is_null()); 273 DCHECK(!callback.is_null());
275 274
276 PostFileMoveTask(blocking_task_runner_, 275 PostFileMoveTask(
277 base::Bind(&AddEntryWithFilePath, 276 blocking_task_runner_.get(),
278 base::Unretained(this), 277 base::Bind(&AddEntryWithFilePath, base::Unretained(this), entry),
279 entry), 278 callback);
280 callback);
281 } 279 }
282 280
283 FileError ResourceMetadata::AddEntry(const ResourceEntry& entry) { 281 FileError ResourceMetadata::AddEntry(const ResourceEntry& entry) {
284 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 282 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
285 283
286 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_)) 284 if (!EnoughDiskSpaceIsAvailableForDBOperation(data_directory_path_))
287 return FILE_ERROR_NO_SPACE; 285 return FILE_ERROR_NO_SPACE;
288 286
289 scoped_ptr<ResourceEntry> existing_entry = 287 scoped_ptr<ResourceEntry> existing_entry =
290 storage_->GetEntry(entry.resource_id()); 288 storage_->GetEntry(entry.resource_id());
(...skipping 11 matching lines...) Expand all
302 return FILE_ERROR_OK; 300 return FILE_ERROR_OK;
303 } 301 }
304 302
305 void ResourceMetadata::MoveEntryToDirectoryOnUIThread( 303 void ResourceMetadata::MoveEntryToDirectoryOnUIThread(
306 const base::FilePath& file_path, 304 const base::FilePath& file_path,
307 const base::FilePath& directory_path, 305 const base::FilePath& directory_path,
308 const FileMoveCallback& callback) { 306 const FileMoveCallback& callback) {
309 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 307 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
310 DCHECK(!callback.is_null()); 308 DCHECK(!callback.is_null());
311 309
312 PostFileMoveTask(blocking_task_runner_, 310 PostFileMoveTask(blocking_task_runner_.get(),
313 base::Bind(&ResourceMetadata::MoveEntryToDirectory, 311 base::Bind(&ResourceMetadata::MoveEntryToDirectory,
314 base::Unretained(this), 312 base::Unretained(this),
315 file_path, 313 file_path,
316 directory_path), 314 directory_path),
317 callback); 315 callback);
318 } 316 }
319 317
320 void ResourceMetadata::RenameEntryOnUIThread(const base::FilePath& file_path, 318 void ResourceMetadata::RenameEntryOnUIThread(const base::FilePath& file_path,
321 const std::string& new_name, 319 const std::string& new_name,
322 const FileMoveCallback& callback) { 320 const FileMoveCallback& callback) {
323 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 321 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
324 DCHECK(!callback.is_null()); 322 DCHECK(!callback.is_null());
325 323
326 PostFileMoveTask(blocking_task_runner_, 324 PostFileMoveTask(blocking_task_runner_.get(),
327 base::Bind(&ResourceMetadata::RenameEntry, 325 base::Bind(&ResourceMetadata::RenameEntry,
328 base::Unretained(this), 326 base::Unretained(this),
329 file_path, 327 file_path,
330 new_name), 328 new_name),
331 callback); 329 callback);
332 } 330 }
333 331
334 FileError ResourceMetadata::RemoveEntry(const std::string& resource_id) { 332 FileError ResourceMetadata::RemoveEntry(const std::string& resource_id) {
335 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 333 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
336 334
(...skipping 15 matching lines...) Expand all
352 350
353 void ResourceMetadata::GetResourceEntryByIdOnUIThread( 351 void ResourceMetadata::GetResourceEntryByIdOnUIThread(
354 const std::string& resource_id, 352 const std::string& resource_id,
355 const GetResourceEntryCallback& callback) { 353 const GetResourceEntryCallback& callback) {
356 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 354 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
357 DCHECK(!callback.is_null()); 355 DCHECK(!callback.is_null());
358 356
359 scoped_ptr<ResourceEntry> entry(new ResourceEntry); 357 scoped_ptr<ResourceEntry> entry(new ResourceEntry);
360 ResourceEntry* entry_ptr = entry.get(); 358 ResourceEntry* entry_ptr = entry.get();
361 base::PostTaskAndReplyWithResult( 359 base::PostTaskAndReplyWithResult(
362 blocking_task_runner_, 360 blocking_task_runner_.get(),
363 FROM_HERE, 361 FROM_HERE,
364 base::Bind(&ResourceMetadata::GetResourceEntryById, 362 base::Bind(&ResourceMetadata::GetResourceEntryById,
365 base::Unretained(this), 363 base::Unretained(this),
366 resource_id, 364 resource_id,
367 entry_ptr), 365 entry_ptr),
368 base::Bind(&RunGetResourceEntryCallback, 366 base::Bind(&RunGetResourceEntryCallback, callback, base::Passed(&entry)));
369 callback,
370 base::Passed(&entry)));
371 } 367 }
372 368
373 FileError ResourceMetadata::GetResourceEntryById( 369 FileError ResourceMetadata::GetResourceEntryById(
374 const std::string& resource_id, 370 const std::string& resource_id,
375 ResourceEntry* out_entry) { 371 ResourceEntry* out_entry) {
376 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 372 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
377 DCHECK(!resource_id.empty()); 373 DCHECK(!resource_id.empty());
378 DCHECK(out_entry); 374 DCHECK(out_entry);
379 375
380 scoped_ptr<ResourceEntry> entry = storage_->GetEntry(resource_id); 376 scoped_ptr<ResourceEntry> entry = storage_->GetEntry(resource_id);
381 if (!entry) 377 if (!entry)
382 return FILE_ERROR_NOT_FOUND; 378 return FILE_ERROR_NOT_FOUND;
383 379
384 out_entry->Swap(entry.get()); 380 out_entry->Swap(entry.get());
385 return FILE_ERROR_OK; 381 return FILE_ERROR_OK;
386 } 382 }
387 383
388 void ResourceMetadata::GetResourceEntryByPathOnUIThread( 384 void ResourceMetadata::GetResourceEntryByPathOnUIThread(
389 const base::FilePath& file_path, 385 const base::FilePath& file_path,
390 const GetResourceEntryCallback& callback) { 386 const GetResourceEntryCallback& callback) {
391 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 387 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
392 DCHECK(!callback.is_null()); 388 DCHECK(!callback.is_null());
393 389
394 scoped_ptr<ResourceEntry> entry(new ResourceEntry); 390 scoped_ptr<ResourceEntry> entry(new ResourceEntry);
395 ResourceEntry* entry_ptr = entry.get(); 391 ResourceEntry* entry_ptr = entry.get();
396 base::PostTaskAndReplyWithResult( 392 base::PostTaskAndReplyWithResult(
397 blocking_task_runner_, 393 blocking_task_runner_.get(),
398 FROM_HERE, 394 FROM_HERE,
399 base::Bind(&ResourceMetadata::GetResourceEntryByPath, 395 base::Bind(&ResourceMetadata::GetResourceEntryByPath,
400 base::Unretained(this), 396 base::Unretained(this),
401 file_path, 397 file_path,
402 entry_ptr), 398 entry_ptr),
403 base::Bind(&RunGetResourceEntryCallback, 399 base::Bind(&RunGetResourceEntryCallback, callback, base::Passed(&entry)));
404 callback,
405 base::Passed(&entry)));
406 } 400 }
407 401
408 FileError ResourceMetadata::GetResourceEntryByPath(const base::FilePath& path, 402 FileError ResourceMetadata::GetResourceEntryByPath(const base::FilePath& path,
409 ResourceEntry* out_entry) { 403 ResourceEntry* out_entry) {
410 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 404 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
411 DCHECK(out_entry); 405 DCHECK(out_entry);
412 406
413 scoped_ptr<ResourceEntry> entry = FindEntryByPathSync(path); 407 scoped_ptr<ResourceEntry> entry = FindEntryByPathSync(path);
414 if (!entry) 408 if (!entry)
415 return FILE_ERROR_NOT_FOUND; 409 return FILE_ERROR_NOT_FOUND;
416 410
417 *out_entry = *entry; 411 *out_entry = *entry;
418 return FILE_ERROR_OK; 412 return FILE_ERROR_OK;
419 } 413 }
420 414
421 void ResourceMetadata::ReadDirectoryByPathOnUIThread( 415 void ResourceMetadata::ReadDirectoryByPathOnUIThread(
422 const base::FilePath& file_path, 416 const base::FilePath& file_path,
423 const ReadDirectoryCallback& callback) { 417 const ReadDirectoryCallback& callback) {
424 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 418 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
425 DCHECK(!callback.is_null()); 419 DCHECK(!callback.is_null());
426 420
427 scoped_ptr<ResourceEntryVector> entries(new ResourceEntryVector); 421 scoped_ptr<ResourceEntryVector> entries(new ResourceEntryVector);
428 ResourceEntryVector* entries_ptr = entries.get(); 422 ResourceEntryVector* entries_ptr = entries.get();
429 base::PostTaskAndReplyWithResult( 423 base::PostTaskAndReplyWithResult(
430 blocking_task_runner_, 424 blocking_task_runner_.get(),
431 FROM_HERE, 425 FROM_HERE,
432 base::Bind(&ResourceMetadata::ReadDirectoryByPath, 426 base::Bind(&ResourceMetadata::ReadDirectoryByPath,
433 base::Unretained(this), 427 base::Unretained(this),
434 file_path, 428 file_path,
435 entries_ptr), 429 entries_ptr),
436 base::Bind(&RunReadDirectoryCallback, 430 base::Bind(&RunReadDirectoryCallback, callback, base::Passed(&entries)));
437 callback,
438 base::Passed(&entries)));
439 } 431 }
440 432
441 FileError ResourceMetadata::ReadDirectoryByPath( 433 FileError ResourceMetadata::ReadDirectoryByPath(
442 const base::FilePath& path, 434 const base::FilePath& path,
443 ResourceEntryVector* out_entries) { 435 ResourceEntryVector* out_entries) {
444 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); 436 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread());
445 DCHECK(out_entries); 437 DCHECK(out_entries);
446 438
447 scoped_ptr<ResourceEntry> entry = FindEntryByPathSync(path); 439 scoped_ptr<ResourceEntry> entry = FindEntryByPathSync(path);
448 if (!entry) 440 if (!entry)
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 return FILE_ERROR_OK; 486 return FILE_ERROR_OK;
495 } 487 }
496 488
497 void ResourceMetadata::RefreshDirectoryOnUIThread( 489 void ResourceMetadata::RefreshDirectoryOnUIThread(
498 const DirectoryFetchInfo& directory_fetch_info, 490 const DirectoryFetchInfo& directory_fetch_info,
499 const ResourceEntryMap& entry_map, 491 const ResourceEntryMap& entry_map,
500 const FileMoveCallback& callback) { 492 const FileMoveCallback& callback) {
501 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 493 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
502 DCHECK(!callback.is_null()); 494 DCHECK(!callback.is_null());
503 495
504 PostFileMoveTask(blocking_task_runner_, 496 PostFileMoveTask(blocking_task_runner_.get(),
505 base::Bind(&ResourceMetadata::RefreshDirectory, 497 base::Bind(&ResourceMetadata::RefreshDirectory,
506 base::Unretained(this), 498 base::Unretained(this),
507 directory_fetch_info, 499 directory_fetch_info,
508 entry_map), 500 entry_map),
509 callback); 501 callback);
510 } 502 }
511 503
512 void ResourceMetadata::GetChildDirectories( 504 void ResourceMetadata::GetChildDirectories(
513 const std::string& resource_id, 505 const std::string& resource_id,
514 std::set<base::FilePath>* child_directories) { 506 std::set<base::FilePath>* child_directories) {
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 for (size_t i = 0; i < children.size(); ++i) { 823 for (size_t i = 0; i < children.size(); ++i) {
832 if (!RemoveEntryRecursively(children[i])) 824 if (!RemoveEntryRecursively(children[i]))
833 return false; 825 return false;
834 } 826 }
835 } 827 }
836 return storage_->RemoveEntry(resource_id); 828 return storage_->RemoveEntry(resource_id);
837 } 829 }
838 830
839 } // namespace internal 831 } // namespace internal
840 } // namespace drive 832 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/local_file_reader.cc ('k') | chrome/browser/chromeos/drive/search_metadata.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698