syncbase/vsync: Scaffolding to start integrating sync into store.
Change-Id: I2d63421cd1726408039fcd03f1cc58b8c9c42ef9
diff --git a/services/syncbase/vsync/sync.vdl b/services/syncbase/vsync/sync.vdl
new file mode 100644
index 0000000..b922376
--- /dev/null
+++ b/services/syncbase/vsync/sync.vdl
@@ -0,0 +1,29 @@
+// Copyright 2015 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package vsync
+
+// Sync defines methods for data exchange between Syncbases.
+// TODO(hpucha): Flesh this out further.
+type Sync interface {
+ // GetDeltas returns the responder's current generation vector
+ // and all the missing log records when compared to the
+ // initiator's generation vector.
+ GetDeltas() error
+
+ // SyncGroup-related methods.
+ // TODO(hpucha): Think of better names for these methods.
+
+ // CreateSyncGroup is typically invoked on a "central" peer to
+ // request the creation of a SyncGroup.
+ CreateSyncGroup() error
+
+ // JoinSyncGroup is invoked on a SyncGroup Admin and checks if
+ // the requestor can join the SyncGroup.
+ JoinSyncGroup() error
+
+ // BlobSync methods.
+ // FetchBlob returns the requested blob.
+ FetchBlob() error
+}