Modified the SceneProvider to take its managers at construct time and made

the scene registry automatically register the scene provider when it is
constructed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@791 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2001-12-16 05:39:16 +00:00
parent c105a3d882
commit 3c4c71b3c7
3 changed files with 24 additions and 6 deletions
@@ -1,5 +1,5 @@
//
// $Id: SceneProvider.java,v 1.6 2001/12/14 23:12:38 mdb Exp $
// $Id: SceneProvider.java,v 1.7 2001/12/16 05:39:16 mdb Exp $
package com.threerings.whirled.server;
@@ -22,6 +22,15 @@ import com.threerings.whirled.data.SceneModel;
public class SceneProvider extends InvocationProvider
implements SceneCodes
{
/**
* Constructs a scene provider that will interact with the supplied
* scene registry.
*/
public SceneProvider (SceneRegistry screg)
{
_screg = screg;
}
/**
* Processes a request from a client to move to a new scene.
*/
@@ -56,7 +65,7 @@ public class SceneProvider extends InvocationProvider
// make sure the scene they are headed to is actually loaded into
// the server
WhirledServer.screg.resolveScene(sceneId, rl);
_screg.resolveScene(sceneId, rl);
}
/**
@@ -91,4 +100,7 @@ public class SceneProvider extends InvocationProvider
sendResponse(source, invid, MOVE_FAILED_RESPONSE, sfe.getMessage());
}
}
/** The scene registry with which we interact. */
protected SceneRegistry _screg;
}
@@ -1,5 +1,5 @@
//
// $Id: SceneRegistry.java,v 1.12 2001/12/14 01:51:46 mdb Exp $
// $Id: SceneRegistry.java,v 1.13 2001/12/16 05:39:16 mdb Exp $
package com.threerings.whirled.server;
@@ -9,6 +9,8 @@ import java.util.Properties;
import com.samskivert.util.HashIntMap;
import com.threerings.presents.util.Invoker;
import com.threerings.presents.server.InvocationManager;
import com.threerings.crowd.server.CrowdServer;
import com.threerings.crowd.server.PlaceManager;
@@ -39,13 +41,17 @@ public class SceneRegistry
* Constructs a scene registry, instructing it to load and store
* scenes using the supplied scene repository.
*/
public SceneRegistry (SceneRepository screp)
public SceneRegistry (InvocationManager invmgr, SceneRepository screp)
{
_screp = screp;
// use a default runtime scene factory for now; assume that
// containing systems will call setRuntimeSceneFactory() later
_scfact = new DefaultRuntimeSceneFactory();
// create/register a scene provider with the invocation services
SceneProvider provider = new SceneProvider(this);
invmgr.registerProvider(SceneProvider.MODULE_NAME, provider);
}
/**
@@ -1,5 +1,5 @@
//
// $Id: WhirledServer.java,v 1.10 2001/12/03 22:07:31 mdb Exp $
// $Id: WhirledServer.java,v 1.11 2001/12/16 05:39:16 mdb Exp $
package com.threerings.whirled.server;
@@ -58,7 +58,7 @@ public class WhirledServer extends CrowdServer
_screp = createSceneRepository(conprov);
// create our scene registry
screg = new SceneRegistry(_screp);
screg = new SceneRegistry(invmgr, _screp);
// register our invocation service providers
registerProviders(config.getValue(PROVIDERS_KEY, (String[])null));