/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ package com.sleepycat.db; import com.sleepycat.db.internal.DbConstants; import com.sleepycat.db.internal.DbSite; /** A ReplicationManagerSite handle is used to manage a site in a replication group. ReplicationManagerSite handles are opened using the {@link com.sleepycat.db.Environment#getReplicationManagerSite Environment.getReplicationManagerSite} method. */ public class ReplicationManagerSite { private DbSite dbsite; /* package */ ReplicationManagerSite(final DbSite dbsite) throws DatabaseException { this.dbsite = dbsite; dbsite.wrapper = this; } /** Close the site. */ public void close() throws DatabaseException { dbsite.close(); } /** Get the address of the site. <p> @return the address of the site. */ public ReplicationHostAddress getAddress() throws DatabaseException { ReplicationHostAddress address = dbsite.get_address(); return address; } /** Get the address and configuration of the site. <p> @return the configuration of the site. */ public ReplicationManagerSiteConfig getConfig() throws DatabaseException { return new ReplicationManagerSiteConfig(dbsite); } /** Get the environment id of the site. <p> @return the environment id of the site. */ public int getEid() throws DatabaseException { return dbsite.get_eid(); } /** Set the site to be a helper site. <p> A remote site may be used as a helper when the local site first joins the replication group. Once the local site has been established as a member of the group, this config setting is ignored. <p> @param helper If true, the site will be a helper. */ public void setBootstrapHelper(final boolean helper) throws DatabaseException { dbsite.set_config(DbConstants.DB_BOOTSTRAP_HELPER, helper); } /** Return if the site is a helper for the local site. <p> @return If the site is a helper for the local site. */ public boolean getBootstrapHelper() throws DatabaseException { return dbsite.get_config(DbConstants.DB_BOOTSTRAP_HELPER); } /** Set the site to be a group creator. <p> Only the local site could be applied as a group creator. The group creator would create the initial membership database, defining a replication group of just the one site, rather than trying to join an existing group when it starts for the first time. <p> @param groupCreator If true, set the site to be a group creator. */ public void setGroupCreator(final boolean groupCreator) throws DatabaseException { dbsite.set_config(DbConstants.DB_GROUP_CREATOR, groupCreator); } /** Return if the site is a group creator. <p> @return If the the site is a group creator. */ public boolean getGroupCreator() throws DatabaseException { return dbsite.get_config(DbConstants.DB_GROUP_CREATOR); } /** Specify the site in a legacy group. It would be considered as part of an existing group, upgrading from a previous version of BDB. All sites in the legacy group must specify this for themselves (the local site) and for all other sites initially in the group. <p> @param legacy If true, specify the site in a legacy group. */ public void setLegacy(final boolean legacy) throws DatabaseException { dbsite.set_config(DbConstants.DB_LEGACY, legacy); } /** Return if the site is in a legacy group. <p> @return If the site is in a legacy group. */ public boolean getLegacy() throws DatabaseException { return dbsite.get_config(DbConstants.DB_LEGACY); } /** Set the site to be the local site. <p> @param localSite If true, it is local site. */ public void setLocalSite(final boolean localSite) throws DatabaseException { dbsite.set_config(DbConstants.DB_LOCAL_SITE, localSite); } /** Return if the site is the local site. <p> @return If the site is the local site. */ public boolean getLocalSite() throws DatabaseException { return dbsite.get_config(DbConstants.DB_LOCAL_SITE); } /** Set the site to be peer to local site. <p> A peer site may be used as a target for "client-to-client" synchronization messages. It only makes sense to specify this for a remote site. @param peer If true, it is peer to loca site. */ public void setPeer(final boolean peer) throws DatabaseException { dbsite.set_config(DbConstants.DB_REPMGR_PEER, peer); } /** Return if the site is peer to local site. <p> @return If the site is peer to local site. */ public boolean getPeer() throws DatabaseException { return dbsite.get_config(DbConstants.DB_REPMGR_PEER); } /** Remove the site. */ public void remove() throws DatabaseException { dbsite.remove(); } }