Added a mechanism for being informed when the connection manager fails to
bind to its socket. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3014 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ConnectionManager.java,v 1.38 2004/02/25 14:45:16 mdb Exp $
|
// $Id: ConnectionManager.java,v 1.39 2004/06/03 09:02:47 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.presents.server.net;
|
package com.threerings.presents.server.net;
|
||||||
|
|
||||||
@@ -57,6 +57,19 @@ public class ConnectionManager extends LoopingThread
|
|||||||
PresentsServer.registerReporter(this);
|
PresentsServer.registerReporter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configures the connection manager with an entity that will be
|
||||||
|
* informed of the success or failure of the connection manager
|
||||||
|
* initialization process. <em>Note:</em> the callback methods will be
|
||||||
|
* called on the connection manager thread, so be careful not to do
|
||||||
|
* anything on those methods that will conflict with activities on the
|
||||||
|
* dobjmgr thread, etc.
|
||||||
|
*/
|
||||||
|
public void setStartupListener (ResultListener rl)
|
||||||
|
{
|
||||||
|
_startlist = rl;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies the authenticator that should be used by the connection
|
* Specifies the authenticator that should be used by the connection
|
||||||
* manager to authenticate logon requests.
|
* manager to authenticate logon requests.
|
||||||
@@ -205,11 +218,21 @@ public class ConnectionManager extends LoopingThread
|
|||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
Log.warning("Failure listening to socket on port '" +_port + "'.");
|
Log.warning("Failure listening to socket on port '" +_port + "'.");
|
||||||
Log.logStackTrace(ioe);
|
Log.logStackTrace(ioe);
|
||||||
|
|
||||||
|
// notify our startup listener, if we have one
|
||||||
|
if (_startlist != null) {
|
||||||
|
_startlist.requestFailed(ioe);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// we'll use this for sending messages to clients
|
// we'll use this for sending messages to clients
|
||||||
_framer = new FramingOutputStream();
|
_framer = new FramingOutputStream();
|
||||||
|
|
||||||
|
// notify our startup listener, if we have one
|
||||||
|
if (_startlist != null) {
|
||||||
|
_startlist.requestCompleted(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -656,6 +679,7 @@ public class ConnectionManager extends LoopingThread
|
|||||||
protected Authenticator _author;
|
protected Authenticator _author;
|
||||||
protected Selector _selector;
|
protected Selector _selector;
|
||||||
protected ServerSocketChannel _listener;
|
protected ServerSocketChannel _listener;
|
||||||
|
protected ResultListener _startlist;
|
||||||
|
|
||||||
/** Maps selection keys to network event handlers. */
|
/** Maps selection keys to network event handlers. */
|
||||||
protected HashMap _handlers = new HashMap();
|
protected HashMap _handlers = new HashMap();
|
||||||
|
|||||||
Reference in New Issue
Block a user