blob: b9223766a94ac1a805fb7ab6cadb1fcd7f891004 [file] [log] [blame]
// 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
}