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

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

Issue 10836354: Rename GData* to Drive* in gdata.proto (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for comments. 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/gdata_files.h" 5 #include "chrome/browser/chromeos/gdata/gdata_files.h"
6 6
7 #include "base/platform_file.h" 7 #include "base/platform_file.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/chromeos/gdata/gdata.pb.h" 11 #include "chrome/browser/chromeos/gdata/drive.pb.h"
12 #include "chrome/browser/chromeos/gdata/gdata_directory_service.h" 12 #include "chrome/browser/chromeos/gdata/gdata_directory_service.h"
13 #include "chrome/browser/chromeos/gdata/gdata_wapi_parser.h" 13 #include "chrome/browser/chromeos/gdata/gdata_wapi_parser.h"
14 #include "net/base/escape.h" 14 #include "net/base/escape.h"
15 15
16 namespace gdata { 16 namespace gdata {
17 namespace { 17 namespace {
18 18
19 const char kSlash[] = "/"; 19 const char kSlash[] = "/";
20 const char kEscapedSlash[] = "\xE2\x88\x95"; 20 const char kEscapedSlash[] = "\xE2\x88\x95";
21 21
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 const base::PlatformFileInfo& file_info, 372 const base::PlatformFileInfo& file_info,
373 PlatformFileInfoProto* proto) { 373 PlatformFileInfoProto* proto) {
374 proto->set_size(file_info.size); 374 proto->set_size(file_info.size);
375 proto->set_is_directory(file_info.is_directory); 375 proto->set_is_directory(file_info.is_directory);
376 proto->set_is_symbolic_link(file_info.is_symbolic_link); 376 proto->set_is_symbolic_link(file_info.is_symbolic_link);
377 proto->set_last_modified(file_info.last_modified.ToInternalValue()); 377 proto->set_last_modified(file_info.last_modified.ToInternalValue());
378 proto->set_last_accessed(file_info.last_accessed.ToInternalValue()); 378 proto->set_last_accessed(file_info.last_accessed.ToInternalValue());
379 proto->set_creation_time(file_info.creation_time.ToInternalValue()); 379 proto->set_creation_time(file_info.creation_time.ToInternalValue());
380 } 380 }
381 381
382 void GDataEntry::FromProto(const GDataEntryProto& proto) { 382 void GDataEntry::FromProto(const DriveEntryProto& proto) {
383 ConvertProtoToPlatformFileInfo(proto.file_info(), &file_info_); 383 ConvertProtoToPlatformFileInfo(proto.file_info(), &file_info_);
384 384
385 // Don't copy from proto.base_name() as base_name_ is computed in 385 // Don't copy from proto.base_name() as base_name_ is computed in
386 // SetBaseNameFromTitle(). 386 // SetBaseNameFromTitle().
387 title_ = proto.title(); 387 title_ = proto.title();
388 resource_id_ = proto.resource_id(); 388 resource_id_ = proto.resource_id();
389 parent_resource_id_ = proto.parent_resource_id(); 389 parent_resource_id_ = proto.parent_resource_id();
390 edit_url_ = GURL(proto.edit_url()); 390 edit_url_ = GURL(proto.edit_url());
391 content_url_ = GURL(proto.content_url()); 391 content_url_ = GURL(proto.content_url());
392 upload_url_ = GURL(proto.upload_url()); 392 upload_url_ = GURL(proto.upload_url());
393 SetBaseNameFromTitle(); 393 SetBaseNameFromTitle();
394 } 394 }
395 395
396 void GDataEntry::ToProto(GDataEntryProto* proto) const { 396 void GDataEntry::ToProto(DriveEntryProto* proto) const {
397 ConvertPlatformFileInfoToProto(file_info_, proto->mutable_file_info()); 397 ConvertPlatformFileInfoToProto(file_info_, proto->mutable_file_info());
398 398
399 // The base_name field is used in GetFileInfoByPathAsync(). As shown in 399 // The base_name field is used in GetFileInfoByPathAsync(). As shown in
400 // FromProto(), the value is discarded when deserializing from proto. 400 // FromProto(), the value is discarded when deserializing from proto.
401 proto->set_base_name(base_name_); 401 proto->set_base_name(base_name_);
402 proto->set_title(title_); 402 proto->set_title(title_);
403 proto->set_resource_id(resource_id_); 403 proto->set_resource_id(resource_id_);
404 proto->set_parent_resource_id(parent_resource_id_); 404 proto->set_parent_resource_id(parent_resource_id_);
405 proto->set_edit_url(edit_url_.spec()); 405 proto->set_edit_url(edit_url_.spec());
406 proto->set_content_url(content_url_.spec()); 406 proto->set_content_url(content_url_.spec());
407 proto->set_upload_url(upload_url_.spec()); 407 proto->set_upload_url(upload_url_.spec());
408 } 408 }
409 409
410 void GDataEntry::ToProtoFull(GDataEntryProto* proto) const { 410 void GDataEntry::ToProtoFull(DriveEntryProto* proto) const {
411 if (AsGDataFileConst()) { 411 if (AsGDataFileConst()) {
412 AsGDataFileConst()->ToProto(proto); 412 AsGDataFileConst()->ToProto(proto);
413 } else if (AsGDataDirectoryConst()) { 413 } else if (AsGDataDirectoryConst()) {
414 // Unlike files, directories don't have directory specific info, so just 414 // Unlike files, directories don't have directory specific info, so just
415 // calling GDataEntry::ToProto(). 415 // calling GDataEntry::ToProto().
416 ToProto(proto); 416 ToProto(proto);
417 } else { 417 } else {
418 NOTREACHED(); 418 NOTREACHED();
419 } 419 }
420 } 420 }
421 421
422 void GDataFile::FromProto(const GDataEntryProto& proto) { 422 void GDataFile::FromProto(const DriveEntryProto& proto) {
423 DCHECK(!proto.file_info().is_directory()); 423 DCHECK(!proto.file_info().is_directory());
424 424
425 GDataEntry::FromProto(proto); 425 GDataEntry::FromProto(proto);
426 426
427 thumbnail_url_ = GURL(proto.file_specific_info().thumbnail_url()); 427 thumbnail_url_ = GURL(proto.file_specific_info().thumbnail_url());
428 alternate_url_ = GURL(proto.file_specific_info().alternate_url()); 428 alternate_url_ = GURL(proto.file_specific_info().alternate_url());
429 content_mime_type_ = proto.file_specific_info().content_mime_type(); 429 content_mime_type_ = proto.file_specific_info().content_mime_type();
430 file_md5_ = proto.file_specific_info().file_md5(); 430 file_md5_ = proto.file_specific_info().file_md5();
431 document_extension_ = proto.file_specific_info().document_extension(); 431 document_extension_ = proto.file_specific_info().document_extension();
432 is_hosted_document_ = proto.file_specific_info().is_hosted_document(); 432 is_hosted_document_ = proto.file_specific_info().is_hosted_document();
433 } 433 }
434 434
435 void GDataFile::ToProto(GDataEntryProto* proto) const { 435 void GDataFile::ToProto(DriveEntryProto* proto) const {
436 GDataEntry::ToProto(proto); 436 GDataEntry::ToProto(proto);
437 DCHECK(!proto->file_info().is_directory()); 437 DCHECK(!proto->file_info().is_directory());
438 GDataFileSpecificInfo* file_specific_info = 438 DriveFileSpecificInfo* file_specific_info =
439 proto->mutable_file_specific_info(); 439 proto->mutable_file_specific_info();
440 file_specific_info->set_thumbnail_url(thumbnail_url_.spec()); 440 file_specific_info->set_thumbnail_url(thumbnail_url_.spec());
441 file_specific_info->set_alternate_url(alternate_url_.spec()); 441 file_specific_info->set_alternate_url(alternate_url_.spec());
442 file_specific_info->set_content_mime_type(content_mime_type_); 442 file_specific_info->set_content_mime_type(content_mime_type_);
443 file_specific_info->set_file_md5(file_md5_); 443 file_specific_info->set_file_md5(file_md5_);
444 file_specific_info->set_document_extension(document_extension_); 444 file_specific_info->set_document_extension(document_extension_);
445 file_specific_info->set_is_hosted_document(is_hosted_document_); 445 file_specific_info->set_is_hosted_document(is_hosted_document_);
446 } 446 }
447 447
448 void GDataDirectory::FromProto(const GDataDirectoryProto& proto) { 448 void GDataDirectory::FromProto(const DriveDirectoryProto& proto) {
449 DCHECK(proto.gdata_entry().file_info().is_directory()); 449 DCHECK(proto.gdata_entry().file_info().is_directory());
450 DCHECK(!proto.gdata_entry().has_file_specific_info()); 450 DCHECK(!proto.gdata_entry().has_file_specific_info());
451 451
452 for (int i = 0; i < proto.child_files_size(); ++i) { 452 for (int i = 0; i < proto.child_files_size(); ++i) {
453 scoped_ptr<GDataFile> file(directory_service_->CreateGDataFile()); 453 scoped_ptr<GDataFile> file(directory_service_->CreateGDataFile());
454 file->FromProto(proto.child_files(i)); 454 file->FromProto(proto.child_files(i));
455 AddEntry(file.release()); 455 AddEntry(file.release());
456 } 456 }
457 for (int i = 0; i < proto.child_directories_size(); ++i) { 457 for (int i = 0; i < proto.child_directories_size(); ++i) {
458 scoped_ptr<GDataDirectory> dir(directory_service_->CreateGDataDirectory()); 458 scoped_ptr<GDataDirectory> dir(directory_service_->CreateGDataDirectory());
459 dir->FromProto(proto.child_directories(i)); 459 dir->FromProto(proto.child_directories(i));
460 AddEntry(dir.release()); 460 AddEntry(dir.release());
461 } 461 }
462 462
463 // The states of the directory should be updated after children are 463 // The states of the directory should be updated after children are
464 // handled successfully, so that incomplete states are not left. 464 // handled successfully, so that incomplete states are not left.
465 GDataEntry::FromProto(proto.gdata_entry()); 465 GDataEntry::FromProto(proto.gdata_entry());
466 } 466 }
467 467
468 void GDataDirectory::ToProto(GDataDirectoryProto* proto) const { 468 void GDataDirectory::ToProto(DriveDirectoryProto* proto) const {
469 GDataEntry::ToProto(proto->mutable_gdata_entry()); 469 GDataEntry::ToProto(proto->mutable_gdata_entry());
470 DCHECK(proto->gdata_entry().file_info().is_directory()); 470 DCHECK(proto->gdata_entry().file_info().is_directory());
471 471
472 for (GDataChildMap::const_iterator iter = child_files_.begin(); 472 for (GDataChildMap::const_iterator iter = child_files_.begin();
473 iter != child_files_.end(); ++iter) { 473 iter != child_files_.end(); ++iter) {
474 GDataFile* file = directory_service_->GetEntryByResourceId( 474 GDataFile* file = directory_service_->GetEntryByResourceId(
475 iter->second)->AsGDataFile(); 475 iter->second)->AsGDataFile();
476 DCHECK(file); 476 DCHECK(file);
477 file->ToProto(proto->add_child_files()); 477 file->ToProto(proto->add_child_files());
478 } 478 }
479 for (GDataChildMap::const_iterator iter = child_directories_.begin(); 479 for (GDataChildMap::const_iterator iter = child_directories_.begin();
480 iter != child_directories_.end(); ++iter) { 480 iter != child_directories_.end(); ++iter) {
481 GDataDirectory* dir = directory_service_->GetEntryByResourceId( 481 GDataDirectory* dir = directory_service_->GetEntryByResourceId(
482 iter->second)->AsGDataDirectory(); 482 iter->second)->AsGDataDirectory();
483 DCHECK(dir); 483 DCHECK(dir);
484 dir->ToProto(proto->add_child_directories()); 484 dir->ToProto(proto->add_child_directories());
485 } 485 }
486 } 486 }
487 487
488 scoped_ptr<GDataEntryProtoVector> GDataDirectory::ToProtoVector() const { 488 scoped_ptr<DriveEntryProtoVector> GDataDirectory::ToProtoVector() const {
489 scoped_ptr<GDataEntryProtoVector> entries(new GDataEntryProtoVector); 489 scoped_ptr<DriveEntryProtoVector> entries(new DriveEntryProtoVector);
490 // Use ToProtoFull, as we don't want to include children in |proto|. 490 // Use ToProtoFull, as we don't want to include children in |proto|.
491 for (GDataChildMap::const_iterator iter = child_files_.begin(); 491 for (GDataChildMap::const_iterator iter = child_files_.begin();
492 iter != child_files_.end(); ++iter) { 492 iter != child_files_.end(); ++iter) {
493 GDataEntryProto proto; 493 DriveEntryProto proto;
494 directory_service_->GetEntryByResourceId(iter->second)->ToProtoFull(&proto); 494 directory_service_->GetEntryByResourceId(iter->second)->ToProtoFull(&proto);
495 entries->push_back(proto); 495 entries->push_back(proto);
496 } 496 }
497 for (GDataChildMap::const_iterator iter = child_directories_.begin(); 497 for (GDataChildMap::const_iterator iter = child_directories_.begin();
498 iter != child_directories_.end(); ++iter) { 498 iter != child_directories_.end(); ++iter) {
499 GDataEntryProto proto; 499 DriveEntryProto proto;
500 directory_service_->GetEntryByResourceId(iter->second)->ToProtoFull(&proto); 500 directory_service_->GetEntryByResourceId(iter->second)->ToProtoFull(&proto);
501 entries->push_back(proto); 501 entries->push_back(proto);
502 } 502 }
503 503
504 return entries.Pass(); 504 return entries.Pass();
505 } 505 }
506 506
507 void GDataEntry::SerializeToString(std::string* serialized_proto) const { 507 void GDataEntry::SerializeToString(std::string* serialized_proto) const {
508 const GDataFile* file = AsGDataFileConst(); 508 const GDataFile* file = AsGDataFileConst();
509 const GDataDirectory* dir = AsGDataDirectoryConst(); 509 const GDataDirectory* dir = AsGDataDirectoryConst();
510 510
511 if (file) { 511 if (file) {
512 GDataEntryProto entry_proto; 512 DriveEntryProto entry_proto;
513 file->ToProto(&entry_proto); 513 file->ToProto(&entry_proto);
514 const bool ok = entry_proto.SerializeToString(serialized_proto); 514 const bool ok = entry_proto.SerializeToString(serialized_proto);
515 DCHECK(ok); 515 DCHECK(ok);
516 } else if (dir) { 516 } else if (dir) {
517 GDataDirectoryProto dir_proto; 517 DriveDirectoryProto dir_proto;
518 dir->ToProto(&dir_proto); 518 dir->ToProto(&dir_proto);
519 const bool ok = dir_proto.SerializeToString(serialized_proto); 519 const bool ok = dir_proto.SerializeToString(serialized_proto);
520 DCHECK(ok); 520 DCHECK(ok);
521 } 521 }
522 } 522 }
523 523
524 } // namespace gdata 524 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_files.h ('k') | chrome/browser/chromeos/gdata/gdata_protocol_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698