Commit Graph

34 Commits

Author SHA1 Message Date
Michael Bayne 73bcb0faaf Let's put that code in the InvocationManager because we're going to need it
elsewhere when we go fix the standalone servers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4553 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 01:21:20 +00:00
Michael Bayne ebc99935d5 If we're going to do this, I guess we're going to do it properly. Nixed the
notion of a global group (though we implicitly define one in InvocationCodes)
added a mechanism for directors (which generally handle the client side of
invocation services) to register their interest in bootstrap service groups so
that the whole goddamned complex business can happen magically behind the
scenes.

If you instantiate a director, it will automatically register interest in the
service group it needs and everything will work. If you don't use the director
code, you don't get the services and you can safely exclude all of that code
from your client even though the services are still in use on the server (and
presumably used by some other types of clients).

This is going to break all the builds, which I'll soon fix. Then I'll go write
all this in ActionScript. Yay!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4552 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 01:17:30 +00:00
Michael Bayne 9afcc526a0 Bit the bullet and implemented invocation service groups so that our various
MetaSOY clients (Swiftly, World, and soon Admin Dashboard) don't have to know
about a bunch of unrelated crap. Fricking complexity++, grumble.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4551 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 00:42:35 +00:00
Michael Bayne b6d37a472a If we're trying to remove an already removed marshaller, let's hear about where we're doing it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4459 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-11-20 18:21:08 +00:00
Michael Bayne bc9f53396c Revamped distributed object creation. There was no particular reason to create
distributed objects by reflection since we don't allow clients to create
objects, furthermore we needn't do it asynchronously. The object creation
methods were moved into the server-side only interface and made "immediate", so
the caller creates a derived instance of DObject and registers it with the
system instead of creating it with a Subscriber callback.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4342 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-23 23:46:48 +00:00
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
Ray Greenwell 26c928fc45 Use the valueOf factory methods pretty much everywhere.
These are the preferred way to get instances of Boolean, Byte,
Short, Character, Integer, Long, Float, and Double object.
It's always made sense for Boolean objects, and with 1.5 these factory
methods were blessed as the proper way to get instances unless one
absolutely needed a distinct object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4145 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-24 01:24:24 +00:00
Ray Greenwell 78f7b7f3e0 Avoid logging spurious warnings about ignored listeners that weren't
really ignored, but just never got responded to due to a bigger problem.
(The bigger problems are already logged.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3810 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 01:40:05 +00:00
Ray Greenwell 4cb18bd5ab Wrote code to help automatically detect bugs.
Have invocation marshallers track whether someone ever ended up responding
to the client: if they get garbage collected without ever doing so
(and they're not the base class InvocationMarshaller, which can only report
errors), log an informative error message.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3792 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 02:10:38 +00:00
Ray Greenwell 92e4e9cfaf There are zillions of invocation dispatchers registered with a multitude
of codes. Currently the unit dump that is done once every 15 minutes is
chock-full of one-off units. Let us report the short class name of
the dispatcher, rather than the code with which an instance is registered.

Also: Thou shalt always iterate over the entrySet of a Map if thou planneth
to utilize both the key and the value.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3694 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-05 05:38:58 +00:00
Michael Bayne afabea71ad Big fat Bernie javadoc cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3310 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-24 23:08:21 +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 124abb66f7 This also happens as a matter of course. Clients send invocation requests
after things have already been processed and cleaned up on the server.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3047 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 07:24:39 +00:00
Michael Bayne e57580626e Clients come and go at the craziest of times. No need to worry about it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3046 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 07:19:46 +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 5418ffd2fd We love to be robust.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2897 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-12-09 20:41:23 +00:00
Michael Bayne b696989375 Removed erronious space.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2838 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-10-26 02:45:19 +00:00
Eric Lundberg fc2cb730b8 Lets not store the whole marshaller and just the class name. Combine log
message.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2837 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-10-26 02:44:01 +00:00
Eric Lundberg bcd034d0be Hmm I think this does the right thing tracking the lask 10K invocation
services that registered (ignoring unregisters) but I can't get it to
cough up the problem on my machine, so it's a little hard to test.  If you
fine cvs readers want to take a peek that would be great.  Hurray for
debug code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2836 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-10-26 02:33:43 +00:00
Michael Bayne 34e777c444 Debug log fiddle.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1848 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 22:24:59 +00:00
Michael Bayne 775246906b Added support for clearing out dispatcher registrations.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1724 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-20 04:52:49 +00:00
Michael Bayne 3d5ae4becb Report the caller rather than their oid for failed service requests.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1666 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-06 01:49:23 +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 496732db3a Automatically generate a failure response if an invocation provider method
throws ServiceFailedException. The response for a service request named
<foo> would be <foo>Failed. The response has a single argument which is
the reason string provided by the ServiceFailedException. We were doing
this by hand all over the place, and now it will be handled automatically.
Yay!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1268 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-17 18:20:04 +00:00
Michael Bayne 57b2e93ac3 Modified DObjectManager.createObject() to not afford optional subscription
because subscription no longer means receiving events.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@537 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-24 00:36:40 +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 e9909aa34f Log a stack trace when an invocation handler fails.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@237 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-14 06:47:38 +00:00
Michael Bayne a44e552eb8 Modified invocation services such that providers are responsible for
delivering their own responses. They now have all the information
necessary to do so which means that they can delay the delivery of a
response until some other asynchronous event has taken place (like a
database load completing). Prior to this, they were required to complete
their service immediately and return the response back to the invocation
manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@216 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-11 00:05:58 +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 d55ce27b2b Created a test service and provider and sorted out further details.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@71 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-19 07:48:25 +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