Commit Graph

38 Commits

Author SHA1 Message Date
Michael Bayne 8afd0316ec I decided to go hog wild and clean up all the type use in Presents which
required some serious bending and folding of the generic type system, but for
the most part we managed to avoid any mutilating. The gendobj task now
generates properly typed "addToXXX" and "updateXXX" DSet methods based on the
parameterized type of the DSet. This might cause unrecompiled code to break,
but I don't think there are many cases in the base toolkit where people call
DSet adders or updaters. We'll see and I'll add backwards compatibility
versions for cases where we need them to support GG games (everything else we
can just recompile).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4245 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-05 00:55:05 +00:00
Michael Bayne 06680b789f Type safety.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4237 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-30 21:58:34 +00:00
Ray Greenwell 5f6152230a Tiny optimization.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3920 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-08 00:49:04 +00:00
Michael Bayne 2d19a0ba82 Renamed DSet.entries() -> DSet.iterator().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3406 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-15 02:12:03 +00:00
Michael Bayne a9720fd905 LGPLed the library. Hello world.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3099 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-27 02:21:06 +00:00
Michael Bayne d618d3c771 Eclipse suggested cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2971 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-25 14:50:28 +00:00
Michael Bayne dc7591a562 This seems happy now, so we'll can the logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2737 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-29 18:48:11 +00:00
Michael Bayne a35edea96e We need also to clear the receivers when we transfer them from our auth
user object to our chosen pirate user object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2727 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-25 20:51:08 +00:00
Michael Bayne 245a5d5139 Do some sanity checking.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2717 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-20 17:02:59 +00:00
Ray Greenwell 829f3ad0eb Start transactions outside of the try-finally clause so that if there
is a problem with starting a transaction, we don't get an exception
for failing to commit the transaction.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2712 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-16 18:03:30 +00:00
Michael Bayne 030545b8eb Thanks to Mr. Lundberg's insight, we have tracked down a gross oversight
in the low-level invocation services whereby after a disconnect, any
InvocationReceiver registration would be wholly ignored due to the
previous registrations being left in the receivers set and DSet refusing
to add duplicate instances of the registration. This wasn't immediately
apparent because the initial set of registrations always happens in the
same order and thus are equally useful after the reconnect and any other
registrations are removed during the normal course of affairs. But if a
user disconnects *during* a puzzle, they will leave that puzzle's
registration around and be unable to play that (or any) puzzle again until
they log off and back on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2707 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-12 22:34:03 +00:00
Michael Bayne 55a40d7161 We need to know about unregistrations as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2703 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-11 03:13:30 +00:00
Michael Bayne 7047bcfaf5 Log when we register an invocation decoder because we're seeing
circumstances where they aren't around when they should be.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2702 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-11 03:02:46 +00:00
Michael Bayne 27197cae5b Log when receivers are added and cleared because we're seeing receiver
registration funny business.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2206 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-21 22:10:41 +00:00
Michael Bayne 42110dc8da Remove invocation receiver mappings from the receivers table when they are
unregistered. Flush invocation listener mappings after an expiry period if
they were not already removed by virtue of receiving a response.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2040 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-08 02:18:50 +00:00
Michael Bayne e166a3efff Debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1847 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 22:24:20 +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 e54a4d41f4 The great invocation services rethink of 2002! Rearchitected the remote
method invocation services and converted everything to the new style.
Could this be my biggest checkin ever?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1642 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-08-14 19:08:01 +00:00
Michael Bayne 6df0ef6172 We need to do some fiddling when the invocation director is used on the
server by entities that are vaguely impersonating a client. Specifically
they need to fill in the event's source oid because their events are not
going through the client networking layer which takes care of filling that
in for real clients.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1261 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-16 21:37:23 +00:00
Michael Bayne 462724f82d Log a stack trace per Walter's suggestion.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1231 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-11 01:41:04 +00:00
Michael Bayne 625fc79502 Restructured invocation director so that it can be used in the absence of
a Client instance.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1228 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-10 06:08:59 +00:00
Michael Bayne 80c9550a57 Added some debugging, but commented it out.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@895 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-30 18:30:43 +00:00
Michael Bayne f506a686f9 Added unregisterReceiver().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@650 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-27 21:37:58 +00:00
Michael Bayne eb3bc62083 Log a stack trace if we catch an error invoking an invocation response
handler.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@459 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 20:26:00 +00:00
Michael Bayne 804505890f We love to revamp! Created a set of listener interfaces which are used
with distributed objects rather than having a single handleEvent() by
which all subscribers are forced to hear about all events. Now one
subscribes separately and then adds onesself as any of a few types of
listener once they have access to the subscribed object reference.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:03:03 +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 20b6650dad Deal with a null arguments array being provided to invoke().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@393 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-04 20:02:13 +00:00
Michael Bayne 95f6bf7300 Modified client so that the invocation director is always around rather
than being created after we log on because other code will want to
register itself with the invocation director before we log on. The
invocation director now just handles being reinitialized which is what
will happen when we log off and back on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@384 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-03 03:42:31 +00:00
Michael Bayne 6620936a04 We've always been at war with Eurasia. Changed InvocationManager to
InvocationDirector (please god let the renaming be done). Removed IntMap
and modified code to use samskivert's HashIntMap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@375 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-02 02:08:16 +00:00
Michael Bayne 67a3dabac2 Have the invocation manager pass the client object back to the client when
it is ready. Then the client hangs on to it because the invocation manager
doesn't really need to hang on to the client object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@288 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 19:33:06 +00:00
Michael Bayne abb831bca8 Provide access to the client object instance.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@282 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 00:58:10 +00:00
Michael Bayne 64691eda21 Look up invocation service methods using the full signature (arguments and
all) and no longer cache the lookups because creating the cache key would
be as expensive as reflecting the method.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@236 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-14 06:47:15 +00:00
Michael Bayne db9f2283f3 Modified the client side of the invocation services to communicate the
invocation request id to the invocation requester and then also to pass it
along when delivering the invocation response.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@180 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-04 02:54:01 +00:00
Michael Bayne 44f19a5d68 Make nextInvocationId() public so that others have access to monotonically
increasing request ids if they need 'em.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@157 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-03 02:12:12 +00:00
Michael Bayne 41488822dc Modified invocation request procedure to provide a reference to the client
object that initiated the request. Implemented the invocation notification
side of things.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@76 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-19 19:18:07 +00:00
Michael Bayne f8ccff8f23 More progress on the invocation services.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@74 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-19 18:08:20 +00:00
Michael Bayne 915f3db6f1 More work on invocation manager; modified startup sequence so that server
can get shit together before bootstrapping the client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@68 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-19 07:09:16 +00:00
Michael Bayne 6663aae772 Beginnings of invocation services implementation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@67 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-19 05:56:20 +00:00