Commit Graph

632 Commits

Author SHA1 Message Date
Michael Bayne 0e27af2af4 Because we defined DSet as parameterized on <E extends DSet.Entry> it rewrites
all generic references to E as DSet.Entry rather than Object which is what I
was assuming. So when I write:

(E[])new Object[...]

that gets rewritten to:

(Entry[])new Object[...]

which causes le freakout. We need to use Entry[] everywhere, which we happened
to be doing for everything except toArray().

I rewrote things to use E[] everywhere now that I know it will get rewritten to
Entry[]. I thought it was going to get rewritten to Object[] before so I didn't
genericize that stuff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4059 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-26 02:13:10 +00:00
Michael Bayne 918d38a3b1 Implement Iterable. Whee!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4054 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-25 02:07:32 +00:00
Michael Bayne a4c7ecb5e3 Made DSet (sort of) type safe. To be really really typesafe DSet.Entry would
have to be parameterized on the type of the Comparable that is returned by
getKey(), but that turns out to be a twisty maze of generics that is not
obvious to me how to express using Java's generics syntax and it opens up
various cans of worms that I don't have time to solve right now. So we'll
settle for the DSet itself being parameterized on the Entry class and the Entry
class being non-type safe.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4051 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-24 22:02:48 +00:00
Michael Bayne ad49401543 Proguard fucks up if we use clone(). There's no apparent way to find out why it
magically booches and causes an IncompatibleClassChangeError, so we're just
going to work around it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4008 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-10 20:16:44 +00:00
Michael Bayne 5a2583470c Brought code in line with changes to Samskivert. I have not started to
genericize Narya data structures, nor make the existing code type safe. That's
going to be an extremely large project.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4007 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-10 08:59:30 +00:00
Michael Bayne 8d91fa9e7f Don't log a stack trace here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4004 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-10 01:22:39 +00:00
Ray Greenwell 3cef4b5cec Prevent NPE when we process a pong that was destined for a different
DeltaCalculator.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4003 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-07 18:52:24 +00:00
Ray Greenwell fb913a6bba Go back to using the median value for our delta estimate.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3991 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-30 19:06:40 +00:00
Ray Greenwell 981deb3b6b Fixed two bugs with delta calculation:
- if a pong response took more than 5 seconds to receive, another ping
  would be sent. When the pong finally arrived the delta would be
  calculated using the most recently sent ping.
  Fix: don't send more pings while waiting on a pong.
- After a pong is received, the _deltas array is mangled while
  calculating the server delta, making subsequent pongs possibly
  overwrite earlier calculated deltas.
  Fix: calculate using a copy.

