From 3c4c71b3c79d94a27a264ba16f8e30e259c390fd Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sun, 16 Dec 2001 05:39:16 +0000 Subject: [PATCH] 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 --- .../threerings/whirled/server/SceneProvider.java | 16 ++++++++++++++-- .../threerings/whirled/server/SceneRegistry.java | 10 ++++++++-- .../threerings/whirled/server/WhirledServer.java | 4 ++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/java/com/threerings/whirled/server/SceneProvider.java b/src/java/com/threerings/whirled/server/SceneProvider.java index 6922086dd..85df3eca3 100644 --- a/src/java/com/threerings/whirled/server/SceneProvider.java +++ b/src/java/com/threerings/whirled/server/SceneProvider.java @@ -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; } diff --git a/src/java/com/threerings/whirled/server/SceneRegistry.java b/src/java/com/threerings/whirled/server/SceneRegistry.java index cb705ab3e..81129ebee 100644 --- a/src/java/com/threerings/whirled/server/SceneRegistry.java +++ b/src/java/com/threerings/whirled/server/SceneRegistry.java @@ -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); } /** diff --git a/src/java/com/threerings/whirled/server/WhirledServer.java b/src/java/com/threerings/whirled/server/WhirledServer.java index d50a0303b..05bcccc7d 100644 --- a/src/java/com/threerings/whirled/server/WhirledServer.java +++ b/src/java/com/threerings/whirled/server/WhirledServer.java @@ -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));