/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
package com.ubergeek42.weechat.relay.connection;
import com.ubergeek42.weechat.relay.RelayMessage;
public interface Connection {
////////////////////////////////////////////////////////////////////////////////////// lifecycle
enum STATE {
UNKNOWN,
CONNECTING,
CONNECTED,
AUTHENTICATED,
BUFFERS_LISTED,
DISCONNECTED,
}
STATE getState();
void connect();
void disconnect();
/////////////////////////////////////////////////////////////////////////////////////////// send
void sendMessage(String string);
/////////////////////////////////////////////////////////////////////////////////////// observer
void setObserver(Observer observer);
interface Observer {
void onStateChanged(STATE state);
void onException(Exception e);
void onMessage(RelayMessage message);
}
}