Commit Graph

37 Commits

Author SHA1 Message Date
Michael Bayne bf77cb1520 Moved location services implementation into LocationManager so that
LocationProvider can be an interface like its brothers and sisters.

Modified the place registry to create PlaceManager instances using the injector
so that we can inject dependencies into managers. Also modified the custom
classloader functionality so that it can/will circumvent this process
entirely. It's not possible to inject using a custom classloader and one
certainly would not want to do so.

Unfortunately this means we can't inject some basic managers into PlaceManager
because it needs to work for games loaded into a sandboxed classloader, but the
big win is that in everything other than GameManager and PlaceManager, we can
inject to our heart's content.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5168 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-06-08 17:18:26 +00:00
Michael Bayne a7c7d853fe Handle the BodyService with a BodyManager instead of a concrete BodyProvider.
More dependency injection (or removal in the case of SpeakUtil).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5163 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-06-08 13:06:03 +00:00
Michael Bayne c935c46612 Handle the client connecting and disconnecting before client object resolution
completed, or connecting, disconnecting and reconnceting before client object
resolution completes a little more gracefully.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4889 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-03 18:28:07 +00:00
Michael Bayne 3f7705dfc2 Split SpeakProvider into SpeakHandler and SpeakUtil. SpeakProvider is now a
proper interface like all the other new invocation service backends.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4795 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 21:05:23 +00:00
Michael Bayne 962326fcaf Revamped the way BodyObject.location is tracked. Now we use an object which can
be extended to contain the sceneId by Whirled (Vilya's Whirled, though also
Whirled Whirled by extension) so that we don't end up with problems where
BodyObject.location changes but BodyObject.sceneId remains stale. This won't
impact Yohoho because the Yohoho client is always in a scene, it uses a
separate mechanism to track games, whereas Whirled's natural usage is to move
between scenes and non-scenes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4779 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-21 00:46:25 +00:00
Michael Bayne 09f0bee0f3 Yet more header patrol.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-24 00:39:27 +00:00
Michael Bayne c25024f497 Move some low-level object access control into Presents from Crowd (default all
objects to non-modifiable, restrict client object subscriptions to the client
in question). Modified Peer code to not log a warning when a peer is not online
in an expected way (not listening for connections).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4598 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-23 19:41:30 +00:00
Michael Bayne 176329e1ed Various updates to allow a system where a user's visible name is not the same
as their authentication name (which we leave in BodyObject.username). This
turns out to be simpler than the system we adopted for Yohoho wherein we
replace the player's user object after they select a character, but converting
to this sort of system is way more work than would be worth it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3758 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-10 23:18:58 +00:00
Michael Bayne 4757af99c6 No longer needed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3555 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 22:08:16 +00:00
Ray Greenwell a2b8874f46 Allow the userobject access controller to be overridden by ye subclasses.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3554 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 18:33:57 +00:00
Michael Bayne ff3012c5f9 Implement sensible default object access policies at the Crowd level (no
one can modify anything, a select few events are allowed on the body
object by the body object's owner only).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3553 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 05:17:05 +00:00
Michael Bayne ffc1552225 Clear out idle state when client logs off in case their client object
remains around until their next session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3129 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-01 22:04:18 +00:00
Michael Bayne 1f8c4578b7 LGPLed the library. Hello world.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3098 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-27 02:12:55 +00:00
Michael Bayne ef748636e2 Various Eclipse suggested bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2969 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-25 14:41:47 +00:00
Michael Bayne e6dc5c38d7 The basis for logging all recent chat on the server. Now I have to make
every type of chat object known to man capable of reporting who's
listening.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2653 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-14 00:47:16 +00:00
Michael Bayne 26ed72d109 Report an error rather than NPEing if we resume a session with a null
_clobj.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2047 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-09 17:19:04 +00:00
Michael Bayne ee8eda46bb Have to check that the user exists in sessionConnectionClosed() before
setting their status to disconnected; don't have to check that the user
exists in sessionDidEnd().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2028 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-05 16:39:21 +00:00
Michael Bayne e91215b689 Explicitly pass along the client object to sessionConnectionClosed()
because it will have been cleared out of _clobj by the time said method is
called if it is called as a part of a terminated session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2021 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-04 02:47:03 +00:00
Michael Bayne b27571c8c0 Created an extensible mechanism for clearing out a client's location
information when they end their session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2014 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-03 06:58:57 +00:00
Michael Bayne eff8dc0ca7 We'll have to be a little more forceful about leaving than just clearing
out the body object's location id. Sheesh.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2013 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-02 23:18:06 +00:00
Michael Bayne f8a5a149b7 Clear out our body's location when we log off because with the new client
reference counting thing, we can't rely on a user's object being destroyed
immediately after they log off. Better to ensure that their location will
always be cleared so that location interested entities will be properly
notified.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1991 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 02:46:01 +00:00
Michael Bayne b9fe4f4b01 Do our disconnect fiddling on the new safe sessionConnectionClosed()
calldown method rather than the old wasUnmapped() which is called on the
conmgr thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1899 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 05:48:18 +00:00
Walter Korman f25c028cca Initial work on a body service to allow setting a user's idled state.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1877 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-01 00:39:18 +00:00
Michael Bayne 7adcf49ef3 We need to allow the caller to specify the location in which the users
status should be updated.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1864 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-30 00:47:19 +00:00
Michael Bayne 77ae8c7d0f Maintain user's status in their body object; also maintain a timestamp
that indicates the time at which their status became what it is.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1863 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-30 00:42:37 +00:00
Walter Korman a5576eed88 Factored out code to update a player's connection status to make it
available for use by derived classes, and because it's cleaner this way.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1840 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 02:04:50 +00:00
Walter Korman fec48b8586 Track a user's connection status in their occupant info so that we can
react to player disconnection, idle (implementation still pending), and
reconnection appropriately.  Added PlaceManager.bodyUpdated().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1831 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-26 02:40:30 +00:00
Michael Bayne ba4985053f Revamped "persona selection" support. Things now actually work, and in as
sensible a way as we can hope for.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1717 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-19 23:36:59 +00:00
Michael Bayne bf239bde95 Update the username in the body object when it is changed in the client.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1686 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-17 01:23:09 +00:00
Michael Bayne 9e16e87a69 Doris the refactorasaurus. Restructured the whole client object resolution
process so that it can be done by other entities than just the client
management services. Coordination between these parties is managed so that
no toes are stepped on in the course of loading and unloading clients and
everything is generally much nicer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1086 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 05:33:25 +00:00
Michael Bayne 5f18acd3d8 Modified distributed object attribute setting such that attributes are
*always* set immediately because after some deliberation, we decided that
doing that led to less unexpectedly annoying behavior than having to wait
for the event to propagate to see the new value.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1062 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-20 23:35:42 +00:00
Michael Bayne 9d72060717 Added setFooImmediate versions of BodyObject setters and use
setUsernameImmediate in sessionWillStart() so that entities later down the
line of session startup processing can reference values set earlier in the
process without having to wait for them to be applied by the dobjmgr.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@920 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-03 03:09:06 +00:00
Michael Bayne 16efe382bd Augmenting the AuthResponseData with server stuff turned out to be a bad
idea because that class is shared between the client and the server, so
instead we provide a blank object reference in which the authenticator can
provide whatever information it wants to the client services.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@723 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-03 22:01:57 +00:00
Michael Bayne a0ba41c31d Provide a mechanism for the authenticator to pass information to the
client object by way of passing the auth response data up to the client
after the completion of the authentication phase. This allows information
loaded by an authenticator (like a user record) to make its way into the
real world.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@722 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-03 20:14:51 +00:00
Michael Bayne 8a4c46badc The first great Three Rings renaming. Cocktail changed to Narya, Cher
changed to Presents and Party changed to Crowd. Whee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@431 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-11 04:07:54 +00:00
Michael Bayne d2d9de37c1 Added code to track a username to body object mapping for all users with
active sessions (even if they are currently disconnected).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@178 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-04 01:55:41 +00:00
Michael Bayne 3751f0ad9b Created a party client which sets up the username in the body object.
Modified the party server to configure the cher services to use our party
client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@163 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-03 02:28:20 +00:00