// // $Id: ClientObserver.java,v 1.2 2001/05/30 23:58:31 mdb Exp $ package com.threerings.cocktail.cher.client; /** * A client observer is registered with the client instance to be notified * when state changes happen within the client. Specifically, logon * sucess/failure and logoff. * *

These callbacks happen on the client thread and should therefore * not be used to perform any complex action or do much more than relay * the signal to some other thread (like the AWT thread) to act more fully * on the notice. * *

In the normal course of affairs, clientDidLogon will * be called after the client successfully logs on to the server and * clientDidLogoff will be called after the client logs off * of the server. If logon fails for any reson, * clientFailedToLogon will be called to explain the failure. * *

clientWillLogoff will only be called when an abortable * logoff is requested (like when the user clicks on a logoff button of * some sort). It will not be called during non-abortable logoff requests * (like when the browser calls stop on the applet and is about to yank * the rug out from under us). If an observer aborts the logoff request, * it should notify the user in some way why the request was aborted * (but it shouldn't do so on the thread that calls * clientWillLogoff). * *

If the client connection fails unexpectedly, * clientConnectionFailed will be called to let the * observers know that we lost our connection to the * server. clientDidLogoff will be called immediately * afterwards as a normal logoff procedure is effected. */ public interface ClientObserver { /** * Called after the client successfully connected to and authenticated * with the server. The entire object system is up and running by the * time this method is called. */ public void clientDidLogon (Client client); /** * Called if anything fails during the logon attempt. This could be a * network failure, authentication failure or otherwise. The exception * provided will indicate the cause of the failure. */ public void clientFailedToLogon (Client client, Exception cause); /** * Called when the connection to the server went away for some * unexpected reason. This will be followed by a call to * clientDidLogoff. */ public void clientConnectionFailed (Client client, Exception cause); /** * Called when an abortable logoff requrest is made. If the observer * returns false from this method, the client will abort the logoff * request. */ public boolean clientWillLogoff (Client client); /** * Called after the client has been logged off of the server and has * disconnected. */ public void clientDidLogoff (Client client); }