package authentication;

import java.io.IOException;

/**
 * \interface AuthenticationManager
 * Provides an authentication manager model.
 */
public interface AuthenticationManager {
	
	/**
	 * add a user
	 * \param login login of the user
	 * \param password password of the user
	 */
	public void addUser(String login, String password) throws UserExistsException;
	
	/**
	 * remove a user
	 * \param login login of the user
	 */
	public void removeUser(String login) throws UserUnknownException;
	
	/**
	 * login as a user
	 * \param login login of the user
	 * \param password of the user
	 */
	public void authentify(String login, String password) throws UserUnknownException, WrongPasswordException;
	
	/**
	 * load the user already registered
	 * \param path path of the file
	 */
	//public void load(String path);
	
	/**
	 * save the users
	 * \param path path of the file
	 */
	public void save(String path) throws IOException;
}
