Commit Graph

149 Commits

Author SHA1 Message Date
Ray Greenwell b367372dc6 Gah, I tried to abort the last commit so I could make this change,
and instead my checkin message got mangled.

*clearing throat*
..So our old way of doing things was pointlessly waiting a frame to handle
network events.
We also ran object subscribe/unsubscribe requests through the same queue,
and now those are processed immediately. Everything seems ok, but let's
keep an eye out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5016 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-23 18:07:59 +00:00
Ray Greenwell 19831db930 Stop waiting for ENTER_FRAME to process incoming messages.
This was residual from the initial conversion from Java, but I don't think
it's very necessary on the flash side, and Zell is working to decouple
the presents layer from flash-player specific classes and events like
ENTER_FRAME.
So now we just process everything immediately.
I did some tests, it seems that the flash player dispatches ENTER_FRAME,
then it dispatches any network events, then the frame is rendered.
So our old way of doing things was pointlessly 


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5015 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-23 18:04:50 +00:00
Ray Greenwell cd9126b55c - Proper casting.
- Handle the common case first.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5013 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-23 17:32:38 +00:00
Ray Greenwell 5b1b22b955 Removed cruft that long ago was promoted to its own file.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5009 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-22 17:59:52 +00:00
Ray Greenwell bab168d443 Removed MethodQueue.setStage(), use the same trick we use in
AnimationManager and that I saw in use in Tweener: just
listen for ENTER_FRAME on some random sprite.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4926 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-01-24 21:47:11 +00:00
Dave Hoover 24f557c0d7 Speeling
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4924 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-01-22 23:57:54 +00:00
Michael Bayne 635bb0a13f Track that we're switching servers so that the client can differentiate during
did logoff between a real logoff and a server switch.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4894 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-03 21:21:50 +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
Michael Bayne a34e500ea6 Added startTransaction() and commitTransaction() to the InvocationDirector so
that EZGame can batch up state change requests which are all invocation service
requests.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4844 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-17 21:33:05 +00:00
Michael Bayne 6b46554eaf Widening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4843 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-17 21:06:17 +00:00
Michael Bayne 810969f6f9 Pass a message along with a FailureResponse.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4819 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-22 01:15:39 +00:00
Michael Bayne 9a150ebcda Some widening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4818 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-22 01:12:02 +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 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 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 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
Ray Greenwell 860c682585 Implemented transactions in actionscript.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4739 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-18 19:27:13 +00:00
Ray Greenwell e7379cd41a Fixed a bug: the 'old value' of some events were not getting set
because the oldValue variable didn't contain UNSET_OLD_VALUE, but
rather null because it was set that way in the constructor.
Additionally, some of the constructors would only set the old value
if it wasn't null, which is also wrong because an old value can
easily be null.

We could probably just rip apart most of this code, because for
the most part events are not constructed on the client anyway. We might be
able to get away with just making all the event constructors 0 arg, and
then we don't have to worry about UNSET_OLD_VALUE, we just always apply.
But let's try to be more similar to the Java code, and so now I emulate
multiple constructors by checking how many arguments were provided and
not configuring event-specific data if it wasn't actually provided
to the constructor.

Note: none of this would be necessary if we could just declare a constructor:

public function AttributeChangedEvent (
    targetOid :int = 0, name :String = null, value :Object = null,
    oldValue :Object = UNSET_OLD_VALUE);

But you can't use constants as the default value in a parameter list
(commence being boggled) so we have to use null instead of UNSET_OLD_VALUE
as the default value, and then check the 'arguments' special variable to
see if someone passed in null or whether it came from the default value. Aiya.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4726 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-04 22:00:48 +00:00
Dave Hoover f56c2ab370 Let's do keywork substitution on the actionscript; it's got all those purty $Id$ tags, too.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4652 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-07 00:25:28 +00:00
Ray Greenwell c4fac45b9c Created a ServerMessageEvent that is just like a normal MessageEvent
except that messages will never leave the server. If generated on a client,
they'll go to the server and be processed like a normal event there
(event handlers will be called) but the event will not leave the server and
be sent to subscribing clients.

