/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ /** * */ package org.xmind.core.command.remote; /** * A command service domain represents a specific range of access to command * services, and provides a local command server and a remote command service * discoverer for building/registering a command server and searching for remote * command servers within this range. For example, a LAN command service domain * may provide a command server that binds itself on a local server socket and * use Zeroconf's DNS Service Discovery as the implementor of the remote command * service discoverer for searching for remote command services within the local * area network. * * <p> * Connections to this domain should be made before the local command server and * remote command service discoverer can return accurate results. * </p> * * @author Frank Shaka */ public interface ICommandServiceDomain { /** * Returns the unique identifier of this domain. * * @return the unqieu identifier of this domain */ String getId(); /** * Returns the display name of this domain. * * @return the display name of this domain */ String getName(); /** * Returns the director of this command service domain. The director is * responsible for controlling the lifecycle of this domain. * * @return the director of this command service domain, never * <code>null</code> */ ICommandServiceDomainDirector getDirector(); /** * Returns the command server that will be deployed on the local machine. * The command server is responsible for handling command requests sent from * remote clients. The information of this command server will be advertised * across this domain by an advertiser. * * @return the command server, never <code>null</code> */ ICommandServer getCommandServer(); /** * Returns the advertiser for this domain's local command server. The * advertiser is responsible for broadcasting the information of the local * command server across the domain and registering it as a remote command * service within this domain. * * @return the command server advertiser, never <code>null</code> */ ICommandServerAdvertiser getCommandServerAdvertiser(); /** * Returns the remote command service discoverer for this domain. The * discoverer is responsible for searching for available remote command * services and provide clients methods to access them. * * @return the remote command service discoverer, never <code>null</code> */ IRemoteCommandServiceDiscoverer getRemoteCommandServiceDiscoverer(); }