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; package com.threerings.whirled.server;
@@ -22,6 +22,15 @@ import com.threerings.whirled.data.SceneModel;
public class SceneProvider extends InvocationProvider public class SceneProvider extends InvocationProvider
implements SceneCodes 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. * 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 // make sure the scene they are headed to is actually loaded into
// the server // 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()); 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; package com.threerings.whirled.server;
@@ -9,6 +9,8 @@ import java.util.Properties;
import com.samskivert.util.HashIntMap; import com.samskivert.util.HashIntMap;
import com.threerings.presents.util.Invoker; import com.threerings.presents.util.Invoker;
import com.threerings.presents.server.InvocationManager;
import com.threerings.crowd.server.CrowdServer; import com.threerings.crowd.server.CrowdServer;
import com.threerings.crowd.server.PlaceManager; import com.threerings.crowd.server.PlaceManager;
@@ -39,13 +41,17 @@ public class SceneRegistry
* Constructs a scene registry, instructing it to load and store * Constructs a scene registry, instructing it to load and store
* scenes using the supplied scene repository. * scenes using the supplied scene repository.
*/ */
public SceneRegistry (SceneRepository screp) public SceneRegistry (InvocationManager invmgr, SceneRepository screp)
{ {
_screp = screp; _screp = screp;
// use a default runtime scene factory for now; assume that // use a default runtime scene factory for now; assume that
// containing systems will call setRuntimeSceneFactory() later // containing systems will call setRuntimeSceneFactory() later
_scfact = new DefaultRuntimeSceneFactory(); _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; package com.threerings.whirled.server;
@@ -58,7 +58,7 @@ public class WhirledServer extends CrowdServer
_screp = createSceneRepository(conprov); _screp = createSceneRepository(conprov);
// create our scene registry // create our scene registry
screg = new SceneRegistry(_screp); screg = new SceneRegistry(invmgr, _screp);
// register our invocation service providers // register our invocation service providers
registerProviders(config.getValue(PROVIDERS_KEY, (String[])null)); registerProviders(config.getValue(PROVIDERS_KEY, (String[])null));