Changed the ManagerCaller used by PlaceObjects to use ServerMessageEvents.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4648 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-06 19:00:41 +00:00
Ray Greenwell 546c44c600 Stop trying to recover from this error (it doesn't work), but try logging
the event target.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4644 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-04 21:40:03 +00:00
Ray Greenwell d389b22cd5 Try ignoring the error...
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4639 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-30 22:03:59 +00:00
Ray Greenwell 77ff647b1a Maybe a stack trace can tell us more about our mysterious error.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4638 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-30 21:34:07 +00:00
Ray Greenwell a74e7493e9 Use Log.dumpStack() where the Java source used Thread.dumpStack().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4633 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-22 06:10:19 +00:00
Nathan Curtis b87abd9c95 oh yeah... ant compile doesn't build the as sources... I wondered how I got this port right with no
errors on my first try. 


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4632 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-22 03:43:36 +00:00
Nathan Curtis 8f5f52ae1b newly ported, untested (but compilable) SafeSubscriber
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4631 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-22 03:27:57 +00:00
Ray Greenwell 31e6bbee01 Automatically unwrap args in a MessageEvent, like we do in other events.
The way this all works is: when you send a primitive to the server, you
must wrap it up yourself, because there's no way for flash to distinguish
between the integer 3 and the floating point value 3.0.
But when it comes from the server, it's all wrapped up in a very specific
type and we can easily unwrap it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4623 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-08 21:01:33 +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 8da83e92cf HashMap -> HashObjectMap
Hashtable -> HashMap

The one regularly used is now called HashMap. It can have keys of simple
flash datatypes, as well as objects that implement Hashable.

HashObjectMap has the ability to use nearly any object as a key, but
pays a price for it and should be avoided unless you need it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4591 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-22 04:06:22 +00:00
Michael Bayne bc21aaa44d Regenerated ActionScript listener marshallers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4571 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 21:51:38 +00:00
Ray Greenwell 69ea4f349f Auto-unwrap invocation response arguments as well.
Make Long not wrapped for now.
Don't svn update until after mdb regenerates everything..


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4569 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 21:49:21 +00:00
Ray Greenwell 1e2295dd09 Use cleaner TypedArray factory method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4566 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 19:29:50 +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 40538c81ad This needs to be a TypedArray and then written out with writeObject() not
writeField(). Fiddly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4561 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-12 03:10:34 +00:00
Michael Bayne cb5fd7ff55 I write two lines in the morning. I write two lines at night.
I write two lines in the afternoon and it makes me feel alright.
I write two lines in times of peace, I write two in times of war.
I write two lines before I write two lines, and then I write two more.

Bringing ActionScript world into line with the Javver.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4556 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 03:28:48 +00:00
Ray Greenwell d1ff63d62d ArrayIterator can be unmodifiable.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4550 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-10 03:35:37 +00:00
Ray Greenwell 334a490d75 Automatically unwrap any Wrapped arguments to any Receiver.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4548 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-10 02:01:43 +00:00
Ray Greenwell 8ab80b10a5 Deflexing presents.
Created a simple MethodQueue utility class that works nearly identically
to UIComponent.callLater().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4537 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-07 00:10:56 +00:00
Ray Greenwell 69529fc624 "get" is a legal function name, so let's be consistent with the Java code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4508 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-23 22:43:54 +00:00
Ray Greenwell e6c38e81c6 - Some deflexing of the low-level narya stuff. More to come, as we're
going to want the minimum client to be flex-free.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4507 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-22 19:58:24 +00:00
Ray Greenwell e15d6d31d1 Found nefarious bug (when it bit me, of course).
If a listener was removed during event dispatch, the size of the list
was shrinking and putting the kibosh on listeners at the end of the list.
(The Java side avoids this due to the different way arrays work.)
- Changed the listener and subscriber lists to simple arrays, and make
  a copy prior to dispatch so that we don't miss anybody!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4467 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-06 02:48:53 +00:00
Ray Greenwell 06046aed9c DSet should be cloneable; ObjectUtil.copy() only works for registered
Externalizables or built-in classes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4464 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-01 02:24:27 +00:00
Ray Greenwell d42a8e9475 Regenerated from updated templates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4454 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-11-15 03:00:05 +00:00
Ray Greenwell 253d8ae90c Actionscript SetAdapter.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4451 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-11-15 02:23:48 +00:00
Ray Greenwell 91b50cd0b8 Took care of some TODOs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4440 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-11-01 03:52:29 +00:00
Ray Greenwell a9d5ca01e2 We don't need the application to be passed-in, it's always
statically accessible.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4436 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-26 01:49:44 +00:00
Ray Greenwell 0a89eedc6c Nixed JavaConstants.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4434 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-24 22:16:57 +00:00
Michael Bayne e99ac5762d Regenerated all of the ActionScript services using the new code generation tool.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4401 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-10-04 20:41:51 +00:00