OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 // | |
5 // Over-the-wire message definitions used for the Helium | |
6 // synchronization protocol. | |
7 | |
8 syntax = "proto2"; | |
scf
2016/09/28 17:17:59
use proto3 as you describe no?
| |
9 | |
10 option optimize_for = LITE_RUNTIME; | |
11 | |
12 import "blimp_message.proto"; | |
13 | |
14 package blimp.proto; | |
scf
2016/09/28 17:18:00
i've noticed other proto files use "package blimp"
| |
15 | |
16 // A FIFO queue of BlimpMessages, for compatibility with features which use | |
17 // the legacy protocol. Should be removed once all features use Helium. | |
18 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
| |
19 repeated BlimpMessage messages = 1; | |
20 } | |
21 | |
22 message HeliumRevision { | |
scf
2016/09/28 17:18:00
Call it HeliumVectorClock so that it matches the c
| |
23 optional int32 local_revision = 1; | |
scf
2016/09/28 17:18:00
uint32 so that matches the VectorClock
| |
24 optional int32 remote_revision = 2; | |
25 } | |
26 | |
27 message HeliumChangeset { | |
28 oneof changes { TransitionalChangeset transitional = 1; } | |
29 } | |
30 | |
31 message HeliumMessage { | |
32 // Identifies the local revision that this changeset applies to (relative | |
33 // to the sender), and the remote revision that the local side most recently | |
34 // received (i.e. an ACK, in effect). | |
35 // Note that the local revision can usually be inferred rather than actually | |
36 // sent on the wire. Similarly the remote revision may be omitted if it | |
37 // hasn’t changed since the last changeset was sent. | |
38 optional HeliumRevision reference_revision = 1; | |
scf
2016/09/28 17:17:59
i like calling from/to as it matches the sync_mana
| |
39 | |
40 // Provides the local view of the vector-clock following application of | |
41 // the changeset. This allows a single changeset to collate changes across | |
42 // several revisions, following a break in connectivity, rather than simply | |
43 // re-transmitting the lost changesets. | |
44 // Note that this can usually be inferred rather than send on-the-wire. | |
45 optional HeliumRevision changeset_revision = 2; | |
46 | |
47 // Identifies the Object to which this changeset applies. | |
48 // Note that this may be omitted if the previous message on this Stream | |
49 // was for the same Object. | |
50 optional int32 object_id = 3; | |
scf
2016/09/28 17:17:59
change to uint32 for consistency with HeliumObject
| |
51 | |
52 // Changeset to be applied to the relevant Object. | |
53 optional HeliumChangeset changeset = 4; | |
54 } | |
OLD | NEW |