Commit Graph

130 Commits

Author SHA1 Message Date
Dave Hoover 3a25e8a3b9 Update source headers to point to our new home.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6214 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-10-18 18:01:12 +00:00
Charlie Groves bcbeb03345 Only two pieces of debugging code slipped past me in that small commit
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6200 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-10-15 07:56:13 +00:00
Charlie Groves aad715138c Make writing List fields on Streamables possible from ActionScript again, and fix List reading and
writing in the code generated by GenActionScriptStreamableTask.



git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6199 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-10-15 07:53:38 +00:00
Ray Greenwell 0bce227a40 Map/Set streaming for actionscript.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6124 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-08-11 03:53:06 +00:00
Bruno Garcia 03ae523e62 Typo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6102 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-07-29 20:35:45 +00:00
Dave Hoover 3b266edcd6 That should be private.
If it's public, we try to shadow it in a subclass & wind up still
getting THIS one.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6083 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-06-18 23:40:16 +00:00
Mike Thomas 079269a825 Handle short[]'s on the actionscript side of streaming. This gets a little ugly given the lack of a primitive short on the actionscript side...
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6071 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-06-08 01:37:08 +00:00
Dave Hoover fdf51a634a Welcome to the future.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6008 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-01-04 21:47:46 +00:00
Ray Greenwell 6c65caeb1b readField() also gets an untyped return type.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-11-06 23:09:26 +00:00
Ray Greenwell 00c4777460 Example text.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5987 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-11-06 21:50:21 +00:00
Ray Greenwell d82a926ca1 Add an example to the docs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5986 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-11-06 21:18:43 +00:00
Ray Greenwell ee27342a24 Proposed change to readObject().
The purpose is to
- Ensure type checking for "fail-fast" detection of streaming errors.
- But simplify it so that callers don't have to cast themselves and
  potentially screw up by using "String(obj)" or "Array(obj)", or miss out
  on the fail-fastyness by using "obj as SomeType".
- But, at the same time, allow for the sveltest code possible.
    // first one is a bit shorter!
    _name = ins.readObject(Name);
    _name = Name(ins.readObject());

    // first one is a bit shorter!
    _state = ins.readObject(String);
    _state = ins.readObject() as String;


So, to sum up: the code is the shortest and doesn't require special-casing
if you are reading a String, Number, int, uint, Boolean, or Array.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5984 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-11-06 01:27:03 +00:00
Ray Greenwell dae0f7f44f Fuckit, let's use uint paramters and make the default uint.MAX_VALUE.
Unless I have to roll this back because the like compiler in CS3
shits its pants trying to understand it (external references for
default parameter values seem to sometimes fail).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5969 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-24 20:13:39 +00:00
Ray Greenwell 3f2468e7a1 Oh crap, let's make ObjectOutputStream protect against fuckup, too.
Note that we're using ints instead of units for offset/length.
Does anyone really need a byte array larger than 2^31?
And if so, wouldn't you then also be within sight of busting 2^32?
Why not make it a Number and support up to 2^53?
Number is no guarantee of a desire for a floating-point value in
the flash libraries, see Graphics.lineStyle()'s first parameter.
Actionscript, you fail for not having long.
And... I said I wasn't going to bitch at Adobe/Macromedia any more
but this is a total FAIL.
0 is a valid length. Everyone knows this.
Can you imagine if they picked a different constant?
   length: the number of bytes to read, unless it's 9, in which case
   it reads *all* the bytes. Your code should check to see if you're
   about to read 9 bytes, and instead read 8 in one go and then
   a follow-on byte.
uint.MAX_VALUE would have made tons more sense.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5968 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-24 20:09:35 +00:00
Ray Greenwell 33d19f7a69 Another fix for potential streaming errors.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5967 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-24 19:37:34 +00:00
Ray Greenwell 730d448e40 As far as I can figure, ArrayMask objects are used even when
the Array length is 0, so let's make sure we don't cause any
streaming errors here.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5966 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-24 19:35:35 +00:00
Ray Greenwell f75d46f75f Add a better toString, for debugging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5963 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-17 23:16:22 +00:00
Ray Greenwell 53f1dff95d These are all final.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5962 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-17 21:58:30 +00:00
Ray Greenwell f9bc385c99 Some examples.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5961 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-17 21:53:02 +00:00
Ray Greenwell a24b0d2d03 So, these classes like Integer and langBoolean exist solely for
streaming to our java server, so let's just make them streamable directly.
Does away with the need for custom Streamers.
Also made them Hashable, in case we read a StreamableHashMap containing
Integers as keys, for example.
Less code is better code.
(Why was BooleanStreamer added the other day? langBoolean was already Streamable
 and was already in Translations)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5960 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-17 21:42:25 +00:00
