1 /** 2 * Tribe: Group communication library. 3 * Copyright (C) 2004 French National Institute For Research In Computer 4 * Science And Control (INRIA). 5 * Contact: tribe@objectweb.org 6 * 7 * This library is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as published by the 9 * Free Software Foundation; either version 2.1 of the License, or any later 10 * version. 11 * 12 * This library is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 15 * for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public License 18 * along with this library; if not, write to the Free Software Foundation, 19 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 20 * 21 * Initial developer(s): Emmanuel Cecchet. 22 * Contributor(s): ______________________. 23 */ 24 25 package org.objectweb.tribe.channel; 26 27 import org.objectweb.tribe.common.Address; 28 import org.objectweb.tribe.exceptions.ChannelException; 29 import org.objectweb.tribe.exceptions.NotConnectedException; 30 31 /** 32 * This class defines a AbstractServerChannel to accept new connections. 33 * 34 * @author <a HREF="mailto:Emmanuel.Cecchet@inria.fr">Emmanuel Cecchet </a> 35 * @version 1.0 36 */ 37 public abstract class AbstractServerChannel 38 { 39 40 /** 41 * Binds a source address 42 * 43 * @param source source address to bind 44 * @throws ChannelException if an error occurs 45 */ 46 public abstract void bind(Address source) throws ChannelException; 47 48 /** 49 * Accepts a new incoming connection. 50 * 51 * @return the new serverSocket 52 * @throws ChannelException if an error occurs 53 */ 54 public abstract AbstractReliableFifoChannel accept() throws ChannelException; 55 56 /** 57 * Get the address on which this channel is bound. 58 * 59 * @throws NotConnectedException if the channel is not connected. 60 */ 61 public abstract Address getBindAddress() throws NotConnectedException; 62 63 /** 64 * Closes the serverSocket. 65 * 66 * @throws ChannelException if an error occurs. 67 */ 68 public abstract void close() throws ChannelException; 69 70 }