Commit Graph

34 Commits

Author SHA1 Message Date
Ray Greenwell ec2b50c153 - Changed some stuff around with streaming.
- Before, the Input/OutputStream classes handled Streamables directly
    and Streamers were never created for them. Simplified the code somewhat
    by always creating a Streamer. It's now more like the Java side, too.
  - No more BAD_STREAMER, since null now means "bad".
- Built-in support for streaming enums.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5352 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-04 01:27:18 +00:00
Ray Greenwell 2be1dc747d Some formatting love, from the futuristic world of 100 column code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5349 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-04 00:48:46 +00:00
Ray Greenwell 376f5e680a Sorry, Log, no more free ride for you.
Putting you at the top level screws up use of another Log class.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4874 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-13 09:30:23 +00:00
Ray Greenwell 480abdee8a For primitive types, the coercive casts never fail. Let's be lenient and let
a TypedArray of int work if people fill it with strings like "4" or "9".


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4854 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-24 21:51:32 +00:00
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
Michael Bayne 09f0bee0f3 Yet more header patrol.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-24 00:39:27 +00:00
Ray Greenwell b217e87519 - Have the ArrayStreamer always look up its delegate, as it may need one
for element types other than String.
- Changed streamer init to prevent the above change from triggering
  a re-init when the delegate is looked-up.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4568 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 21:31:21 +00:00
Michael Bayne 46a23342b3 More jockeying to make String[] streaming work and to make service group
registration work. Keeerist Flash is annoying.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4562 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 03:40:14 +00:00
Michael Bayne 4bc3e1e48d Some error message clarification, added java.lang.String to Translations, some
widening.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4560 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 03:10:05 +00:00
Ray Greenwell 67a4eecc15 Abjectscript is just such a great language. I fixed two bugs in here that the
compiler never wanted to tell me about.
- I was trying to store read values into the streamer itself, referecing
  it as "this[ii]". This turns out to be legal, even though the class is
  sealed, because you can access public fields using the [] operator with
  a string argument. At runtime, ii == 0, it got Stringdafied to "0" and
  then a field called "0" was looked up on the class and oh no, it didn't
  exist.
- Worse, I had a line that referenced "length" instead of "arr.length".
  There is no length defined in the class, nor is there one in the superclass.
  It turns out the base class Object has an undocumented constant called
  length that seems to always be 0. Isn't that special?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4333 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-21 21:39:14 +00:00
Ray Greenwell 54f3fdb3e6 Implement Boolean array streaming.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4319 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-11 02:43:30 +00:00
Ray Greenwell be62ca7301 Right, "Z" means boolean in Java array classnames.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4312 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-09 20:03:14 +00:00
Ray Greenwell 4fde46f362 Handle boolean arrays from the server.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4310 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-09 00:58:43 +00:00
Ray Greenwell 1818bd14dd Found one of the bugs: the default ArrayStreamer was being picked to stream
TypedArrays.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4262 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-12 23:51:01 +00:00
Ray Greenwell 608be4557b Some changes required for the new compiler.
- Import bleeding may be fixed, as I had to import a bunch of things I
  should have had to earlier.
- NOW they make duplicate variable definitions bad (but without block
  scoping... yay).
- Another hoopjump.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4233 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-28 22:04:19 +00:00
Ray Greenwell 251566b321 - Added TokenRing
- Specify override first on overridden methods.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4170 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-05 21:28:00 +00:00
Ray Greenwell cdd7a64b04 Renamed some "inner" classes, removed debugging lines.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4152 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-26 22:39:31 +00:00
Ray Greenwell fdfce50d01 Checkpoint, I've got an interactive 2d scene mostly working.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4151 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-26 21:54:34 +00:00
Ray Greenwell a22ca8b079 Simplified logging facilities.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4131 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-19 22:47:44 +00:00
Ray Greenwell 8604a4ac6a Various cleanuppery.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4118 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-16 01:51:01 +00:00
Ray Greenwell d123c61606 Use the ArrayStreamer to stream regular Arrays as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4113 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-11 23:58:21 +00:00
Ray Greenwell b82108ecea Streaming fixups on the path towards getting things working in beta3.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4105 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-10 00:40:15 +00:00
Ray Greenwell e100ef4faf Updated to match API changes in Beta3.
InvocationRegistration had a constructor called Registration. I wonder if
that was causing the compile error with beta2.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4104 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-09 23:03:47 +00:00
Ray Greenwell 90e4017801 A bit more, more streaming issues. I might need to rework some stuff.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3985 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-28 02:02:22 +00:00
Ray Greenwell 538803e1fb Checkpoint. Closing in on getting a chat client up, but slogging through
annoying streaming issues.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3984 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-28 01:27:57 +00:00
Ray Greenwell a91bf8b14c Added some missing marshallers.
Use Long instead of long. I had them both (it may be useful so that we
know if we're streaming an object or just 8 bytes of value) but Windows
couldn't fucking tell them apart (case insensitivity) so I nixed one.
Reference some more marshallers in the client so that the classes will
be compiled in.. gawd.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3977 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-24 23:49:51 +00:00
Ray Greenwell add8f3f97c Work around a compiler bug by FQing the Log classname we're using.
We can revert these statements when/if that bug gets fixed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3960 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-18 00:04:34 +00:00
Ray Greenwell ca66f91ac7 Started work on the 'crowd' package.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3935 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-10 03:05:37 +00:00
Ray Greenwell 704fbfaec3 Removed debugging for a heisenbug that seems to be gone now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3931 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-09 03:27:52 +00:00
Ray Greenwell 04255b383b Checkpoint.
Never in my life have I spent so much time debugging so little.
I think the flash player is full of bugs, I've learned to just run
everything two or three times and chase the error that happens the most. Fun!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3929 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-09 02:55:07 +00:00
Ray Greenwell b82b079469 It seems that Array streaming now works.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3924 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-08 03:28:09 +00:00
Ray Greenwell ea0a3dce06 Well, it compiles.
It's not functional, there are still large holes in the implementation.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3868 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-20 03:53:04 +00:00
Ray Greenwell 1d36299e3c Some work on streaming.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3855 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-15 01:41:14 +00:00
Ray Greenwell 85d56cceec Some more progress.
I still need to work on the Streaming, but I've figured out how
to do a bit of introspection which will be necessary when streaming an array.
Started working on the client classes, did ClientObserver and SessionObserver
stuff using flash's event notification system.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3846 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-10 03:44:20 +00:00