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

Side by Side Diff: chrome/browser/chromeos/gdata/drive_resource_metadata.cc

Issue 10877006: Rename GDataErrorCode to DriveErrorCode, GDataFileError to DriveFileError (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor local variable name fix. Created 8 years, 4 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/gdata/drive_resource_metadata.h" 5 #include "chrome/browser/chromeos/gdata/drive_resource_metadata.h"
6 6
7 #include <leveldb/db.h> 7 #include <leveldb/db.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 12 matching lines...) Expand all
23 namespace { 23 namespace {
24 24
25 // m: prefix for filesystem metadata db keys, version and largest_changestamp. 25 // m: prefix for filesystem metadata db keys, version and largest_changestamp.
26 // r: prefix for resource id db keys. 26 // r: prefix for resource id db keys.
27 const char kDBKeyLargestChangestamp[] = "m:largest_changestamp"; 27 const char kDBKeyLargestChangestamp[] = "m:largest_changestamp";
28 const char kDBKeyVersion[] = "m:version"; 28 const char kDBKeyVersion[] = "m:version";
29 const char kDBKeyResourceIdPrefix[] = "r:"; 29 const char kDBKeyResourceIdPrefix[] = "r:";
30 30
31 } // namespace 31 } // namespace
32 32
33 EntryInfoResult::EntryInfoResult() : error(GDATA_FILE_ERROR_FAILED) { 33 EntryInfoResult::EntryInfoResult() : error(DRIVE_FILE_ERROR_FAILED) {
34 } 34 }
35 35
36 EntryInfoResult::~EntryInfoResult() { 36 EntryInfoResult::~EntryInfoResult() {
37 } 37 }
38 38
39 EntryInfoPairResult::EntryInfoPairResult() { 39 EntryInfoPairResult::EntryInfoPairResult() {
40 } 40 }
41 41
42 EntryInfoPairResult::~EntryInfoPairResult() { 42 EntryInfoPairResult::~EntryInfoPairResult() {
43 } 43 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 DriveDirectory* directory, 223 DriveDirectory* directory,
224 DriveEntry* new_entry, 224 DriveEntry* new_entry,
225 const FileMoveCallback& callback) { 225 const FileMoveCallback& callback) {
226 DCHECK(directory); 226 DCHECK(directory);
227 DCHECK(new_entry); 227 DCHECK(new_entry);
228 DCHECK(!callback.is_null()); 228 DCHECK(!callback.is_null());
229 229
230 directory->AddEntry(new_entry); 230 directory->AddEntry(new_entry);
231 DVLOG(1) << "AddEntryToDirectory " << new_entry->GetFilePath().value(); 231 DVLOG(1) << "AddEntryToDirectory " << new_entry->GetFilePath().value();
232 base::MessageLoopProxy::current()->PostTask(FROM_HERE, 232 base::MessageLoopProxy::current()->PostTask(FROM_HERE,
233 base::Bind(callback, GDATA_FILE_OK, new_entry->GetFilePath())); 233 base::Bind(callback, DRIVE_FILE_OK, new_entry->GetFilePath()));
234 } 234 }
235 235
236 void DriveResourceMetadata::MoveEntryToDirectory( 236 void DriveResourceMetadata::MoveEntryToDirectory(
237 const FilePath& directory_path, 237 const FilePath& directory_path,
238 DriveEntry* entry, 238 DriveEntry* entry,
239 const FileMoveCallback& callback) { 239 const FileMoveCallback& callback) {
240 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 240 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
241 DCHECK(entry); 241 DCHECK(entry);
242 DCHECK(!callback.is_null()); 242 DCHECK(!callback.is_null());
243 243
244 if (entry->parent()) 244 if (entry->parent())
245 entry->parent()->RemoveChild(entry); 245 entry->parent()->RemoveChild(entry);
246 246
247 DriveEntry* destination = FindEntryByPathSync(directory_path); 247 DriveEntry* destination = FindEntryByPathSync(directory_path);
248 FilePath moved_file_path; 248 FilePath moved_file_path;
249 GDataFileError error = GDATA_FILE_ERROR_FAILED; 249 DriveFileError error = DRIVE_FILE_ERROR_FAILED;
250 if (!destination) { 250 if (!destination) {
251 error = GDATA_FILE_ERROR_NOT_FOUND; 251 error = DRIVE_FILE_ERROR_NOT_FOUND;
252 } else if (!destination->AsDriveDirectory()) { 252 } else if (!destination->AsDriveDirectory()) {
253 error = GDATA_FILE_ERROR_NOT_A_DIRECTORY; 253 error = DRIVE_FILE_ERROR_NOT_A_DIRECTORY;
254 } else { 254 } else {
255 destination->AsDriveDirectory()->AddEntry(entry); 255 destination->AsDriveDirectory()->AddEntry(entry);
256 moved_file_path = entry->GetFilePath(); 256 moved_file_path = entry->GetFilePath();
257 error = GDATA_FILE_OK; 257 error = DRIVE_FILE_OK;
258 } 258 }
259 DVLOG(1) << "MoveEntryToDirectory " << moved_file_path.value(); 259 DVLOG(1) << "MoveEntryToDirectory " << moved_file_path.value();
260 base::MessageLoopProxy::current()->PostTask( 260 base::MessageLoopProxy::current()->PostTask(
261 FROM_HERE, base::Bind(callback, error, moved_file_path)); 261 FROM_HERE, base::Bind(callback, error, moved_file_path));
262 } 262 }
263 263
264 void DriveResourceMetadata::RemoveEntryFromParent( 264 void DriveResourceMetadata::RemoveEntryFromParent(
265 DriveEntry* entry, 265 DriveEntry* entry,
266 const FileMoveCallback& callback) { 266 const FileMoveCallback& callback) {
267 DriveDirectory* parent = entry->parent(); 267 DriveDirectory* parent = entry->parent();
268 DCHECK(parent); 268 DCHECK(parent);
269 DCHECK(!callback.is_null()); 269 DCHECK(!callback.is_null());
270 DVLOG(1) << "RemoveEntryFromParent " << entry->GetFilePath().value(); 270 DVLOG(1) << "RemoveEntryFromParent " << entry->GetFilePath().value();
271 271
272 parent->RemoveEntry(entry); 272 parent->RemoveEntry(entry);
273 base::MessageLoopProxy::current()->PostTask(FROM_HERE, 273 base::MessageLoopProxy::current()->PostTask(FROM_HERE,
274 base::Bind(callback, GDATA_FILE_OK, parent->GetFilePath())); 274 base::Bind(callback, DRIVE_FILE_OK, parent->GetFilePath()));
275 } 275 }
276 276
277 void DriveResourceMetadata::AddEntryToResourceMap(DriveEntry* entry) { 277 void DriveResourceMetadata::AddEntryToResourceMap(DriveEntry* entry) {
278 DVLOG(1) << "AddEntryToResourceMap " << entry->resource_id(); 278 DVLOG(1) << "AddEntryToResourceMap " << entry->resource_id();
279 DCHECK(!entry->resource_id().empty()); 279 DCHECK(!entry->resource_id().empty());
280 std::pair<ResourceMap::iterator, bool> ret = 280 std::pair<ResourceMap::iterator, bool> ret =
281 resource_map_.insert(std::make_pair(entry->resource_id(), entry)); 281 resource_map_.insert(std::make_pair(entry->resource_id(), entry));
282 DCHECK(ret.second); // resource_id did not previously exist in the map. 282 DCHECK(ret.second); // resource_id did not previously exist in the map.
283 } 283 }
284 284
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 callback.Run(entry); 329 callback.Run(entry);
330 } 330 }
331 331
332 void DriveResourceMetadata::GetEntryInfoByResourceId( 332 void DriveResourceMetadata::GetEntryInfoByResourceId(
333 const std::string& resource_id, 333 const std::string& resource_id,
334 const GetEntryInfoWithFilePathCallback& callback) { 334 const GetEntryInfoWithFilePathCallback& callback) {
335 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 335 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
336 DCHECK(!callback.is_null()); 336 DCHECK(!callback.is_null());
337 337
338 scoped_ptr<DriveEntryProto> entry_proto; 338 scoped_ptr<DriveEntryProto> entry_proto;
339 GDataFileError error = GDATA_FILE_ERROR_FAILED; 339 DriveFileError error = DRIVE_FILE_ERROR_FAILED;
340 FilePath drive_file_path; 340 FilePath drive_file_path;
341 341
342 DriveEntry* entry = GetEntryByResourceId(resource_id); 342 DriveEntry* entry = GetEntryByResourceId(resource_id);
343 if (entry) { 343 if (entry) {
344 entry_proto.reset(new DriveEntryProto); 344 entry_proto.reset(new DriveEntryProto);
345 entry->ToProtoFull(entry_proto.get()); 345 entry->ToProtoFull(entry_proto.get());
346 error = GDATA_FILE_OK; 346 error = DRIVE_FILE_OK;
347 drive_file_path = entry->GetFilePath(); 347 drive_file_path = entry->GetFilePath();
348 } else { 348 } else {
349 error = GDATA_FILE_ERROR_NOT_FOUND; 349 error = DRIVE_FILE_ERROR_NOT_FOUND;
350 } 350 }
351 351
352 base::MessageLoopProxy::current()->PostTask( 352 base::MessageLoopProxy::current()->PostTask(
353 FROM_HERE, 353 FROM_HERE,
354 base::Bind(callback, 354 base::Bind(callback,
355 error, 355 error,
356 drive_file_path, 356 drive_file_path,
357 base::Passed(&entry_proto))); 357 base::Passed(&entry_proto)));
358 } 358 }
359 359
360 void DriveResourceMetadata::GetEntryInfoByPath( 360 void DriveResourceMetadata::GetEntryInfoByPath(
361 const FilePath& path, 361 const FilePath& path,
362 const GetEntryInfoCallback& callback) { 362 const GetEntryInfoCallback& callback) {
363 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 363 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
364 DCHECK(!callback.is_null()); 364 DCHECK(!callback.is_null());
365 365
366 scoped_ptr<DriveEntryProto> entry_proto; 366 scoped_ptr<DriveEntryProto> entry_proto;
367 GDataFileError error = GDATA_FILE_ERROR_FAILED; 367 DriveFileError error = DRIVE_FILE_ERROR_FAILED;
368 368
369 DriveEntry* entry = FindEntryByPathSync(path); 369 DriveEntry* entry = FindEntryByPathSync(path);
370 if (entry) { 370 if (entry) {
371 entry_proto.reset(new DriveEntryProto); 371 entry_proto.reset(new DriveEntryProto);
372 entry->ToProtoFull(entry_proto.get()); 372 entry->ToProtoFull(entry_proto.get());
373 error = GDATA_FILE_OK; 373 error = DRIVE_FILE_OK;
374 } else { 374 } else {
375 error = GDATA_FILE_ERROR_NOT_FOUND; 375 error = DRIVE_FILE_ERROR_NOT_FOUND;
376 } 376 }
377 377
378 base::MessageLoopProxy::current()->PostTask( 378 base::MessageLoopProxy::current()->PostTask(
379 FROM_HERE, 379 FROM_HERE,
380 base::Bind(callback, error, base::Passed(&entry_proto))); 380 base::Bind(callback, error, base::Passed(&entry_proto)));
381 } 381 }
382 382
383 void DriveResourceMetadata::ReadDirectoryByPath( 383 void DriveResourceMetadata::ReadDirectoryByPath(
384 const FilePath& path, 384 const FilePath& path,
385 const ReadDirectoryCallback& callback) { 385 const ReadDirectoryCallback& callback) {
386 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 386 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
387 DCHECK(!callback.is_null()); 387 DCHECK(!callback.is_null());
388 388
389 scoped_ptr<DriveEntryProtoVector> entries; 389 scoped_ptr<DriveEntryProtoVector> entries;
390 GDataFileError error = GDATA_FILE_ERROR_FAILED; 390 DriveFileError error = DRIVE_FILE_ERROR_FAILED;
391 391
392 DriveEntry* entry = FindEntryByPathSync(path); 392 DriveEntry* entry = FindEntryByPathSync(path);
393 if (entry && entry->AsDriveDirectory()) { 393 if (entry && entry->AsDriveDirectory()) {
394 entries = entry->AsDriveDirectory()->ToProtoVector(); 394 entries = entry->AsDriveDirectory()->ToProtoVector();
395 error = GDATA_FILE_OK; 395 error = DRIVE_FILE_OK;
396 } else if (entry && !entry->AsDriveDirectory()) { 396 } else if (entry && !entry->AsDriveDirectory()) {
397 error = GDATA_FILE_ERROR_NOT_A_DIRECTORY; 397 error = DRIVE_FILE_ERROR_NOT_A_DIRECTORY;
398 } else { 398 } else {
399 error = GDATA_FILE_ERROR_NOT_FOUND; 399 error = DRIVE_FILE_ERROR_NOT_FOUND;
400 } 400 }
401 401
402 base::MessageLoopProxy::current()->PostTask( 402 base::MessageLoopProxy::current()->PostTask(
403 FROM_HERE, 403 FROM_HERE,
404 base::Bind(callback, error, base::Passed(&entries))); 404 base::Bind(callback, error, base::Passed(&entries)));
405 } 405 }
406 406
407 void DriveResourceMetadata::GetEntryInfoPairByPaths( 407 void DriveResourceMetadata::GetEntryInfoPairByPaths(
408 const FilePath& first_path, 408 const FilePath& first_path,
409 const FilePath& second_path, 409 const FilePath& second_path,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 } 459 }
460 460
461 // static 461 // static
462 void DriveResourceMetadata::RefreshDirectoryInternal( 462 void DriveResourceMetadata::RefreshDirectoryInternal(
463 const ResourceMap& file_map, 463 const ResourceMap& file_map,
464 const FileMoveCallback& callback, 464 const FileMoveCallback& callback,
465 DriveEntry* directory_entry) { 465 DriveEntry* directory_entry) {
466 DCHECK(!callback.is_null()); 466 DCHECK(!callback.is_null());
467 467
468 if (!directory_entry) { 468 if (!directory_entry) {
469 callback.Run(GDATA_FILE_ERROR_NOT_FOUND, FilePath()); 469 callback.Run(DRIVE_FILE_ERROR_NOT_FOUND, FilePath());
470 return; 470 return;
471 } 471 }
472 472
473 DriveDirectory* directory = directory_entry->AsDriveDirectory(); 473 DriveDirectory* directory = directory_entry->AsDriveDirectory();
474 if (!directory) { 474 if (!directory) {
475 callback.Run(GDATA_FILE_ERROR_NOT_A_DIRECTORY, FilePath()); 475 callback.Run(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, FilePath());
476 return; 476 return;
477 } 477 }
478 478
479 DVLOG(1) << "RefreshDirectoryInternal"; 479 DVLOG(1) << "RefreshDirectoryInternal";
480 directory->RemoveChildFiles(); 480 directory->RemoveChildFiles();
481 // Add files from file_map. 481 // Add files from file_map.
482 for (ResourceMap::const_iterator it = file_map.begin(); 482 for (ResourceMap::const_iterator it = file_map.begin();
483 it != file_map.end(); ++it) { 483 it != file_map.end(); ++it) {
484 scoped_ptr<DriveEntry> entry(it->second); 484 scoped_ptr<DriveEntry> entry(it->second);
485 // Skip if it's not a file (i.e. directory). 485 // Skip if it's not a file (i.e. directory).
486 if (!entry->AsDriveFile()) 486 if (!entry->AsDriveFile())
487 continue; 487 continue;
488 directory->AddEntry(entry.release()); 488 directory->AddEntry(entry.release());
489 } 489 }
490 490
491 callback.Run(GDATA_FILE_OK, directory->GetFilePath()); 491 callback.Run(DRIVE_FILE_OK, directory->GetFilePath());
492 } 492 }
493 493
494 void DriveResourceMetadata::InitFromDB( 494 void DriveResourceMetadata::InitFromDB(
495 const FilePath& db_path, 495 const FilePath& db_path,
496 base::SequencedTaskRunner* blocking_task_runner, 496 base::SequencedTaskRunner* blocking_task_runner,
497 const FileOperationCallback& callback) { 497 const FileOperationCallback& callback) {
498 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 498 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
499 DCHECK(!db_path.empty()); 499 DCHECK(!db_path.empty());
500 DCHECK(blocking_task_runner); 500 DCHECK(blocking_task_runner);
501 501
502 if (resource_metadata_db_.get()) { 502 if (resource_metadata_db_.get()) {
503 if (!callback.is_null()) 503 if (!callback.is_null())
504 callback.Run(GDATA_FILE_ERROR_FAILED); 504 callback.Run(DRIVE_FILE_ERROR_FAILED);
505 return; 505 return;
506 } 506 }
507 507
508 blocking_task_runner_ = blocking_task_runner; 508 blocking_task_runner_ = blocking_task_runner;
509 509
510 DVLOG(1) << "InitFromDB " << db_path.value(); 510 DVLOG(1) << "InitFromDB " << db_path.value();
511 511
512 CreateDBParams* create_params = 512 CreateDBParams* create_params =
513 new CreateDBParams(db_path, blocking_task_runner); 513 new CreateDBParams(db_path, blocking_task_runner);
514 blocking_task_runner_->PostTaskAndReply( 514 blocking_task_runner_->PostTaskAndReply(
(...skipping 11 matching lines...) Expand all
526 const FileOperationCallback& callback) { 526 const FileOperationCallback& callback) {
527 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 527 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
528 DCHECK(create_params); 528 DCHECK(create_params);
529 DCHECK(!resource_metadata_db_.get()); 529 DCHECK(!resource_metadata_db_.get());
530 530
531 SerializedMap* serialized_resources = &create_params->serialized_resources; 531 SerializedMap* serialized_resources = &create_params->serialized_resources;
532 resource_metadata_db_ = create_params->db.Pass(); 532 resource_metadata_db_ = create_params->db.Pass();
533 if (serialized_resources->empty()) { 533 if (serialized_resources->empty()) {
534 origin_ = INITIALIZING; 534 origin_ = INITIALIZING;
535 if (!callback.is_null()) 535 if (!callback.is_null())
536 callback.Run(GDATA_FILE_ERROR_NOT_FOUND); 536 callback.Run(DRIVE_FILE_ERROR_NOT_FOUND);
537 return; 537 return;
538 } 538 }
539 539
540 ClearRoot(); 540 ClearRoot();
541 541
542 // Version check. 542 // Version check.
543 int32 version = 0; 543 int32 version = 0;
544 SerializedMap::iterator iter = serialized_resources->find(kDBKeyVersion); 544 SerializedMap::iterator iter = serialized_resources->find(kDBKeyVersion);
545 if (iter == serialized_resources->end() || 545 if (iter == serialized_resources->end() ||
546 !base::StringToInt(iter->second, &version) || 546 !base::StringToInt(iter->second, &version) ||
547 version != kProtoVersion) { 547 version != kProtoVersion) {
548 if (!callback.is_null()) 548 if (!callback.is_null())
549 callback.Run(GDATA_FILE_ERROR_FAILED); 549 callback.Run(DRIVE_FILE_ERROR_FAILED);
550 return; 550 return;
551 } 551 }
552 serialized_resources->erase(iter); 552 serialized_resources->erase(iter);
553 553
554 // Get the largest changestamp. 554 // Get the largest changestamp.
555 iter = serialized_resources->find(kDBKeyLargestChangestamp); 555 iter = serialized_resources->find(kDBKeyLargestChangestamp);
556 if (iter == serialized_resources->end() || 556 if (iter == serialized_resources->end() ||
557 !base::StringToInt64(iter->second, &largest_changestamp_)) { 557 !base::StringToInt64(iter->second, &largest_changestamp_)) {
558 NOTREACHED() << "Could not find/parse largest_changestamp"; 558 NOTREACHED() << "Could not find/parse largest_changestamp";
559 if (!callback.is_null()) 559 if (!callback.is_null())
560 callback.Run(GDATA_FILE_ERROR_FAILED); 560 callback.Run(DRIVE_FILE_ERROR_FAILED);
561 return; 561 return;
562 } else { 562 } else {
563 DVLOG(1) << "InitResourceMap largest_changestamp_" << largest_changestamp_; 563 DVLOG(1) << "InitResourceMap largest_changestamp_" << largest_changestamp_;
564 serialized_resources->erase(iter); 564 serialized_resources->erase(iter);
565 } 565 }
566 566
567 ResourceMap resource_map; 567 ResourceMap resource_map;
568 for (SerializedMap::const_iterator iter = serialized_resources->begin(); 568 for (SerializedMap::const_iterator iter = serialized_resources->begin();
569 iter != serialized_resources->end(); ++iter) { 569 iter != serialized_resources->end(); ++iter) {
570 if (iter->first.find(kDBKeyResourceIdPrefix) != 0) { 570 if (iter->first.find(kDBKeyResourceIdPrefix) != 0) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 } 609 }
610 } 610 }
611 611
612 DCHECK(root_.get()); 612 DCHECK(root_.get());
613 DCHECK_EQ(resource_map.size(), resource_map_.size()); 613 DCHECK_EQ(resource_map.size(), resource_map_.size());
614 DCHECK_EQ(resource_map.size(), serialized_resources->size()); 614 DCHECK_EQ(resource_map.size(), serialized_resources->size());
615 615
616 origin_ = FROM_CACHE; 616 origin_ = FROM_CACHE;
617 617
618 if (!callback.is_null()) 618 if (!callback.is_null())
619 callback.Run(GDATA_FILE_OK); 619 callback.Run(DRIVE_FILE_OK);
620 } 620 }
621 621
622 void DriveResourceMetadata::SaveToDB() { 622 void DriveResourceMetadata::SaveToDB() {
623 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 623 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
624 624
625 if (!blocking_task_runner_ || !resource_metadata_db_.get()) { 625 if (!blocking_task_runner_ || !resource_metadata_db_.get()) {
626 NOTREACHED(); 626 NOTREACHED();
627 return; 627 return;
628 } 628 }
629 629
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 file->FromProto(entry_proto); 707 file->FromProto(entry_proto);
708 entry.reset(file.release()); 708 entry.reset(file.release());
709 } 709 }
710 return entry.Pass(); 710 return entry.Pass();
711 } 711 }
712 712
713 void DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetFirst( 713 void DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetFirst(
714 const FilePath& first_path, 714 const FilePath& first_path,
715 const FilePath& second_path, 715 const FilePath& second_path,
716 const GetEntryInfoPairCallback& callback, 716 const GetEntryInfoPairCallback& callback,
717 GDataFileError error, 717 DriveFileError error,
718 scoped_ptr<DriveEntryProto> entry_proto) { 718 scoped_ptr<DriveEntryProto> entry_proto) {
719 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 719 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
720 DCHECK(!callback.is_null()); 720 DCHECK(!callback.is_null());
721 721
722 scoped_ptr<EntryInfoPairResult> result(new EntryInfoPairResult); 722 scoped_ptr<EntryInfoPairResult> result(new EntryInfoPairResult);
723 result->first.path = first_path; 723 result->first.path = first_path;
724 result->first.error = error; 724 result->first.error = error;
725 result->first.proto = entry_proto.Pass(); 725 result->first.proto = entry_proto.Pass();
726 726
727 // If the first one is not found, don't continue. 727 // If the first one is not found, don't continue.
728 if (error != GDATA_FILE_OK) { 728 if (error != DRIVE_FILE_OK) {
729 callback.Run(result.Pass()); 729 callback.Run(result.Pass());
730 return; 730 return;
731 } 731 }
732 732
733 // Get the second entry. 733 // Get the second entry.
734 GetEntryInfoByPath( 734 GetEntryInfoByPath(
735 second_path, 735 second_path,
736 base::Bind(&DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetSecond, 736 base::Bind(&DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetSecond,
737 weak_ptr_factory_.GetWeakPtr(), 737 weak_ptr_factory_.GetWeakPtr(),
738 second_path, 738 second_path,
739 callback, 739 callback,
740 base::Passed(&result))); 740 base::Passed(&result)));
741 } 741 }
742 742
743 void DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetSecond( 743 void DriveResourceMetadata::GetEntryInfoPairByPathsAfterGetSecond(
744 const FilePath& second_path, 744 const FilePath& second_path,
745 const GetEntryInfoPairCallback& callback, 745 const GetEntryInfoPairCallback& callback,
746 scoped_ptr<EntryInfoPairResult> result, 746 scoped_ptr<EntryInfoPairResult> result,
747 GDataFileError error, 747 DriveFileError error,
748 scoped_ptr<DriveEntryProto> entry_proto) { 748 scoped_ptr<DriveEntryProto> entry_proto) {
749 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 749 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
750 DCHECK(!callback.is_null()); 750 DCHECK(!callback.is_null());
751 DCHECK(result.get()); 751 DCHECK(result.get());
752 752
753 result->second.path = second_path; 753 result->second.path = second_path;
754 result->second.error = error; 754 result->second.error = error;
755 result->second.proto = entry_proto.Pass(); 755 result->second.proto = entry_proto.Pass();
756 756
757 callback.Run(result.Pass()); 757 callback.Run(result.Pass());
758 } 758 }
759 759
760 } // namespace gdata 760 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698