Ray Greenwell 055aac9b55 Use Joiner instead of StringBuilder, in some places.
Use String concatination in others (it's faster in actionscript than in Java)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-16 21:13:07 +00:00
Tom Conkling e0a4340947 add missing BooleanStreamer
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5957 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-15 21:53:26 +00:00
Tom Conkling f4ab06b619 Integers and Booleans are final. This fixes the Integer[] streaming problem I was having with Bite Me.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5949 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-09-11 02:13:03 +00:00
Ray Greenwell c9ea3709f7 Use new Maps factory.
The old HashMap class was a frankenstein one-size-fits-all mess of:
- storing simple objects
- storing Hashables
- having the capability to provide external functions to hash and check
equality of any other type of key.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5927 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-24 02:54:23 +00:00
Ray Greenwell 44480ada4a Use ClassUtil.isAssignableAs().
It works in thane now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5922 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-21 22:45:36 +00:00
Ray Greenwell 4848fe4b29 Now that ByteEnum has been liberated from depot, lets
support streaming them as bytes.
It's better than writing a modified UTF String, but
it'd be even nicer if we could avoid the short to read the class name
(Enums are final), but I suppose we still have to know whether one is null
or not. Hm.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5920 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-19 02:18:14 +00:00
Ray Greenwell 8284198e57 Don't do it twice. Yes, I'm embracing making things more "actionscripty",
including some implicit coercian to a Boolean, which can actually
be quite dangerous... but only with Strings and Numbers and whatnot.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5907 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-13 06:23:27 +00:00
Ray Greenwell fe3d89132d A little bit of tweakery so that the invocation director to use
is known by any invocation marshaller, and so the client does
not need to be passed in.

Just here on the actionscript side for now, but this change may
make its way to Java.

Other changes may follow...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5904 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-08-13 06:17:28 +00:00
Michael Bayne 805ef99374 Various utility classes moved to flash-utils.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5889 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-07-21 20:56:35 +00:00
Michael Bayne 6e9077780c Added/updated source headers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5829 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-20 21:09:34 +00:00
Ray Greenwell 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).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5742 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-23 00:30:44 +00:00
Ray Greenwell 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.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5741 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-23 00:23:34 +00:00
Michael Bayne e90fb7465d Avoid calling bytesAvailable if the socket is not connected. It causes needless
exception throwage.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5711 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-07 20:51:10 +00:00
Ray Greenwell c192056f3a Listen for security errors on our socket.
Have the FrameReader stop listening on the socket when we're done with it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5707 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-03 17:40:54 +00:00
Michael Bayne 916950e873 Nixed unused imports that were breaking asdoc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5703 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-30 22:55:13 +00:00
Ray Greenwell 0c4665e587 We actually want to refuse to stream either int or Number
plainly. Actionscript prevents us from reliably using them.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5619 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-06 02:11:55 +00:00
Jamie Doornbos 5cfb56f003 Fix recently introduced error where int values could not be written out as objects, particularly problematic for generic containers like StreamableHashMap. This was causing the creation of tables to fail for any game with a "range" custom parameter. There is likely a better fix for this, but this will do until we think of it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5617 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-01-04 22:27:37 +00:00
Ray Greenwell 7728ed9bd3 Further cleanup: always look up streamers by their java name.
- Sliiiiightly less efficient in a few cases.
- But: looking typed arrays up by class didn't work anyway,
  there was some duplicated code in jname and class lookup,
  and the jname thing handles Lists from the server. So
  overall I think this is a win.
Less code is better code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5610 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-31 00:41:20 +00:00
Ray Greenwell e9152193b7 - Just use dictionaries, which are inside the HashMaps anyway.
- Register Long.

(I could probably sweep through narya and re-jigger a bunch of
the actionscript code that was written while I was learning the
language.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5609 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-30 23:59:40 +00:00
Ray Greenwell e6ea84e5da Refactor to avoid linear lookup of streamers.
This was a bit of a rabbit hole and took longer than expected,
and I had a stupid bug that took a while to find,
but in the end there are way more lines of code removed than
added, so I'll call it a win. Streamer lookup is now via a Dictionary.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5608 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-30 23:25:50 +00:00
Par Winzell 0cfc7fcc9e Turn debugging off again. Whew.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5598 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-11 19:53:16 +00:00
Par Winzell 31388566f6 Turn on streaming I/O debugging long enough to get better debugging data on the development server. Will be flipped back ASAP.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5597 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-11 19:35:25 +00:00
Jamie Doornbos 077c5e8053 At Ray's suggestion, go ahead and throw an error when the wrong type is read. Use the Type(obj) cast syntax (I was unaware that this would actually throw an error). Reading objects of a basic type like Array must still use "readObject(Array) as Array" so this is still supported, though not needed for user types.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5441 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-13 17:34:55 +00:00
Jamie Doornbos a3cc67348e Gah, this was part of the implementation, but in the end I took it out but missed the import
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 06:21:54 +00:00
Jamie Doornbos e12ff0e9f3 Optional type checking for readObject
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5438 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 06:06:06 +00:00
Michael Bayne e1d83cade0 Make it possible to create and populate a TypedArray in a single expression.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5386 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-22 18:15:04 +00:00
Tom Conkling ccc81d4da0 Whoops!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5361 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-05 00:32:38 +00:00
Tom Conkling ca8abbaf62 Make readAvailable() non-recursive.
Thane apparently has a maximum stack depth of 64, and this is quickly getting eaten up by readAvailable() when lots of frames are sent down the tubes simultaneously. (mxmlc doesn't seem to optimize tail-recursive functions.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5360 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-05 00:30:19 +00:00
Ray Greenwell 76ebba1614 Added readLong and writeLong to our streaming classes.
Use that in PongResponse.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5358 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-04 22:21:03 +00:00
Ray Greenwell 08522d513a Quick fix that should fix the RoomName problem, while I contemplate
larger changes that may enhance performance.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5356 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-04 21:29:10 +00:00