Commit Graph

4753 Commits

Author SHA1 Message Date
Robert Zubeck 59086147e6 A signed 64-bit integer can be stored as two 32-bit integers in Actionscript, but converting
them to a single number becomes inconvenient for values larger than an single int, and tricky 
when the value is negative (i.e. in two's complement split into two words, with sign bit only
in the high int). 

Instead of splitting a long into two ints, we store it internally as a byte array that corresponds 
exactly to Java's serialized version (sequence of eight bytes, high byte first), and we provide 
accessors to convert to and from Actionscript numbers. This makes Java Long values readable in 
Actionscript, and vice versa.

Unfortunately, Actionscript does not have a native 64-bit integer - the closest equivalent is the 
Number class. Since this is a double float with a 52-bit mantissa, very large long values will 
suffer precision loss during conversion. 




git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4811 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-10 20:49:03 +00:00
Robert Zubeck 77ef41cb42 Separated out chat message listener functionality, and subsequent chat message
processing. This enables subclasses of ChatDirector to listen for their own
types of chat messages, but call the superclass to process them.



git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4810 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-10 20:33:03 +00:00
Andrzej Kapolka 2ac50f387a Added a StreamableHashSet class.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4809 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-10 19:44:02 +00:00
Par Winzell 1eda45d8c8 Document index use.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4808 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-07 18:11:30 +00:00
Michael Bayne a6be47fa83 Adjust the shutdown process to ensure that we can get messages generated during
the shutdown sequence out to our clients where desired.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4807 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-06 18:38:27 +00:00
Michael Bayne 0c5a4f6683 Useful error reporting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4806 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-04 02:16:24 +00:00
Michael Bayne 4260a71946 When we call leavePlace() make sure locationDidChange() is dispatched to
listeners letting them know that we're no longer in a location.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4805 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-03 22:40:00 +00:00
Michael Bayne 87bad12e19 Widening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4804 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-02 21:52:11 +00:00
Michael Bayne affca34556 Pipe down there little fellas. There seems to be no easy way to not show debug
logging on the console so let's not be uninformatively verbose.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4803 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-02 18:48:45 +00:00
Michael Bayne 0cb497e6ce This ain't overridin' nothin'.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4802 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-01 17:45:19 +00:00
Michael Bayne 5a490043c4 Added support for switching Java fields to a different type in their
ActionScript counterparts.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4801 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-01 17:40:35 +00:00
Michael Bayne cd599586be Nixed wacky comment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4800 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-01 17:24:32 +00:00
Michael Bayne 010b2fc77a Regenerated from the Java version.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4799 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-01 17:24:26 +00:00
Michael Bayne 871cc64819 Do instanceof Streamable sensibly instead of via the cracksmoking way I was
doing it. Don't generate ActionScript methods for the instrumented field reader
and writer methods.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4798 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-01 17:23:13 +00:00
Michael Bayne 7fc92f99b1 Be sure not to leave our lock dangling if the wrapped operation fails with an
exception.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4797 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 23:33:13 +00:00
Mike Thomas 638f8b6246 Break out registering the command handlers to its own function so subclasses can call it/override it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4796 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 22:44:02 +00:00
Michael Bayne 3f7705dfc2 Split SpeakProvider into SpeakHandler and SpeakUtil. SpeakProvider is now a
proper interface like all the other new invocation service backends.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4795 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 21:05:23 +00:00
Michael Bayne ea501d7083 Automatically register the peer manager as a shutdowner rather than require
that it be shut down manually.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4794 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 20:01:52 +00:00
Ray Greenwell 47bace1003 This is tested.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4793 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-31 06:50:19 +00:00
Jonathan Le Plastrier 01ed8c5ca5 We're going to have our distclean projects not call clean which will complain that dist/ has been wiped out if you call distclean again. Look for these exciting changes in other rings near you.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4792 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-28 01:37:54 +00:00
Michael Bayne 3c1c1d1921 We need to restore the remote oid as well before we send the unsubscribe req.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4791 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-27 21:47:50 +00:00
Mike Thomas 3327f4b7e8 Since the classname is coming from a properties file - rip off any trailing whitespace.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4790 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-27 20:57:07 +00:00
Michael Bayne 3c4c633b60 Created a ResultListenerList that maps the InvocationService.ResultListener
interface to a list of listeners. Also made RootDObjectManager a RunQueue so
that we can pass around references to the interface rather than requiring a
PresentsDObjectMgr.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4789 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-27 20:48:18 +00:00
Robert Zubeck 73b7e56563 Fixing a typo that prevented the creation of lock release handlers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4788 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-27 17:46:10 +00:00
Michael Bayne c2b44deb2d Once we've unproxied an object, we need to remap it into our Client's
distributed object space so that the unsubscribe from the remote server is
properly handled.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4787 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-27 02:38:14 +00:00
Michael Bayne 7a8bb7389a Screw backwards compatibility. We're all about the future.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4786 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:49:13 +00:00
Michael Bayne 81044c6512 Provide a PersistenceContext accepting constructor.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4785 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:41:09 +00:00
Michael Bayne 839aaf05dd Nix whole depends business. We can reinstate it if we ever again need it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4784 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:17:31 +00:00
Par Winzell 29bfb576d3 Depot implementation of the Config persistence - hopefully schema compatible with the old version.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4783 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:04:27 +00:00
Par Winzell 363cf719ec Depot implementation of the Peer Node persistence - hopefully schema compatible with the old version.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4782 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:01:44 +00:00
Par Winzell 9aaf4de2b5 Depot is always built, now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4781 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-26 20:00:48 +00:00
Robert Zubeck 8275f739c0 Wrapper for peer network operations that need to acquire and release resource locks.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4780 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-23 17:09:08 +00:00
Michael Bayne 962326fcaf Revamped the way BodyObject.location is tracked. Now we use an object which can
be extended to contain the sceneId by Whirled (Vilya's Whirled, though also
Whirled Whirled by extension) so that we don't end up with problems where
BodyObject.location changes but BodyObject.sceneId remains stale. This won't
impact Yohoho because the Yohoho client is always in a scene, it uses a
separate mechanism to track games, whereas Whirled's natural usage is to move
between scenes and non-scenes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4779 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-21 00:46:25 +00:00
Michael Bayne 9ef330b291 Added applyToNodes().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4778 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 22:46:49 +00:00
Michael Bayne 91ffdd810b Name our invokers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4777 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 22:03:17 +00:00
Michael Bayne b0ec20eff9 Widening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4776 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 21:58:16 +00:00
Michael Bayne 6531aa581c Extract client info clearing into a method that can be easily extended.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4775 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 21:35:54 +00:00
Par Winzell 20719ee3f1 OK, so even this little change is going to have to wait for a few days until after the massive Depot restructure. The current version gets fields and columns a little confused from time to time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4774 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 18:54:47 +00:00
Michael Bayne 038e5c5b85 Differentiating these invokers turns out not to be especially useful. Let's
avoid log spam and call them all the same thing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 18:34:53 +00:00
Par Winzell 30a8179c5f Let's switch the peristent peer stuff over to a schema-comaptible Depot implementation. I think only Bang uses presents.peer and crowd.peer -- apart from Whirled -- and Bang already uses Depot.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4772 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 18:08:11 +00:00
Michael Bayne 7cf24684a7 Added locateClient().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4771 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 06:18:16 +00:00
Michael Bayne 6b67de9fca Looking something up in all the peer node objects is tricky, so let's
encapsulate it into a mechanism that takes care of the trickiness for us.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4770 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-17 22:03:12 +00:00
Michael Bayne f68aa1d6d3 Iterate over a snapshot of the values so that we avoid concurrent modification.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4769 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-17 21:06:09 +00:00
Par Winzell 6c65d51d76 I'm switching PeerRepository over to Depot and it returns Lists, not ArrayLists. I sure wish we could use the List and Map interfaces. It's not like we're suddenly going to surprise the caller by maliciously returning a LinkedList one day, or something.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4768 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-17 20:33:47 +00:00
Michael Bayne 321c3f17e5 Factored PeerNode out of PeerManager as that class was getting complicated and
dangerous with two big inner helper classes. Added the nodeName to NodeObject
and some other handy methods.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4767 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-17 01:59:27 +00:00
Michael Bayne c27356b4c3 Nix need for cast.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4766 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-16 22:13:59 +00:00
Dave Hoover 4667d37212 Christmas comes but once a year, but svn keyword substitution day comes
whenever the urge strikes!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4765 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-14 00:26:52 +00:00
Michael Bayne 10f606be27 Regenerated services. TypedArray is imported even though it's not used because
our code generation stuff is not the ultra-sophisticated, but we'll cope.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4764 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-13 23:54:25 +00:00
Michael Bayne 27c11ce393 Oops, missed this guy.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4763 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-13 21:58:09 +00:00
Michael Bayne 77e3f22d90 Added moveToServer() which does pretty much what it says. Boy I love writing
everything in two languages. Especially when one doesn't support inner classes
and has non-C syntax just to make life easier for parser writers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4762 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-13 21:57:55 +00:00