Commit Graph

65 Commits

Author SHA1 Message Date
Michael Bayne 67492e13f0 Modified client observer notification process to:
a) use an ObserverList in SAFE_IN_ORDER_NOTIFY mode which circumnavigates
any funny business like observers being added or removed while we're
notifying the observers.

b) require that the clients be notified on the main client thread
(generally the AWT thread) by using the invoker; we had a problem
previously where clientDidLogoff() was being called by the communicator's
writer thread which caused all hell to break loose because everything
outside the client networking layer depends on running on the same thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1422 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-04 16:34:24 +00:00
Michael Bayne 3ff72e8a58 Fixed typo in comment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1405 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-29 18:44:36 +00:00
Michael Bayne 587e89ef24 Created services for distributing delta times over the network which are
interpreted according to a globally established base time.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1404 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 23:14:06 +00:00
Michael Bayne 9b88def20b Took out the server ticks business because we're going to do delta times
in a more general purpose manner.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1403 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 22:54:43 +00:00
Michael Bayne fc0300d80d Removed debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1401 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 22:07:13 +00:00
Michael Bayne 1492561985 Whoops, had that backwards.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1400 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 22:06:05 +00:00
Michael Bayne 2168067c74 Debug logging cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1399 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 22:05:52 +00:00
Michael Bayne 2f1a67077a Added code to establish the time delta between the client and server
clocks immediately following authentication.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1398 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-28 21:56:38 +00:00
Michael Bayne f0d7b8642b Need to ensure that we don't claim that the communicator is gone until
after both the reader and writer have exited (otherwise the reader could
exit before the writer which would result in the client chucking its
reference to the communicator which could subsequently bite us in the ass
if anyone tried to reference the client's distributed object manager when
the writer finally exited and triggered all of the clientDidLogoff
callbacks). Multithreaded programming is fun!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1396 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-27 01:37:07 +00:00
Walter Korman ab242f4a71 Fixed javadoc typo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1368 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 18:17:27 +00:00
Michael Bayne b15d38b54d Relegated a shitload of logging to DEBUG status.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1361 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-15 23:54:35 +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
Walter Korman a97e9db978 Moved remaining client.*Codes classes into their respective data packages
as they are intended to represent codes shared between the client and the
server.  Made correspondingly necessary changes throughout.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1240 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-15 16:28:05 +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 04f83e779e Report the host and port to which we're connecting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1124 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-15 19:11:14 +00:00
Michael Bayne 1d956214dd Added SessionObserver which is a pared down version of ClientObserver that
only reports logon and logoff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1117 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-11 19:51:25 +00:00
Michael Bayne bcca494fdd Commented out some debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@986 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-10 04:19:34 +00:00
Michael Bayne 284e8ef6ed Made addObserver into addClientObserver because that's how we do it
everywhere else. Same thing for removeObserver.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@981 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-09 20:45:23 +00:00
Michael Bayne 1bca84927f Added support for DObject transactions which are collections of events
that are dispatched over the network at once and processed all at once.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@979 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-09 07:50:37 +00:00
Walter Korman bc6f66f6cd Added ObjectAction.toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@953 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-07 00:24:36 +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 6a5e8cd82b Added standard ACCESS_DENIED code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@886 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-22 02:50:36 +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 cd458fa3aa Moved the default server port into the client where it is accessible by
various entities rather than only server code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@571 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-25 23:36:06 +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 33b76cd711 Added standard error code for internal server errors.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@504 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-19 18:03:06 +00:00
Michael Bayne 8dcdfb7e8a Added loggedOn() which indicates whether or not we're logged on and
modified code not to try to logoff in logoff() unless we're actually
logged on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@491 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-18 18:40:18 +00:00
Michael Bayne 3df5a5d1cb Commented out debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@462 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-16 16:41:14 +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 e75e442f0c Make the bootstrap data available to external entities.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@412 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-09 18:17:33 +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 ceca4b549a Modified Reader and Writer not to die if they have a problem reading or
writing a message.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@381 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-03 03:39:39 +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 027bb29769 Created fooCodes interfaces to go along with invocation service
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
2001-10-01 22:14:55 +00:00
Michael Bayne ec1cf5c667 Changed IntMap to HashIntMap.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@339 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-17 05:18:21 +00:00
Michael Bayne 2fc86f89b3 Documentation edit.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@336 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-13 19:08:30 +00:00
Michael Bayne 0a1e364e03 Created adapters for the ClientObserver and LocationObserver interfaces to
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
2001-08-22 00:08:12 +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 782e9501d6 Implemented object destruction; wired up some missing stuff; created a
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
2001-08-07 20:38:58 +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 7f82de4146 Changed InvocationReceiver into an interface because it needn't be a class
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
2001-08-04 02:31:20 +00:00
Michael Bayne ae73c73ac4 Commented out debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@158 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-03 02:12:27 +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 14d47f8c85 Allow credentials to be set after creating the client.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@122 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-25 00:51:05 +00:00