/**
 * Copyright (c) 2001/2003 Distributed Systems Research Group.
 * All rights reserved.
 *
 * For more information on Distributed Systems Research Group (DSRG),
 * please see <http://www.ics.agh.edu.pl/>.
 *
 * @author radzisz
 * file name: NoteBoard.java
 *
 */
package edu.agh.sr.madej;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Interfejs zdalnego obiektu talbicy.
 */
public interface NoteBoard extends Remote {

	/**
	 * Dodaje linijke tekstu do tablicy.
	 *
	 * @param text tekst
	 * @param nick identyfikator klienta dodajacego
	 */
	public void appendText(String text, String nick) throws RemoteException, UserRejectedException;
	
	/**
	 * Rejestruje klienta.
	 *
	 * @param listener referencja do zdalnego obiektu klienta
	 * @param user obiekt klasy opisujacej rejestrujacego sie klienta
	 */
	public void register(NoteBoardListener listener, User user) throws RemoteException, UserRejectedException;
	
	/**
	 * Wyrejestrowywuje klienta
	 * 
	 * @param listener referencja do zdalnego obiektu klienta
	 * @param user obiekt klasy opisujacej klienta
	 */
	public void unRegister(NoteBoardListener listener, User user) throws RemoteException, UserRejectedException;
}