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

Side by Side Diff: chrome/browser/sync/engine/syncer_proto_util.cc

Issue 7977034: Revert 102184 - [Sync] use base::Time in sync (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 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
« no previous file with comments | « chrome/browser/sync/engine/syncer.cc ('k') | chrome/browser/sync/engine/syncer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/engine/syncer_proto_util.h" 5 #include "chrome/browser/sync/engine/syncer_proto_util.h"
6 6
7 #include "base/format_macros.h" 7 #include "base/format_macros.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "chrome/browser/sync/engine/net/server_connection_manager.h" 9 #include "chrome/browser/sync/engine/net/server_connection_manager.h"
10 #include "chrome/browser/sync/engine/syncer.h" 10 #include "chrome/browser/sync/engine/syncer.h"
11 #include "chrome/browser/sync/engine/syncer_types.h" 11 #include "chrome/browser/sync/engine/syncer_types.h"
12 #include "chrome/browser/sync/engine/syncer_util.h"
12 #include "chrome/browser/sync/protocol/service_constants.h" 13 #include "chrome/browser/sync/protocol/service_constants.h"
13 #include "chrome/browser/sync/protocol/sync.pb.h" 14 #include "chrome/browser/sync/protocol/sync.pb.h"
14 #include "chrome/browser/sync/protocol/sync_protocol_error.h" 15 #include "chrome/browser/sync/protocol/sync_protocol_error.h"
15 #include "chrome/browser/sync/sessions/sync_session.h" 16 #include "chrome/browser/sync/sessions/sync_session.h"
16 #include "chrome/browser/sync/syncable/directory_manager.h" 17 #include "chrome/browser/sync/syncable/directory_manager.h"
17 #include "chrome/browser/sync/syncable/model_type.h" 18 #include "chrome/browser/sync/syncable/model_type.h"
18 #include "chrome/browser/sync/syncable/syncable-inl.h" 19 #include "chrome/browser/sync/syncable/syncable-inl.h"
19 #include "chrome/browser/sync/syncable/syncable.h" 20 #include "chrome/browser/sync/syncable/syncable.h"
20 #include "chrome/browser/sync/util/time.h"
21 21
22 using browser_sync::SyncProtocolErrorType; 22 using browser_sync::SyncProtocolErrorType;
23 using std::string; 23 using std::string;
24 using std::stringstream; 24 using std::stringstream;
25 using syncable::BASE_VERSION; 25 using syncable::BASE_VERSION;
26 using syncable::CTIME; 26 using syncable::CTIME;
27 using syncable::ID; 27 using syncable::ID;
28 using syncable::IS_DEL; 28 using syncable::IS_DEL;
29 using syncable::IS_DIR; 29 using syncable::IS_DIR;
30 using syncable::IS_UNSYNCED; 30 using syncable::IS_UNSYNCED;
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 357
358 CHECK(local_entry.Get(ID) == server_entry.id()) << 358 CHECK(local_entry.Get(ID) == server_entry.id()) <<
359 " SyncerProtoUtil::Compare precondition not met."; 359 " SyncerProtoUtil::Compare precondition not met.";
360 CHECK(server_entry.version() == local_entry.Get(BASE_VERSION)) << 360 CHECK(server_entry.version() == local_entry.Get(BASE_VERSION)) <<
361 " SyncerProtoUtil::Compare precondition not met."; 361 " SyncerProtoUtil::Compare precondition not met.";
362 CHECK(!local_entry.Get(IS_UNSYNCED)) << 362 CHECK(!local_entry.Get(IS_UNSYNCED)) <<
363 " SyncerProtoUtil::Compare precondition not met."; 363 " SyncerProtoUtil::Compare precondition not met.";
364 364
365 if (local_entry.Get(IS_DEL) && server_entry.deleted()) 365 if (local_entry.Get(IS_DEL) && server_entry.deleted())
366 return true; 366 return true;
367 if (local_entry.Get(CTIME) != ProtoTimeToTime(server_entry.ctime())) { 367 if (!ClientAndServerTimeMatch(local_entry.Get(CTIME), server_entry.ctime())) {
368 LOG(WARNING) << "ctime mismatch"; 368 LOG(WARNING) << "ctime mismatch";
369 return false; 369 return false;
370 } 370 }
371 371
372 // These checks are somewhat prolix, but they're easier to debug than a big 372 // These checks are somewhat prolix, but they're easier to debug than a big
373 // boolean statement. 373 // boolean statement.
374 string client_name = local_entry.Get(syncable::NON_UNIQUE_NAME); 374 string client_name = local_entry.Get(syncable::NON_UNIQUE_NAME);
375 if (client_name != name) { 375 if (client_name != name) {
376 LOG(WARNING) << "Client name mismatch"; 376 LOG(WARNING) << "Client name mismatch";
377 return false; 377 return false;
378 } 378 }
379 if (local_entry.Get(PARENT_ID) != server_entry.parent_id()) { 379 if (local_entry.Get(PARENT_ID) != server_entry.parent_id()) {
380 LOG(WARNING) << "Parent ID mismatch"; 380 LOG(WARNING) << "Parent ID mismatch";
381 return false; 381 return false;
382 } 382 }
383 if (local_entry.Get(IS_DIR) != server_entry.IsFolder()) { 383 if (local_entry.Get(IS_DIR) != server_entry.IsFolder()) {
384 LOG(WARNING) << "Dir field mismatch"; 384 LOG(WARNING) << "Dir field mismatch";
385 return false; 385 return false;
386 } 386 }
387 if (local_entry.Get(IS_DEL) != server_entry.deleted()) { 387 if (local_entry.Get(IS_DEL) != server_entry.deleted()) {
388 LOG(WARNING) << "Deletion mismatch"; 388 LOG(WARNING) << "Deletion mismatch";
389 return false; 389 return false;
390 } 390 }
391 if (!local_entry.Get(IS_DIR) && 391 if (!local_entry.Get(IS_DIR) &&
392 (local_entry.Get(MTIME) != ProtoTimeToTime(server_entry.mtime()))) { 392 !ClientAndServerTimeMatch(local_entry.Get(MTIME),
393 server_entry.mtime())) {
393 LOG(WARNING) << "mtime mismatch"; 394 LOG(WARNING) << "mtime mismatch";
394 return false; 395 return false;
395 } 396 }
396 397
397 return true; 398 return true;
398 } 399 }
399 400
400 // static 401 // static
401 void SyncerProtoUtil::CopyProtoBytesIntoBlob(const std::string& proto_bytes, 402 void SyncerProtoUtil::CopyProtoBytesIntoBlob(const std::string& proto_bytes,
402 syncable::Blob* blob) { 403 syncable::Blob* blob) {
(...skipping 27 matching lines...) Expand all
430 // static 431 // static
431 const std::string& SyncerProtoUtil::NameFromCommitEntryResponse( 432 const std::string& SyncerProtoUtil::NameFromCommitEntryResponse(
432 const CommitResponse_EntryResponse& entry) { 433 const CommitResponse_EntryResponse& entry) {
433 if (entry.has_non_unique_name()) 434 if (entry.has_non_unique_name())
434 return entry.non_unique_name(); 435 return entry.non_unique_name();
435 return entry.name(); 436 return entry.name();
436 } 437 }
437 438
438 std::string SyncerProtoUtil::SyncEntityDebugString( 439 std::string SyncerProtoUtil::SyncEntityDebugString(
439 const sync_pb::SyncEntity& entry) { 440 const sync_pb::SyncEntity& entry) {
440 const std::string& mtime_str =
441 GetTimeDebugString(ProtoTimeToTime(entry.mtime()));
442 const std::string& ctime_str =
443 GetTimeDebugString(ProtoTimeToTime(entry.ctime()));
444 return base::StringPrintf( 441 return base::StringPrintf(
445 "id: %s, parent_id: %s, " 442 "id: %s, parent_id: %s, "
446 "version: %"PRId64"d, " 443 "version: %"PRId64"d, "
447 "mtime: %" PRId64"d (%s), " 444 "mtime: %" PRId64"d (client: %" PRId64"d), "
448 "ctime: %" PRId64"d (%s), " 445 "ctime: %" PRId64"d (client: %" PRId64"d), "
449 "name: %s, sync_timestamp: %" PRId64"d, " 446 "name: %s, sync_timestamp: %" PRId64"d, "
450 "%s ", 447 "%s ",
451 entry.id_string().c_str(), 448 entry.id_string().c_str(),
452 entry.parent_id_string().c_str(), 449 entry.parent_id_string().c_str(),
453 entry.version(), 450 entry.version(),
454 entry.mtime(), mtime_str.c_str(), 451 entry.mtime(), ServerTimeToClientTime(entry.mtime()),
455 entry.ctime(), ctime_str.c_str(), 452 entry.ctime(), ServerTimeToClientTime(entry.ctime()),
456 entry.name().c_str(), entry.sync_timestamp(), 453 entry.name().c_str(), entry.sync_timestamp(),
457 entry.deleted() ? "deleted, ":""); 454 entry.deleted() ? "deleted, ":"");
458 } 455 }
459 456
460 namespace { 457 namespace {
461 std::string GetUpdatesResponseString( 458 std::string GetUpdatesResponseString(
462 const sync_pb::GetUpdatesResponse& response) { 459 const sync_pb::GetUpdatesResponse& response) {
463 std::string output; 460 std::string output;
464 output.append("GetUpdatesResponse:\n"); 461 output.append("GetUpdatesResponse:\n");
465 for (int i = 0; i < response.entries_size(); i++) { 462 for (int i = 0; i < response.entries_size(); i++) {
466 output.append(SyncerProtoUtil::SyncEntityDebugString(response.entries(i))); 463 output.append(SyncerProtoUtil::SyncEntityDebugString(response.entries(i)));
467 output.append("\n"); 464 output.append("\n");
468 } 465 }
469 return output; 466 return output;
470 } 467 }
471 } // namespace 468 } // namespace
472 469
473 std::string SyncerProtoUtil::ClientToServerResponseDebugString( 470 std::string SyncerProtoUtil::ClientToServerResponseDebugString(
474 const sync_pb::ClientToServerResponse& response) { 471 const sync_pb::ClientToServerResponse& response) {
475 // Add more handlers as needed. 472 // Add more handlers as needed.
476 std::string output; 473 std::string output;
477 if (response.has_get_updates()) 474 if (response.has_get_updates())
478 output.append(GetUpdatesResponseString(response.get_updates())); 475 output.append(GetUpdatesResponseString(response.get_updates()));
479 return output; 476 return output;
480 } 477 }
481 478
482 } // namespace browser_sync 479 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/syncer.cc ('k') | chrome/browser/sync/engine/syncer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698