Commit Graph

335 Commits

Author SHA1 Message Date
Michael Bayne ee9049fe3e Factored out code for events that all shared a name; removed
hand-serialization code for fields which are now handled automatically.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2078 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-20 23:29:04 +00:00
Michael Bayne 70a79f48e9 Bye bye to all the hand-serialization code. Yay!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2077 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-20 23:28:24 +00:00
Michael Bayne b35f81cb62 A little more analysis revealed that we can avoid attempting to resume a
user's session if their client object is not yet resolved. When it does,
their session will be "started" for the first time and everything will
work itself out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2068 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-15 18:32:19 +00:00
Michael Bayne 90b76f1417 Added a toArray() method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2065 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-13 02:07:27 +00:00
Walter Korman 90a919720a Removed code to disallow adding an observer more than once since the
observer list now takes care of that.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2064 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-12 23:56:36 +00:00
Michael Bayne 18c7b2cf6f Complain loudly about listeners or subscribers that try to add themselves
more than once. Use testAndAddEqual() where appropriate now that
testAndAdd() doesn't use object equality.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2056 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-12 00:30:47 +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 d60e6a69d8 Implemented code to handle the rather complicated circumstance of not
being able to send a message immediately to the client due to it being too
large or the client's outgoing networking buffer being full for some other
reason (many messages sent very quickly or client that's reading messages
slowly).

I still need to add code to disconnect a client who fails to read messages
in a sufficiently timely manner.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2038 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-07 22:33:04 +00:00
Michael Bayne 0749a20e6e Rejiggered endSession() so that overridden sessionDidEnd() methods can
call super.sessionDidEnd() and still do things with the client object at
the termination of the session.

Also removed the passing of the client object to sessionConnectionClosed()
because it's still possible that it won't be avaiable when that method is
called and whatever is being done there should also be done in
sessionDidEnd() if it is to work when the user ends their session as well
as when they disconnect.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2027 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-05 16:20:45 +00:00
Walter Korman b7e24b0b63 Fixed javadoc comment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2024 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-04 22:04:46 +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 55f40108b8 Added simple mechanism to resolve a client, apply some operation to it and
release it back into the wild.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2010 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-29 23:40:32 +00:00
Michael Bayne 1c726c8e33 Removed stray newline.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2009 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-29 23:40:01 +00:00
Michael Bayne f7c27a1afa Added a mechanism to check that we are running on (or not on) the
distributed object event dispatch thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2005 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-28 22:51:52 +00:00
Michael Bayne 0353289965 No need to remain subscribed to the client object once we've resolved it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1994 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 08:52:53 +00:00
Michael Bayne 371ca60bf5 Replaced old wacked-in-head system with proper reference counting for
client objects.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 02:14:25 +00:00
Michael Bayne 9a022a98cc We want to bind to INADDR_ANY rather than localhost specifically.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-18 18:56:52 +00:00
Michael Bayne 45fb96c4f2 Rewritten to use the Java NIO library rather than the Berkeley NBIO
library. 100% pure baby! At least for the moment.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-18 18:53:10 +00:00
Michael Bayne 14024fbd23 Provide access to the removed entry when one is removed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1936 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-12 20:37:52 +00:00
Michael Bayne 6b2433600e Be a bit more freaked out if someone tries to post an event on a stale
distributed object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1930 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-10 01:43:28 +00:00
Walter Korman 4f4068a00a Fixed typo in log message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1924 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-06 21:05:13 +00:00
Michael Bayne 9e9dc24b72 Need to put this in a config file, but for the time being, up the "state
of the union" report to once every 15 minutes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1922 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-06 06:18:17 +00:00
Michael Bayne 0cd73d2e56 Expose a calldown method that is called on the dobjmgr thread when a
client loses their connection (either gracefully or not).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1898 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 05:47:36 +00:00
Michael Bayne fa206b76ed Metrics! Added support for a "state of the server" report, in which
managers can participate, reporting lies, damned lies and useful
statistics. Initial participants include the client manager, the
connection manager and the distributed object manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1894 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 02:17:56 +00:00
Michael Bayne 2e32b6c3a7 Periodically scan the clients table and end the session of any expired
clients.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1872 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-31 21:04:19 +00:00
Michael Bayne 79259479c6 Make a note of when we started our session and when we most recently
connected or disconnected. Use this to determine if a client has "expired"
(meaning they've been disconnected for too long).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1871 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-31 21:03:57 +00:00
Michael Bayne 2f7399ed68 Added support for specifying a version string during the client
authentication process.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1870 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-31 18:44:34 +00:00
Michael Bayne 8252efeed1 No more ping verbosity.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1868 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-30 18:46:33 +00:00
Michael Bayne 98d19e055a Added facilities for idling out clients that have not communicated with
the server in 90 seconds. The client is set up to ping the server if it
has had nothing to say to it for other reasons in the last 60 seconds.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1860 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-29 23:51:26 +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 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 7aa16f09e0 Removed obsolete comment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1845 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 22:19:21 +00:00
Michael Bayne 14a313486b Documentation repairs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1842 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 18:49:51 +00:00
Michael Bayne 76ba2840c4 Provide access to the values that existed previous to the application of
events that change values.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1837 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 01:33:43 +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
Walter Korman ad344e05e1 Fixed typo in javadoc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1830 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-26 02:37:59 +00:00
Michael Bayne a0e9044e93 Config clean up and unification. The base servers were doing more than
they needed to and when all that was stripped away, they didn't really
need their own config files.

Now what little config they need is provided by the users of these basic
services so that said users can make their own decisions about where to
obtain configuration information.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1820 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-21 20:56:21 +00:00
Michael Bayne 7ce6ca340e Clear out clobj when we're logged off; keep cloid up to date; don't claim
we're logged on until we're fully logged on (meaning we have our clobj
reference).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1818 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-21 18:04:56 +00:00
Ray Greenwell be2bc4205b Anally removed Comparator.equals() implementations that overrode
Object.equals() with equivalent functionality.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1799 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-15 21:01:39 +00:00
Michael Bayne dfd499582e Removed vestigal field.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1789 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-08 22:00:27 +00:00
Michael Bayne d34be8e838 Enhanced error reporting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1782 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-06 20:25:05 +00:00
Michael Bayne 893e3d3aa0 Whoops, clone should obtain the uninitialized cloned object via
super.clone() so that it is of the appropriate derived class. I must have
picked a bad week to stop sniffing glue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1781 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-06 20:24:53 +00:00
Michael Bayne 96e2afe24f Name our invoker thread just for kicks.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1775 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-05 23:35:21 +00:00
Michael Bayne 9282f15fc3 Sanity checking.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-04 01:32:15 +00:00
Michael Bayne 077d0ee13a Refuse to start a transaction on a non-active DObject.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1772 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-04 01:31:59 +00:00
Michael Bayne 99dbe3dc76 Added support for nested DObject transactions; clarified documentation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1768 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-02 19:29:23 +00:00
Michael Bayne d49e724693 Don't start up the connection manager until the dobject manager has
processed everything put into its queue during the initialization process.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1767 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-01 05:15:45 +00:00
Michael Bayne e2687d5474 Less debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1757 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-26 17:49:36 +00:00
Michael Bayne 42b22f1acc Experimental alternate toString() formatting style for DObject. Hopefully
it will be well liked.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1752 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-25 03:02:00 +00:00
Michael Bayne 6c7bee6c1d Logging cleanups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1747 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-24 00:51:01 +00:00