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
* socketClosed was issuing a warning, presumably because whirled doesn't normally disconnect flash client. Anyway, seems like overkill since the server can disconnect whenever it choosed
* Accoring to adobe, calling Socket.close after the Socket.close event should throw an IOError. Thane holds to this, while flash apparently does not. Make our code neutral by checking for connected prior to calling close
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5415 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
- Added an ERROR level, along with an error() method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5395 542714f4-19e9-0310-aa3c-eee0fc999fb1
- when parsing set log levels, accept "warn" as an alias for "warning".
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5393 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
you should always listen for the result! Otherwise, you are likely doing
something wrong. Listen for the result, or change the service to not report
a result if it's irrelevant.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5374 542714f4-19e9-0310-aa3c-eee0fc999fb1