Also, changed the delta calculation to be the mean of the deltas rather
than the median. Left code in to do it both ways if this change was not
kosher...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3990 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-30 01:08:32 +00:00
Ray Greenwell 07bc269f59 Bugfix for something that may never be needed in the wild: when an
AuthingConnection is replaced by a RunningConnection we need to transfer
over any associated overflow queue to the new connection object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-30 00:09:55 +00:00
Michael Bayne 23f531fa42 Removed overflow queue logging as this has all been running happily for almost
a year since the refactor that inspired leaving this logging in.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3961 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-18 00:41:53 +00:00
Ray Greenwell 333d476a4a Use array cloning rather than creating a new one and copying into it.
(It may be the same thing under the hood, but our pal Occam would approve.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-17 22:29:00 +00:00
Ray Greenwell 7336f11d6f Shrink capacity in DSets upon element removal if the capacity is 8x larger
than it needs to be.
Broke streaming compatibility in order to be much more efficient over the wire.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3938 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-11 02:43:32 +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 18418122ea More fixy fixy with the commas.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3916 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 22:10:05 +00:00
Michael Bayne 1effaf4ad9 No comma if we have no args.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3915 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 22:01:31 +00:00
Michael Bayne 17fdaa7c0d Rewrote the InvocationReceiver generation process in Java as an Ant task. I had
previously redone the InvocationService and DObject generation tools but not
the InvocationReceiver tool.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3913 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 21:50:23 +00:00
Ray Greenwell 17987537f4 Provide a convenient method for indicating that a listener does not
need to be responded to. It turns out that a listener may not be
a marshaller if a server entity is calling a service request method
directly.  The convenience method handles this and is also cleaner looking
for callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3832 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-04 03:49:53 +00:00
Michael Bayne 73e0a05b5f An internal error should always be accompanied by a log message. We could rely
on the adpater user to sort that out, but it's easier to just log things here
and save everyone time and effort.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3814 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 22:45:11 +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 60c204a93a Added a method that can be called to indicate that a response will
intentionally not be sent to the listener.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3809 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 00:53:35 +00:00
Michael Bayne 4324149cdb We queue ourselves up every time an event comes in, so we should only process
one event when our run() method is called and then let other (non-distributed
object) things get their chance to run in proper order.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3795 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 19:30:39 +00:00
Ray Greenwell 852620bea4 Regenerated marshallers with new response-tracking code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3793 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 02:12:57 +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 7a64be94f2 Goodbye, NestableIOException.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3788 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-20 02:09:18 +00:00
Michael Bayne 51d349295e Codified a common pattern into a helper class.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3784 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-15 04:20:22 +00:00
Ray Greenwell 0e60a76e2b Interval.Runnable -> Interval.RunBuddy
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3775 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-05 19:41:44 +00:00
Ray Greenwell 1673cf0865 Changed some things around so that we can do operations that may require
a round trip to the database after a user has changed user objects:
the ClientResolutionListener will get a ResultListener that it should
call when its all done.

Hopefully this doesn't break anything in bang or gardens...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3766 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-18 02:32:26 +00:00
Michael Bayne 596d2a4708 blank() -> isBlank().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3749 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-09 04:00:16 +00:00
Ray Greenwell bd7c2caab9 Use new Interval.Runnable interface name.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3728 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-12 21:02:18 +00:00
Ray Greenwell 5bd90aa797 Stop using TrackedObjects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3726 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-11 19:17:43 +00:00
Michael Bayne dd2468b140 Javadoc tidying up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3725 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-08 22:21:19 +00:00
Michael Bayne e52758ef2c Allow the specification of legacy services for which provider interfaces should
not be generated. Cleaned up the generated provider interface formatting a bit.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3715 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 23:05:40 +00:00
Michael Bayne 2d9dffc7ec Automatically generate the provider interface when generating the FooMarshaller
and FooDispatcher. This means we will no longer be able to make FooProvider a
class that directly handles FooService methods, but the savings in confusion
for first time users of the framework will more than make up for the minor
inconvenience.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3714 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 22:27:04 +00:00
Michael Bayne 7fb4eafbf8 How have we not previously been screwed by the fact that an Error (like
NoSuchMethodError) sticks a fork in the event dispatcher thread?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3712 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 04:38:33 +00:00
Michael Bayne dd44bb4f69 Removed unneeded and improper Runnable check.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3696 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-06 18:32:37 +00:00
Michael Bayne 5502936535 Instead of relying on toString() returning something sensible, we go back
to using the class name but get the appropriate class in the case of
RunQueue queued intervals.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3695 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-06 18:20:22 +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 18fa50cb78 Temporarily use renamed constant.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3689 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-24 18:47:21 +00:00
Michael Bayne b7f02502aa Track max queue size and total events dispatched in an extensible stats
object that can be (and is) provided to external callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3688 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-24 18:28:36 +00:00
Michael Bayne 5fbb02bc34 Decode InvocationRequestEvent information as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3676 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-08 23:59:27 +00:00
Michael Bayne d30119eb65 Do some jiggery pokery to better classify the zillions of Interval$Unit$1
runnables that get added to the dobjmgr queue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3675 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-08 23:54:41 +00:00
Ray Greenwell dc202b3e8a Let's find out what that invalid argument exception is, should it recur.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3665 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-01 18:11:33 +00:00
Michael Bayne 301c1cbe4d Dispatch the notification that the client failed to logon after we are
completely cleaned up so that an immediate attempt to logon using a
different configuration will not fail due to the client thinking it's
still logged on from the previous failed attempt.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3658 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 20:23:37 +00:00
Michael Bayne 15528d9055 Multiple ports!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3657 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:34:26 +00:00
Michael Bayne eba31091bb Switch the default port for the Presents system to the DirectPlay port.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3656 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:26:05 +00:00
Michael Bayne 8c94273b69 Allow the connection manager to listen for incoming connections on
multiple ports.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3655 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:21:33 +00:00
Ray Greenwell b1ec3ab5b5 Comment fixups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3646 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-07 18:51:35 +00:00
Ray Greenwell fa8ee9f8f8 Added finishResolution(), which is called on the dobj thread to finish up
population of the client object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3645 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-07 18:46:38 +00:00
Michael Bayne 9f470a4205 If we end up with a selectable channel in our selection set that we no
longer know about, request that it be given the boot when it rears its
ugly head.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3643 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-06 01:00:19 +00:00