package org.red5.server.api; /* * RED5 Open Source Flash Server - http://www.osflash.org/red5 * * Copyright (c) 2006-2009 by respective authors (see below). All rights reserved. * * This library is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software * Foundation; either version 2.1 of the License, or (at your option) any later * version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ import java.util.Iterator; import java.util.Map; import org.red5.server.api.listeners.IConnectionListener; import org.red5.server.api.listeners.IScopeListener; /** * The interface that represents the Red5 server. * * @author The Red5 Project (red5@osflash.org) * @author Luke Hubbard (luke@codegent.com) * */ public interface IServer { /** * Server ID */ public static final String ID = "red5.server"; /** * Get the global scope with given name. * * @param name Name of the global scope * @return the global scope */ public IGlobalScope getGlobal(String name); /** * Register a global scope. * * @param scope The global scope to register */ public void registerGlobal(IGlobalScope scope); /** * Lookup the global scope for a host. * * @param hostName The name of the host * @param contextPath The path in the host * @return The found global scope or <code>null</code> */ public IGlobalScope lookupGlobal(String hostName, String contextPath); /** * Map a virtual hostname and a path to the name of a global scope. * * @param hostName The name of the host to map * @param contextPath The path to map * @param globalName The name of the global scope to map to * @return <code>true</code> if the name was mapped, otherwise * <code>false</code> */ public boolean addMapping(String hostName, String contextPath, String globalName); /** * Unregister a previously mapped global scope. * * @param hostName The name of the host to unmap * @param contextPath The path for this host to unmap * @return <code>true</code> if the global scope was unmapped, otherwise * <code>false</code> */ public boolean removeMapping(String hostName, String contextPath); /** * Query informations about the global scope mappings. * * @return Map containing informations about the mappings */ public Map<String, String> getMappingTable(); /** * Get list of global scope names. * * @return Iterator for names of global scopes */ public Iterator<String> getGlobalNames(); /** * Get list of global scopes. * * @return Iterator for global scopes objects */ public Iterator<IGlobalScope> getGlobalScopes(); /** * Add listener to get notified about scope events. * * @param listener the listener to add */ public void addListener(IScopeListener listener); /** * Add listener to get notified about connection events. * * @param listener the listener to add */ public void addListener(IConnectionListener listener); /** * Remove listener that got notified about scope events. * * @param listener the listener to remove */ public void removeListener(IScopeListener listener); /** * Remove listener that got notified about connection events. * * @param listener the listener to remove */ public void removeListener(IConnectionListener listener); }