resolves methods based on the types of the arguments fully properly,
rather than in the half-baked way I was doing it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@379 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
packages. These contain all the message codes as well as error response
codes that are used by a particular invocation service.
Also changed client.LocationManager to client.LocationDirector and
chat.ChatManager to chat.ChatDirector to go along with the new philosophy
of naming the client-side managing entity for an invocation service a
director.
Also elimitated cocktail.util.Codes since it's no longer used as a central
repository for codes (instead they are in InvocationCodes and its
derivatives).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@368 542714f4-19e9-0310-aa3c-eee0fc999fb1
make handling just one or two of the callbacks for those interfaces
simpler.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@305 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
where the elements are user defined objects that know how to read and
write themselves on a stream. Sets are required to contain elements all of
the same type to make network traffic more efficient (avoid sending the
classname every time an element is added or removed).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@264 542714f4-19e9-0310-aa3c-eee0fc999fb1
can be implemented by objects that are streamable but that don't have an
associated type code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@263 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
invocation response. (Better to catch it and report it here than have the
dobjmgr complain when it tries to dispatch an event on a non-existent
object.)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@224 542714f4-19e9-0310-aa3c-eee0fc999fb1
and then deal with the results of it back on the dobjmgr thread.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@223 542714f4-19e9-0310-aa3c-eee0fc999fb1
distributed object manager thread. These are slipped into the normal event
processing loop.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@222 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
dispatch. Added code to abort object added events that are trying to add a
non-existent object to an oid list. Wrote test driver for this and
duplicate object add request handling.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@196 542714f4-19e9-0310-aa3c-eee0fc999fb1
server; added an easy mechanism to write test modules and invoke them on
the server.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@192 542714f4-19e9-0310-aa3c-eee0fc999fb1
subscriptions and clear them out when the client disconnects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@189 542714f4-19e9-0310-aa3c-eee0fc999fb1
test server to make some testing easier; various other cleanups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@188 542714f4-19e9-0310-aa3c-eee0fc999fb1
session resumption because the client is not subscribed to the client
object at that time. This way is cleaner anyway.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@185 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
and that allows classes that normally do other things to register
themselves as an invocation receiver.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@179 542714f4-19e9-0310-aa3c-eee0fc999fb1
sessionWillResume() and sendBootstrapData() are all consistently called on
the dobjmgr thread because that is the most useful. Added
sessionDidTerminate() but session termination is not implemented yet.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@177 542714f4-19e9-0310-aa3c-eee0fc999fb1
allow services to prevent repeated invocations of themselves from stepping
on one another because of the serial nature of event processing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@171 542714f4-19e9-0310-aa3c-eee0fc999fb1
ReleaseLockEvent which will be used by the distributed object locking
facilities.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@169 542714f4-19e9-0310-aa3c-eee0fc999fb1