From b0ec20eff9dc59bad97d00d98b80bd3ff4a96c72 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 18 Jul 2007 21:58:16 +0000 Subject: [PATCH] Widening. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4776 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../crowd/server/LocationProvider.java | 89 ++++++++----------- 1 file changed, 36 insertions(+), 53 deletions(-) diff --git a/src/java/com/threerings/crowd/server/LocationProvider.java b/src/java/com/threerings/crowd/server/LocationProvider.java index 96db2d7ef..0984772f8 100644 --- a/src/java/com/threerings/crowd/server/LocationProvider.java +++ b/src/java/com/threerings/crowd/server/LocationProvider.java @@ -47,8 +47,7 @@ public class LocationProvider /** * Creates a location provider and prepares it for operation. */ - public LocationProvider (InvocationManager invmgr, RootDObjectManager omgr, - PlaceRegistry plreg) + public LocationProvider (InvocationManager invmgr, RootDObjectManager omgr, PlaceRegistry plreg) { // we'll need these later _invmgr = invmgr; @@ -57,18 +56,13 @@ public class LocationProvider } /** - * Requests that this client's body be moved to the specified - * location. + * Requests that this client's body be moved to the specified location. * - * @param caller the client object of the client that invoked this - * remotely callable method. - * @param placeId the object id of the place object to which the body - * should be moved. - * @param listener the listener that will be informed of success or - * failure. + * @param caller the client object of the client that invoked this remotely callable method. + * @param placeId the object id of the place object to which the body should be moved. + * @param listener the listener that will be informed of success or failure. */ - public void moveTo (ClientObject caller, int placeId, - LocationService.MoveListener listener) + public void moveTo (ClientObject caller, int placeId, LocationService.MoveListener listener) throws InvocationException { // do the move and send the response @@ -85,14 +79,13 @@ public class LocationProvider } /** - * Moves the specified body from whatever location they currently - * occupy to the location identified by the supplied place id. + * Moves the specified body from whatever location they currently occupy to the location + * identified by the supplied place id. * * @return the config object for the new location. * - * @exception ServiceFaildException thrown if the move was not - * successful for some reason (which will be communicated as an error - * code in the exception's message data). + * @exception ServiceFaildException thrown if the move was not successful for some reason + * (which will be communicated as an error code in the exception's message data). */ public PlaceConfig moveTo (BodyObject source, int placeId) throws InvocationException @@ -102,18 +95,16 @@ public class LocationProvider // make sure the place in question actually exists PlaceManager pmgr = _plreg.getPlaceManager(placeId); if (pmgr == null) { - Log.info("Requested to move to non-existent place " + - "[who=" + source.who() + ", place=" + placeId + "]."); + Log.info("Requested to move to non-existent place [who=" + source.who() + + ", place=" + placeId + "]."); throw new InvocationException(NO_SUCH_PLACE); } - // if they're already in the location they're asking to move to, - // just give them the config because we don't need to update - // anything in distributed object world + // if they're already in the location they're asking to move to, just give them the config + // because we don't need to update anything in distributed object world if (source.location == placeId) { - Log.debug("Going along with client request to move to where " + - "they already are [source=" + source.who() + - ", placeId=" + placeId + "]."); + Log.debug("Going along with client request to move to where they already are " + + "[source=" + source.who() + ", placeId=" + placeId + "]."); return pmgr.getConfig(); } @@ -122,17 +113,14 @@ public class LocationProvider if ((errmsg = pmgr.ratifyBodyEntry(source)) != null) { throw new InvocationException(errmsg); } - - // acquire a lock on the body object to ensure that rapid fire - // moveTo requests don't break things + + // acquire a lock on the body object to avoid breakage by rapid fire moveTo requests if (!source.acquireLock("moveToLock")) { - // if we're still locked, a previous moveTo request hasn't - // been fully processed + // if we're still locked, a previous moveTo request hasn't been fully processed throw new InvocationException(MOVE_IN_PROGRESS); } - // configure the client accordingly if they're moving to a place - // that uses a custom class loader + // configure the client accordingly if the place uses a custom class loader PresentsClient client = CrowdServer.clmgr.getClient(source.username); if (client != null) { client.setClassLoader(_plreg.getClassLoader(pmgr.getConfig())); @@ -141,8 +129,8 @@ public class LocationProvider try { PlaceObject place = pmgr.getPlaceObject(); - // the doubly nested try catch is to prevent failure if one or - // the other of the transactions fails to start + // the doubly nested try catch is to prevent failure if one or the other of the + // transactions fails to start place.startTransaction(); try { source.startTransaction(); @@ -150,8 +138,7 @@ public class LocationProvider // remove them from any previous location leaveOccupiedPlace(source); - // generate a new occupant info record (which will add - // it to the target location) + // generate a new occinfo record (which will add it to the target location) pmgr.buildOccupantInfo(source); // set the body's new location @@ -168,8 +155,7 @@ public class LocationProvider } } finally { - // and finally queue up a lock release event to release the - // lock once all these events are processed + // and finally queue up an event to release the lock once these events are processed source.releaseLock("moveToLock"); } @@ -177,8 +163,8 @@ public class LocationProvider } /** - * Removes the specified body from the place object they currently - * occupy. Does nothing if the body is not currently in a place. + * Removes the specified body from the place object they currently occupy. Does nothing if the + * body is not currently in a place. */ public void leaveOccupiedPlace (BodyObject source) { @@ -207,14 +193,13 @@ public class LocationProvider } } else { - Log.info("Body's prior location no longer around? " + - "[boid=" + bodoid + ", poid=" + oldloc + "]."); + Log.info("Body's prior location no longer around? [boid=" + bodoid + + ", poid=" + oldloc + "]."); } } catch (ClassCastException cce) { - Log.warning("Body claims to occupy non-PlaceObject!? " + - "[boid=" + bodoid + ", poid=" + oldloc + - ", error=" + cce + "]."); + Log.warning("Body claims to occupy non-PlaceObject!? [boid=" + bodoid + + ", poid=" + oldloc + ", error=" + cce + "]."); } // clear out their location oid @@ -222,14 +207,12 @@ public class LocationProvider } /** - * Forcibly moves the specified body object to the new place. This is - * accomplished by first removing the client from their old location - * and then sending the client a notification, instructing it to move - * to the new location (which it does using the normal moveTo - * service). This has the benefit that the client is removed from - * their old place regardless of whether or not they are cooperating. - * If they choose to ignore the forced move request, they will remain - * in limbo, unable to do much of anything. + * Forcibly moves the specified body object to the new place. This is accomplished by first + * removing the client from their old location and then sending the client a notification, + * instructing it to move to the new location (which it does using the normal moveTo service). + * This has the benefit that the client is removed from their old place regardless of whether + * or not they are cooperating. If they choose to ignore the forced move request, they will + * remain in limbo, unable to do much of anything. */ public void moveBody (BodyObject source, int placeId) {