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

Unified Diff: blimp/common/proto/helium.proto

Issue 2377873002: Initial definition of HeliumSyncManager and SyncRegistration objects. (Closed)
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: blimp/common/proto/helium.proto
diff --git a/blimp/common/proto/helium.proto b/blimp/common/proto/helium.proto
new file mode 100644
index 0000000000000000000000000000000000000000..e790f5c2214f65ecab2a9d3ae03879ae0ea230ff
--- /dev/null
+++ b/blimp/common/proto/helium.proto
@@ -0,0 +1,54 @@
+// Copyright 2016 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.
+//
+// Over-the-wire message definitions used for the Helium
+// synchronization protocol.
+
+syntax = "proto2";
scf 2016/09/28 17:17:59 use proto3 as you describe no?
+
+option optimize_for = LITE_RUNTIME;
+
+import "blimp_message.proto";
+
+package blimp.proto;
scf 2016/09/28 17:18:00 i've noticed other proto files use "package blimp"
+
+// A FIFO queue of BlimpMessages, for compatibility with features which use
+// the legacy protocol. Should be removed once all features use Helium.
+message TransitionalChangeset {
scf 2016/09/28 17:17:59 rename it to LegacyChangeset?
perumaal 2016/09/28 23:31:30 I am confused. Wouldn't you want to wrap a HeliumM
+ repeated BlimpMessage messages = 1;
+}
+
+message HeliumRevision {
scf 2016/09/28 17:18:00 Call it HeliumVectorClock so that it matches the c
+ optional int32 local_revision = 1;
scf 2016/09/28 17:18:00 uint32 so that matches the VectorClock
+ optional int32 remote_revision = 2;
+}
+
+message HeliumChangeset {
+ oneof changes { TransitionalChangeset transitional = 1; }
+}
+
+message HeliumMessage {
+ // Identifies the local revision that this changeset applies to (relative
+ // to the sender), and the remote revision that the local side most recently
+ // received (i.e. an ACK, in effect).
+ // Note that the local revision can usually be inferred rather than actually
+ // sent on the wire. Similarly the remote revision may be omitted if it
+ // hasn’t changed since the last changeset was sent.
+ optional HeliumRevision reference_revision = 1;
scf 2016/09/28 17:17:59 i like calling from/to as it matches the sync_mana
+
+ // Provides the local view of the vector-clock following application of
+ // the changeset. This allows a single changeset to collate changes across
+ // several revisions, following a break in connectivity, rather than simply
+ // re-transmitting the lost changesets.
+ // Note that this can usually be inferred rather than send on-the-wire.
+ optional HeliumRevision changeset_revision = 2;
+
+ // Identifies the Object to which this changeset applies.
+ // Note that this may be omitted if the previous message on this Stream
+ // was for the same Object.
+ optional int32 object_id = 3;
scf 2016/09/28 17:17:59 change to uint32 for consistency with HeliumObject
+
+ // Changeset to be applied to the relevant Object.
+ optional HeliumChangeset changeset = 4;
+}

Powered by Google App Engine
This is Rietveld 408576698