blob: eb63a8768093a037aebd68fdff3cc021e3e46efe [file] [log] [blame]
// Copyright 2016 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 io.v.syncbase.core;
import java.util.List;
import java.util.Map;
public class Syncgroup {
private String dbFullName;
private Id id;
protected Syncgroup(Database database, Id id) {
dbFullName = database.fullName;
this.id = id;
}
public Id getId() {
return id;
}
public void create(SyncgroupSpec spec, SyncgroupMemberInfo info) throws VError {
io.v.syncbase.internal.Database.CreateSyncgroup(dbFullName, id, spec, info);
}
public SyncgroupSpec join(String remoteSyncbaseName, List<String> expectedSyncbaseBlessings,
SyncgroupMemberInfo info)
throws VError {
return io.v.syncbase.internal.Database.JoinSyncgroup(
dbFullName, remoteSyncbaseName, expectedSyncbaseBlessings, id, info);
}
public void leave() throws VError {
io.v.syncbase.internal.Database.LeaveSyncgroup(dbFullName, id);
}
public void destroy() throws VError {
io.v.syncbase.internal.Database.DestroySyncgroup(dbFullName, id);
}
public void eject(String member) throws VError {
io.v.syncbase.internal.Database.EjectFromSyncgroup(dbFullName, id, member);
}
public VersionedSyncgroupSpec getSpec() throws VError {
return io.v.syncbase.internal.Database.GetSyncgroupSpec(dbFullName, id);
}
public void setSpec(VersionedSyncgroupSpec spec) throws VError {
io.v.syncbase.internal.Database.SetSyncgroupSpec(dbFullName, id, spec);
}
public Map<String, SyncgroupMemberInfo> getMembers() throws VError {
return io.v.syncbase.internal.Database.GetSyncgroupMembers(dbFullName, id);
}
}