package chat;

import java.util.ArrayList;
import java.util.List;

/**
 * Manages a collection of chat clients.
 */

public class ChatHub {

	private List<ChatHandler> clients_;

	public ChatHub () {
		clients_ = new ArrayList<ChatHandler>();
	}

	public synchronized void addClient ( ChatHandler client ) {
		clients_.add(client);
	}

	public synchronized void removeClient ( ChatHandler client ) {
		clients_.remove(client);
	}

	/**
	 * Sends message to every connected client.
	 */
	public synchronized void broadcast ( String message ) {
		for ( ChatHandler client : clients_ ) {
			client.send(message);
		}
	}

	public synchronized int getClientCount () {
		return clients_.size();
	}

}
