Index: sync/engine/syncer_proto_util.cc |
diff --git a/sync/engine/syncer_proto_util.cc b/sync/engine/syncer_proto_util.cc |
index 8a20b95067620ef6ac8a59dacf6e8024898adab4..c88b7c3a2cd32371f32fc6bf8c6cedb075d2e22b 100644 |
--- a/sync/engine/syncer_proto_util.cc |
+++ b/sync/engine/syncer_proto_util.cc |
@@ -19,10 +19,13 @@ |
#include "sync/syncable/directory.h" |
#include "sync/syncable/entry.h" |
#include "sync/syncable/syncable-inl.h" |
+#include "sync/syncable/syncable_proto_util.h" |
#include "sync/util/time.h" |
using std::string; |
using std::stringstream; |
+using sync_pb::ClientToServerMessage; |
+using sync_pb::ClientToServerResponse; |
namespace syncer { |
@@ -107,7 +110,7 @@ SyncerError ServerConnectionErrorAsSyncerError( |
// static |
void SyncerProtoUtil::HandleMigrationDoneResponse( |
- const sync_pb::ClientToServerResponse* response, |
+ const ClientToServerResponse* response, |
sessions::SyncSession* session) { |
LOG_IF(ERROR, 0 >= response->migrated_data_type_id_size()) |
<< "MIGRATION_DONE but no types specified."; |
@@ -160,11 +163,21 @@ void SyncerProtoUtil::AddRequestBirthday(syncable::Directory* dir, |
} |
// static |
+void SyncerProtoUtil::SetProtocolVersion(ClientToServerMessage* msg) { |
+ const int current_version = |
+ ClientToServerMessage::default_instance().protocol_version(); |
+ msg->set_protocol_version(current_version); |
+} |
+ |
+// static |
bool SyncerProtoUtil::PostAndProcessHeaders(ServerConnectionManager* scm, |
sessions::SyncSession* session, |
const ClientToServerMessage& msg, |
ClientToServerResponse* response) { |
ServerConnectionManager::PostBufferParams params; |
+ DCHECK(msg.has_protocol_version()); |
+ DCHECK_EQ(msg.protocol_version(), |
+ ClientToServerMessage::default_instance().protocol_version()); |
msg.SerializeToString(¶ms.buffer_in); |
ScopedServerStatusWatcher server_status_watcher(scm, ¶ms.response); |
@@ -199,7 +212,7 @@ bool SyncerProtoUtil::PostAndProcessHeaders(ServerConnectionManager* scm, |
} |
base::TimeDelta SyncerProtoUtil::GetThrottleDelay( |
- const sync_pb::ClientToServerResponse& response) { |
+ const ClientToServerResponse& response) { |
base::TimeDelta throttle_delay = |
base::TimeDelta::FromSeconds(kSyncDelayAfterThrottled); |
if (response.has_client_command()) { |
@@ -289,7 +302,7 @@ syncer::ClientAction ConvertClientActionPBToLocalClientAction( |
} |
syncer::SyncProtocolError ConvertErrorPBToLocalType( |
- const sync_pb::ClientToServerResponse::Error& error) { |
+ const ClientToServerResponse::Error& error) { |
syncer::SyncProtocolError sync_protocol_error; |
sync_protocol_error.error_type = ConvertSyncProtocolErrorTypePBToLocalType( |
error.error_type()); |
@@ -415,15 +428,12 @@ SyncerError SyncerProtoUtil::PostClientToServerMessage( |
// static |
bool SyncerProtoUtil::Compare(const syncable::Entry& local_entry, |
- const SyncEntity& server_entry) { |
+ const sync_pb::SyncEntity& server_entry) { |
const std::string name = NameFromSyncEntity(server_entry); |
- CHECK(local_entry.Get(ID) == server_entry.id()) << |
- " SyncerProtoUtil::Compare precondition not met."; |
- CHECK(server_entry.version() == local_entry.Get(BASE_VERSION)) << |
- " SyncerProtoUtil::Compare precondition not met."; |
- CHECK(!local_entry.Get(IS_UNSYNCED)) << |
- " SyncerProtoUtil::Compare precondition not met."; |
+ CHECK_EQ(local_entry.Get(ID), SyncableIdFromProto(server_entry.id_string())); |
+ CHECK_EQ(server_entry.version(), local_entry.Get(BASE_VERSION)); |
+ CHECK(!local_entry.Get(IS_UNSYNCED)); |
if (local_entry.Get(IS_DEL) && server_entry.deleted()) |
return true; |
@@ -439,11 +449,12 @@ bool SyncerProtoUtil::Compare(const syncable::Entry& local_entry, |
LOG(WARNING) << "Client name mismatch"; |
return false; |
} |
- if (local_entry.Get(PARENT_ID) != server_entry.parent_id()) { |
+ if (local_entry.Get(PARENT_ID) != |
+ SyncableIdFromProto(server_entry.parent_id_string())) { |
LOG(WARNING) << "Parent ID mismatch"; |
return false; |
} |
- if (local_entry.Get(IS_DIR) != server_entry.IsFolder()) { |
+ if (local_entry.Get(IS_DIR) != IsFolder(server_entry)) { |
LOG(WARNING) << "Dir field mismatch"; |
return false; |
} |
@@ -492,7 +503,7 @@ const std::string& SyncerProtoUtil::NameFromSyncEntity( |
// static |
const std::string& SyncerProtoUtil::NameFromCommitEntryResponse( |
- const CommitResponse_EntryResponse& entry) { |
+ const sync_pb::CommitResponse_EntryResponse& entry) { |
if (entry.has_non_unique_name()) |
return entry.non_unique_name(); |
return entry.name(); |
@@ -534,7 +545,7 @@ std::string GetUpdatesResponseString( |
} // namespace |
std::string SyncerProtoUtil::ClientToServerResponseDebugString( |
- const sync_pb::ClientToServerResponse& response) { |
+ const ClientToServerResponse& response) { |
// Add more handlers as needed. |
std::string output; |
if (response.has_get_updates()) |