Index: chrome/browser/sync/engine/syncproto.h |
=================================================================== |
--- chrome/browser/sync/engine/syncproto.h (revision 0) |
+++ chrome/browser/sync/engine/syncproto.h (revision 0) |
@@ -0,0 +1,72 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+// |
+// Wrappers to help us work with ids and protobuffers. |
+ |
+#ifndef CHROME_BROWSER_SYNC_ENGINE_SYNCPROTO_H_ |
+#define CHROME_BROWSER_SYNC_ENGINE_SYNCPROTO_H_ |
+ |
+#include "chrome/browser/sync/protocol/sync.pb.h" |
+#include "chrome/browser/sync/syncable/syncable_id.h" |
+ |
+namespace browser_sync { |
+ |
+template<class Base> |
+class IdWrapper : public Base { |
+ public: |
+ syncable::Id id() const { |
+ return syncable::Id::CreateFromServerId(Base::id_string()); |
+ } |
+ void set_id(const syncable::Id& id) { |
+ Base::set_id_string(id.GetServerId()); |
+ } |
+}; |
+ |
+// These wrapper classes contain no data, so their super |
+// classes can be cast to them directly. |
+class SyncEntity : public IdWrapper<sync_pb::SyncEntity> { |
+ public: |
+ void set_parent_id(const syncable::Id& id) { |
+ set_parent_id_string(id.GetServerId()); |
+ } |
+ syncable::Id parent_id() const { |
+ return syncable::Id::CreateFromServerId(parent_id_string()); |
+ } |
+ void set_old_parent_id(const syncable::Id& id) { |
+ IdWrapper<sync_pb::SyncEntity>::set_old_parent_id( |
+ id.GetServerId()); |
+ } |
+ syncable::Id old_parent_id() const { |
+ return syncable::Id::CreateFromServerId( |
+ sync_pb::SyncEntity::old_parent_id()); |
+ } |
+ // Binary predicate helper to determine whether an Entity represents a folder |
+ // or non-folder object. Use this instead of checking these properties |
+ // directly, because the addition of bookmarks to the protobuf schema |
+ // makes the check slightly more tricky. |
+ bool IsFolder() const { |
+ return (!has_bookmarkdata() || bookmarkdata().bookmark_folder()); |
+ } |
+}; |
+ |
+class CommitResponse_EntryResponse |
+ : public IdWrapper<sync_pb::CommitResponse_EntryResponse> { |
+}; |
+ |
+class ClientToServerMessage : public sync_pb::ClientToServerMessage { |
+ public: |
+ ClientToServerMessage() { |
+ set_protocol_version(protocol_version()); |
+ } |
+}; |
+ |
+typedef sync_pb::CommitMessage CommitMessage; |
+typedef sync_pb::ClientToServerResponse ClientToServerResponse; |
+typedef sync_pb::CommitResponse CommitResponse; |
+typedef sync_pb::GetUpdatesResponse GetUpdatesResponse; |
+typedef sync_pb::GetUpdatesMessage GetUpdatesMessage; |
+ |
+} // namespace browser_sync |
+ |
+#endif // CHROME_BROWSER_SYNC_ENGINE_SYNCPROTO_H_ |
Property changes on: chrome\browser\sync\engine\syncproto.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |