Standalone mode logon needs to be done less hackily now.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4572 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2007-02-13 00:20:02 +00:00
parent bc21aaa44d
commit de633c61b5
@@ -93,14 +93,6 @@ public class Client
} }
} }
/**
* Sets whether or not this client is operating in standalone mode.
*/
public void setStandalone (boolean standalone)
{
_standalone = standalone;
}
/** /**
* Checks whether or not this client is operating in a standalone mode. * Checks whether or not this client is operating in a standalone mode.
*/ */
@@ -431,13 +423,36 @@ public class Client
return true; return true;
} }
/**
* Prepares the client for a standalone mode logon. Returns the set of bootstrap service groups
* that should be supplied to the invocation manager to create our fake bootstrap record.
*/
public String[] prepareStandaloneLogon ()
{
_standalone = true;
notifyObservers(CLIENT_WILL_LOGON, null);
return getBootGroups();
}
/**
* Logs this client on in standalone mode with the faked bootstrap data and shared local
* distributed object manager.
*/
public void standaloneLogon (BootstrapData data, DObjectManager omgr)
{
if (!_standalone) {
throw new IllegalStateException("Must call prepareStandaloneLogon() first.");
}
gotBootstrap(data, omgr);
}
/** /**
* For standalone mode, this notifies observers that the client has logged off and cleans up. * For standalone mode, this notifies observers that the client has logged off and cleans up.
*/ */
public void standaloneLogoff () public void standaloneLogoff ()
{ {
notifyObservers(CLIENT_DID_LOGOFF, null); notifyObservers(CLIENT_DID_LOGOFF, null);
cleanup(null); cleanup(null); // this will set _standalone to false
} }
/** /**
@@ -445,7 +460,7 @@ public class Client
* client and server are being run in "merged" mode in a single JVM, this is how the client is * client and server are being run in "merged" mode in a single JVM, this is how the client is
* configured with the server's distributed object manager and provided with bootstrap data. * configured with the server's distributed object manager and provided with bootstrap data.
*/ */
public void gotBootstrap (BootstrapData data, DObjectManager omgr) protected void gotBootstrap (BootstrapData data, DObjectManager omgr)
{ {
Log.debug("Got bootstrap " + data + "."); Log.debug("Got bootstrap " + data + ".");