/*
* This file is part of the Remote Sensor Actuator Interface (ReSAI).
*
* Copyright(c) Andreas Kipp, Frederic Siepmann
* http://opensource.cit-ec.de/projects/resai
*
* This file may be licensed under the terms of of the
* GNU Lesser General Public License Version 3 (the ``LGPL''),
* or (at your option) any later version.
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the LGPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the LGPL along with this
* program. If not, go to http://www.gnu.org/licenses/lgpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* The development of this software was supported by the
* Excellence Cluster EXC 277 Cognitive Interaction Technology.
* The Excellence Cluster EXC 277 is a grant of the Deutsche
* Forschungsgemeinschaft (DFG) in the context of the German
* Excellence Initiative.
*
*/

/**
 * Interface for the communicator.
 *
 * @author akipp
 */

package de.unibi.airobots.resaijavaclient.communicaton;

import java.util.HashMap;

public interface CommunicatorInterface {
	
	public abstract void initConnection(String _server, int _port);

	public abstract boolean isConnected();

	public abstract boolean isAuthenticated();

	public abstract void login(String _user, String _pass);

	public abstract void connect();

	public abstract void disconnect();
	
	public abstract void sendMessage(String recipient,
			HashMap<String, String> properties);

	public abstract void sendMessage(String recipient,
			HashMap<String, String> properties, String body);
	
	public abstract void sendError(String recipient, Exception e);
	
	public abstract void setServerAccount(String serverAccount);
	public abstract String getServerAccount();

}