ae7373cdbc
Might as well stop the timer if we're cleared. It's the closest thing to a shutdown.
Ray Greenwell
2009-05-13 00:42:24 +00:00
42f7ce23ac
Allow the event handler to be specified in the constructor.
Ray Greenwell
2009-05-13 00:27:02 +00:00
497ade64e8
Last rejiggering, I promise! (I hope)
Dave Hoover
2009-05-12 23:52:37 +00:00
7cfee2eabd
Complexity++!
Dave Hoover
2009-05-12 23:29:31 +00:00
e740f387cc
Some widening/foreaching I had lying around.
Dave Hoover
2009-05-12 23:25:07 +00:00
bbbdd3bb60
Let NamedSetAdapter do the lifting for us.
Dave Hoover
2009-05-12 23:24:42 +00:00
305de912ff
- forEach was returning the ExpiringElements, not the data. - We shouldn't need to run checkTimer() on add(), generally. If adding the sole element, we can just schedule the expiration directly. - Simplified and functionalized some other bits.
Ray Greenwell
2009-05-12 23:09:42 +00:00
bba179b372
As Ray points out, iae's more useful as the second arg to our new exception than in the log message.
Dave Hoover
2009-05-12 21:33:46 +00:00
cd07e3a9ee
This puppy's been in yohoho for a while, but seems like it would be generally useful in narya land.
Dave Hoover
2009-05-12 21:21:02 +00:00
ff5c1bf3e5
Let us filter what entries a DSetEditor shows with a Predicate.
Dave Hoover
2009-05-12 21:13:54 +00:00
239fec3236
SimpleEntry's a big boy now.
Dave Hoover
2009-05-11 20:23:19 +00:00
7d3f8a2c06
Gonna need that now that I'm actually throwing some of these across the net.
Dave Hoover
2009-05-09 00:09:00 +00:00
15ca8973bc
KeyWrapper is pretty handy when you really just want a DSet stuffed full of some pre-existing Streamable/Comparable type (e.g. String), so let's buff it up to let us do that cleanly, and publicize it.
Dave Hoover
2009-05-08 18:57:58 +00:00
8e2a05864a
Bring this maximum back down. I had thought that oversized datagrams were fragmented and reassembled at the network layer, but apparently that's not something one can count on.
Andrzej Kapolka
2009-05-07 02:22:25 +00:00
21cd434b4f
Would've been better if I didn't misread the docs for "match" and had realized my last change didn't actually work. We'll FIND stop words in text now so our regexp doesn't have to match the whole string.
Dave Hoover
2009-05-04 18:25:12 +00:00
6c962bf3d4
Reflection is much faster these days, but we do a lot of event processing, so let's not surreptitiously slow things down.
Michael Bayne
2009-05-04 17:50:44 +00:00
533c7f5408
Hooverian simplification, actionscriptified.
Ray Greenwell
2009-05-03 20:08:46 +00:00
f3e5b1a9c2
We don't need to make _stopMatcher match the entire content of the text that contains the stop word since the filter only cares if it exists at all in the text.
Dave Hoover
2009-05-02 06:29:40 +00:00
6eb8953c4b
Allow flush time to be customized.
Michael Bayne
2009-05-01 20:36:11 +00:00
bafb7f78c0
Added elapsedSeconds().
Michael Bayne
2009-05-01 19:34:38 +00:00
34a99c26c0
If the last arg (in the Error position) is null, assume it's a null Error and print "error=null" rather than "null=".
Ray Greenwell
2009-04-30 21:33:22 +00:00
d56ba51b49
I appear to have a hiesenbug, so this didn't actually end up testing this... but we should be using the new varargs fanciness, including a stack trace from the error.
Nathan Curtis
2009-04-30 18:44:11 +00:00
0e2f26df73
The uber-adapter. I could also make this just implement each interface, but I like being able to assign the functions to their proper names.
Ray Greenwell
2009-04-30 01:31:30 +00:00
a66c27a169
Track various peer stats.
Michael Bayne
2009-04-29 22:10:31 +00:00
2a4ac9b96a
These don't need to be final.
Michael Bayne
2009-04-29 21:59:40 +00:00
17688e9ff5
Updated comment to reflect reality.
Michael Bayne
2009-04-29 21:59:28 +00:00
e77949a143
Cleaned up stats tracking in PresentsDObjectMgr and ReportingInvoker. At some point Pulse can probably totally replace the ReportManager at which time a bunch of cruft can go away.
Michael Bayne
2009-04-29 19:05:04 +00:00
c8dd3f1901
Expose that HashMap constructor on StreamableHashMap, too.
Dave Hoover
2009-04-29 18:59:10 +00:00
f6a689cd47
Ray points out a flaw in our vizname to authname approach:
Michael Bayne
2009-04-28 17:00:10 +00:00
d65dc84d1b
Fix typo.
Ray Greenwell
2009-04-28 02:14:52 +00:00
e7dbda821d
Removed pointless 8-char optimization. Now it is more useful for this to hash identically as in Java.
Ray Greenwell
2009-04-28 01:14:01 +00:00
9a50e5f791
Added compare().
Ray Greenwell
2009-04-28 00:07:25 +00:00
abc0bb9eb3
UDP fixes: we can only stop transmitting the mappings sent in the acknowledged datagram (not the ones before it, which may or may not have been received). Also, make sure we don't throw an ArrayIndexOutOfBounds exception when retrieving a bogus class mapping (so that we show the correct error logging information).
Andrzej Kapolka
2009-04-27 23:28:16 +00:00
73dd5beda4
Same here even though we were doing long arithmetic which would most likely avoid blowage.
Michael Bayne
2009-04-27 22:18:50 +00:00
7e777e9c72
Divide the millis by 1000 to get seconds instead of multiplying the numerator and blowing an int.
Michael Bayne
2009-04-27 22:17:36 +00:00
da4159c665
Switch to the ServerCommunicator. I'm sure it'll work just fine!
Michael Bayne
2009-04-27 19:51:06 +00:00
a2d6549121
Comment fix.
Michael Bayne
2009-04-27 19:48:00 +00:00
eb4b8674af
ArrayUtil.sortedInsert
Tom Conkling
2009-04-26 20:34:29 +00:00
749ab8e1bb
google-collect upgrade
Charlie Groves
2009-04-24 23:01:40 +00:00
510ddbb717
Instated some debug logging. Some day maybe I'll make it easy to enable debug logging in a fine-grained way in a running server.
Michael Bayne
2009-04-24 19:03:17 +00:00
6fe7159b4c
Provide an Iterable for our client objects.
Michael Bayne
2009-04-23 17:01:38 +00:00
5df1335471
Add an easy way to initialize. Jeez, this whole thing could *almost* go away if we moved to flash 10 and used Vector, but of course, there's no way to get the type of Vector. Maybe there is, with describeType(). Can't experiment now. I'd fall out of my chair if there were. We need to know in case sending an empty array to the server, it's still gotta be the right type (with non-empty we could try examining the first element).
Ray Greenwell
2009-04-23 00:30:44 +00:00
bfcb45434e
Ye olde razor. Now that I know abjectscript like the back of my hand, reviewing some of the first code written in it might be a good idea.
Ray Greenwell
2009-04-23 00:23:34 +00:00
c754d42f5b
Oops, it's called addDispatcher() now.
Michael Bayne
2009-04-20 17:58:18 +00:00
9155065ca8
Let's call it addDispatcher() to distinguish it from InvocationManager's registerDispatcher() which requires a corresponding call to clearDispatcher().
Michael Bayne
2009-04-20 17:55:33 +00:00
398ee3cfa2
Grant handy automatic invocation service clearing to place manager delegates.
Michael Bayne
2009-04-20 17:53:24 +00:00
1eefc50828
Common problem: place managers register dispatchers when started up and forget to clear them when they shutdown. Solution: add a mechanism for registering dispatchers such that they are auto-cleared when the manager shuts down.
Michael Bayne
2009-04-20 17:44:03 +00:00
48b3a27af8
Prevent a divide by zero error attempting to generate a log.
Mike Thomas
2009-04-20 17:12:27 +00:00
916cb30339
Clear out our _bstrap reference when we logoff. What's good for the ActionScript goose is good for the Java gander.
Michael Bayne
2009-04-18 00:07:54 +00:00
c21f8ad735
Clear out our _bstrap reference after we logoff.
Michael Bayne
2009-04-18 00:06:06 +00:00
597062f0bc
Oops. Can't do that.
Michael Bayne
2009-04-17 22:57:55 +00:00
51f1f273d9
Allow 1.6 source but continue to target 1.5 bytecode.
Michael Bayne
2009-04-17 22:49:29 +00:00
f03caf98fe
Use Util.adapt(). Look at this functional programming masterpiece. I'm not sure how much actual utility is here, and how much I just like the gee-whiz factor.
Ray Greenwell
2009-04-17 21:27:35 +00:00
62fb546f27
Check this out. This little buddy rocks. I sorta want to make a new FunctionUtil so that I can use it with impunity everwhere without having to include the other crap in here.
Ray Greenwell
2009-04-17 21:23:23 +00:00
bb87184632
Should resolve infinite recursion with SortedHashMap. Tip from the pros: when you change a class, you might want to check the subclasses for possible problems with that change. :P
Ray Greenwell
2009-04-17 20:01:01 +00:00
96bdaf9f1f
Allow XML to be encoded. Let's try it and see if it works. Let us know Nathan.
Ray Greenwell
2009-04-17 01:06:00 +00:00
d354d951b8
Small tweaks. Apply directly to the nipples.
Ray Greenwell
2009-04-16 23:00:36 +00:00
cbbd1f281d
WeakValueHashMap. Apply directly to the ... I hate your checkin comments, but I love your product!
Ray Greenwell
2009-04-16 22:55:40 +00:00
dbf20bdc28
WeakReference. Apply directly to the forehead.
Ray Greenwell
2009-04-16 22:53:35 +00:00
3300421741
- Use [] instead of "new Array()" - Implement keys() and values() using forEach(). - Less code is better code. - But, it's less efficient: - values() now looks up simple-key values by hashing - values() now unwraps non-simple keys, even though unneeded - keys() looks up simple-key values, even though unneeded
Ray Greenwell
2009-04-16 22:51:12 +00:00
e76d1a6610
Interesting... if the peer disconnects before the node object subscription completes, an NPE would fire... but could this have prevented a lock from being release. It doesn't seem likely since a lock probably can't be assigned until the subscription is complete anyway(?). But then again, maybe some information is passed prior to this. In any case, stop throwing an NPE here.
Jamie Doornbos
2009-04-16 17:12:15 +00:00
0f73afc492
This class is remarkably pointless. We could trash it and change our toStringBuf() methods to just return a String. I guess. Then the caller would have to assign the string somewhere. I guess this has some value.
Ray Greenwell
2009-04-15 20:25:26 +00:00
305c53f53a
These are breaking asdoc.
Ray Greenwell
2009-04-15 18:52:15 +00:00
61f752a105
Check the right things in our Preconditions.
Michael Bayne
2009-04-15 00:28:07 +00:00
b160aa944f
Let's just have SafeSubscriber take two callbacks instead of forcing everyone to screw around with SubscriberAdapter.
Michael Bayne
2009-04-15 00:22:24 +00:00
202f6bba81
Widening.
Michael Bayne
2009-04-15 00:13:29 +00:00
e1b29dbf6f
The BodyObject can definitely supply its Name.
Michael Bayne
2009-04-14 16:31:17 +00:00
021b5dab22
I swear I had made one of these way back when. Here it is again.
Ray Greenwell
2009-04-14 01:40:14 +00:00
d1d6aa50d9
Unburden init() from things that can be injected.
Ray Greenwell
2009-04-11 01:21:19 +00:00
24760fa266
Create our PeerNode object through injection.
Ray Greenwell
2009-04-11 01:12:16 +00:00
18d36176a3
The PeerNode is the thing that calls clientLoggedOn/Off on the PeerManager, so let's keep with that pattern for any clients there when the peer itself connects or disconnects.
Ray Greenwell
2009-04-10 22:25:35 +00:00
7f97d41fd5
Fail earlier here if we have no _clobj. I have been seeing this in testing, though annoyingly now I can't reproduce it. Call Heisenberg!
Michael Bayne
2009-04-08 20:32:47 +00:00
e90fb7465d
Avoid calling bytesAvailable if the socket is not connected. It causes needless exception throwage.
Michael Bayne
2009-04-07 20:51:10 +00:00
ca8904b9db
Let's actually name that something different.
Michael Bayne
2009-04-06 21:19:25 +00:00
3b1024651a
Split our reports into the default report and a separate report for the giant morass of profiling data.
Michael Bayne
2009-04-06 21:13:59 +00:00
fd321d6f2d
Let directors dispatch events.
Ray Greenwell
2009-04-06 21:10:32 +00:00
c192056f3a
Listen for security errors on our socket. Have the FrameReader stop listening on the socket when we're done with it.
Ray Greenwell
2009-04-03 17:40:54 +00:00
cc1690654a
No longer need this platform hackery.
Michael Bayne
2009-03-31 01:36:58 +00:00
752642db17
Nixed more asdoc-killing unused imports. Why these didn't kill my local asdoc but do on the build server, I know not.
Michael Bayne
2009-03-31 01:20:08 +00:00
6f535f3346
Added asdoc target.
Michael Bayne
2009-03-30 22:55:27 +00:00
916950e873
Nixed unused imports that were breaking asdoc.
Michael Bayne
2009-03-30 22:55:13 +00:00
ab8406806e
The quick fix: It was never intended that there'd be two goddamn ChatDirectors in a client.
Ray Greenwell
2009-03-27 22:46:11 +00:00
bc6929d239
Actually, let's make a whitelist the valid modes. YAGNI code, no ability to break-out the whitelist. No other game of ours uses other valid modes, does it?
Ray Greenwell
2009-03-26 23:36:03 +00:00
5ba9ea1faa
Fix a big ol' memory leak. This remove() call appears to have accidentally gotten commented out in a warnings-cleanup pass because it used to assign the result of the remove to a variable only used in a commented-out Log.info(). Since the receivers stored in the hashtable can point to exciting things, like, say, puzzle panels, it was causing a pretty immense amount of stuff to get held onto.
Mike Thomas
2009-03-26 23:26:26 +00:00
423aee81af
Move broadcast filtering into the command handler. Break out the actual doing of the broadcast so that just that can be overridden.
Ray Greenwell
2009-03-26 22:01:49 +00:00
88bec3d641
Prunexorz!
Michael Bayne
2009-03-26 00:43:50 +00:00
688f2580ed
Varargified log calls.
Michael Bayne
2009-03-26 00:02:19 +00:00
647a25dfdc
Even better: have the base PeerManager call clientLoggedOn and clientLoggedOff for every client on another node when it connects or disconnects from that node.
Ray Greenwell
2009-03-25 23:10:02 +00:00
4a5136d3f0
Bugfix: chat bug. If node A started up and connected to node B, which already had players logged on, then nobody on A could send chat to anyone on B.
Ray Greenwell
2009-03-25 22:56:29 +00:00
3c8e293071
Added a way to suppress the feedback generated when a mute is changed.
Ray Greenwell
2009-03-25 21:38:14 +00:00
a419ed8455
Support for broadcasting with either a custom attention level (for system messages), or a custom mode (for user broadcasts).
Ray Greenwell
2009-03-25 21:23:32 +00:00
52cedb5bdb
Comment.
Ray Greenwell
2009-03-24 21:00:38 +00:00
d46acc6bc4
Added createReverse(), and make comparators compatible with a flex Sort object.
Ray Greenwell
2009-03-24 20:56:34 +00:00
904be81707
Actually, let's only allow suppressing flushing.
Ray Greenwell
2009-03-24 00:30:27 +00:00
195d764347
Allow flushing and notifying to be suppressed when a value is set.
Ray Greenwell
2009-03-24 00:27:46 +00:00
5d0a86c698
If we never dispatched a DID_LOGON, then don't dispatch a DID_LOGOFF. Dispatch a FAILED_TO_LOGON instead.
Michael Bayne
2009-03-19 23:40:03 +00:00
0da49cb6ab
Uhh, might want to handle PresentsSession.getInetAddress returning null for disconnected clients
Charlie Groves
2009-03-18 20:14:15 +00:00
af14e64c04
Moved these here functions to Util. Immediately after writing them I considered that they didn't really belong in ArrayUtil, since they don't operate on Arrays. Util is better, since it's less specific.
Ray Greenwell
2009-03-18 01:13:38 +00:00
45999ffdc2
Pull bundle loading out into a method so subclasses can have their way with it
Charlie Groves
2009-03-13 21:49:37 +00:00