second rate (10 messages per second), and to do the same 10x buffer on the
server that we were doing before so that we avoid disconnects due to network
congestion (which might "save up" some throttled messages and then end up
delivering them in a bunch with some later messages).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5424 542714f4-19e9-0310-aa3c-eee0fc999fb1
communicates that limit to the client which queues outgoing messages so that it
does not exceed the limit. When the throttle is changed, the server does not
apply the new throttle until the client has ACKed it to avoid edge cases where
the client is up against the limit when the throttle changes.
ActionScript side of all of this forthcoming as well as more testing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5422 542714f4-19e9-0310-aa3c-eee0fc999fb1
* Subclasses use setOverflowLimit to enable
* handleMessage appends to overflow queue and starts interval if overflow is currently active or if the throttle fails a message
* handleMessage ends session if overflow limit is reached
* New handleOverflowMessages dispatches messages from the overflow queue until none are left or throttle fails
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5417 542714f4-19e9-0310-aa3c-eee0fc999fb1
that read and write it, and we need to cope if a client manages to go away
before we can send it its bootstrap response.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5412 542714f4-19e9-0310-aa3c-eee0fc999fb1
pages which give us something useful to link to when we want to point to all of
the javadocs for a particular subtree of the Narya packages.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5411 542714f4-19e9-0310-aa3c-eee0fc999fb1
thing before committing instead of just going "oh yeah, I've been having this stuff
sitting around uncommitted for a while waiting on it to be blessed" and missing
out on things that'd changed in the meantime.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5400 542714f4-19e9-0310-aa3c-eee0fc999fb1
and you can't use @Override in java 5 when implementing an interface method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5378 542714f4-19e9-0310-aa3c-eee0fc999fb1
- It's probably "more" standard, and maybe when they finally add Predicate
to java.util, it will be based on google's implementation.
- Unfortunately this is a little less efficient at runtime. The samskivert
Predicate can filter into a new Collection that knows its size, google's
code just returns an Iterable that is a *view* on the Iterable passed
in, so it doesn't know how many elements are in it. When we copy it into
an array, a List is first created to receive all the filtered elements
from this view, then that List is turned into an array. Oh well, it's
less lines of code here in this class thanks to Google's fun libs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5375 542714f4-19e9-0310-aa3c-eee0fc999fb1
Note: this involves generated code from a samskivert patch I only just sent to mdb,
but he's in a meeting, so that won't show up for a little.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5369 542714f4-19e9-0310-aa3c-eee0fc999fb1
failure to implement a zero arg constructor even in a developer's single server
test environment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5367 542714f4-19e9-0310-aa3c-eee0fc999fb1
things to stuff into a translated string, but I've seen it happen
in internalish yohoho messages, so let's not blow up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5339 542714f4-19e9-0310-aa3c-eee0fc999fb1