68 lines
1.5 KiB
Java
68 lines
1.5 KiB
Java
package f00f.net.irc.martyr;
|
|
|
|
import java.util.Observable;
|
|
import java.util.Observer;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
/**
|
|
* ClientStateMonitor asks commands to update the client state.
|
|
*/
|
|
public class ClientStateMonitor implements Observer
|
|
{
|
|
|
|
static Logger log = Logger.getLogger(ClientStateMonitor.class.getName());
|
|
|
|
private IRCConnection connection;
|
|
|
|
private boolean enabled = false;
|
|
|
|
/**
|
|
* This should only be called by the IRCConnection itself.
|
|
*
|
|
* @param connection Connection we are associated with
|
|
*/
|
|
ClientStateMonitor( IRCConnection connection )
|
|
{
|
|
this.connection = connection;
|
|
|
|
enable();
|
|
}
|
|
|
|
public void enable()
|
|
{
|
|
if( enabled )
|
|
return;
|
|
enabled = true;
|
|
|
|
connection.addCommandObserver( this );
|
|
}
|
|
|
|
public void disable()
|
|
{
|
|
if( !enabled )
|
|
return;
|
|
connection.removeCommandObserver( this );
|
|
enabled = false;
|
|
}
|
|
|
|
public void update( Observable observable, Object command_o )
|
|
{
|
|
InCommand command = (InCommand)command_o;
|
|
|
|
try
|
|
{
|
|
/*if( */command.updateClientState( connection.getClientState() );// )
|
|
//log.debug("ClientStateMonnitor: Client state updated");
|
|
}
|
|
catch( Throwable e )
|
|
{
|
|
log.log(Level.SEVERE,"ClientStateMonitor: Client state update failed.", e);
|
|
}
|
|
|
|
}
|
|
|
|
// ===== END ClientStateMonitor
|
|
}
|
|
|