// 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

import (
	"v.io/syncbase/v23/services/syncbase/nosql"
)

const (
	NoGroupId = GroupId(0)
)

// syncData represents the persistent state of the sync module.
type syncData struct {
	Id int64
}

// GroupId is a globally unique SyncGroup ID.
type GroupId uint64

// SyncGroup contains the state of a SyncGroup object.
type SyncGroup struct {
	Id      GroupId                               // globally unique identifier generated by Syncbase
	Name    string                                // globally unique Vanadium name chosen by app
	Version string                                // "etag" for concurrency control
	Spec    nosql.SyncGroupSpec                   // app-given specification
	Joiners map[string]nosql.SyncGroupMemberInfo  // map of joiners to their metadata
}
