package, use those. The ResourceBundle stuff is not quite working now due
to bugs in beta3, but I'll loop back to it later.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4126 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Track the size of non-simple keys separately so that we really know when
to resize the map.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4121 542714f4-19e9-0310-aa3c-eee0fc999fb1
- Renamed HashMap Hashtable, because I wanted a version without ties to
mx.* code. User-defined hashing functions may be specified.
- Created a subclass of Hashtable called HashMap which uses
functions in mx.utils.ObjectUtil to hash non-Hashable complex keys.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4120 542714f4-19e9-0310-aa3c-eee0fc999fb1
Internally, three different things may be done for storage:
- Simple keys can utilize the Dictionary class, we just use one of those
inside the map.
- If the key implements Hashable, we can hash it.
- Otherwise, use mx.utils.ObjectUtil to generate a hash for any other key and
also to compare the keys. Keys are then wrapped in a KeyWrapper object
that implements Hashable. This last case will also handle null as a key.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4117 542714f4-19e9-0310-aa3c-eee0fc999fb1
of the output.
Update code to recognize the new format and stop working around the old bugs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4108 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
"Still purple and bruised, sir!"
I'm working around more bugs. In theory everything should log in and join
the chat room, but the browser crashes- every single time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3986 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
- started making chat UI stuff
- upgraded SimpleMap some to use the new Dictionary class
- Lots of experimenting with attaching functions to interface implementations.
I've upgraded to the new beta of Flex and it's giving me the pain. There's
new compiler bugs and I am working blind right now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3966 542714f4-19e9-0310-aa3c-eee0fc999fb1
- There seems to be a compiler bug that causes classes to be
imported spuriously, or something. Classes that import only one of the Log
classes are complaining about visibility of more than one of them.
- static constants are not inherited by subclasses, which is super annoying.
I will try switching to prototype consts, but there seems to be a problem
initializing those, and we don't want to make them vars...
- The fact that there are no inner classes combined with no method overloading
is making things very inconvenient. I've been experimenting with faking
an anonymous class by instantiating a dynamic object and attaching
functions to it, but it's not working. I'll continue experimenting, because
if we can't do this then someone shoot me.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3957 542714f4-19e9-0310-aa3c-eee0fc999fb1
Made ObserverList work with a passed-in function, actionscript style.
I might reconsider some earlier decisions to go away from ObserverList.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3952 542714f4-19e9-0310-aa3c-eee0fc999fb1
Created adapters for invocation services so that I can do inner-class like
things by passing references to private functions out to an external entity.
I will see if it's possible to merge my adapter with the marshallers
because it's still to have multiple wrappy classes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3944 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
- There is no such thing as Comparable in ActionScript, I had made my own,
but String (one of the most common keys) couldn't implement it, and String
is a final class (like in Java). It would be a huge inconvenience to have
to wrap String objects.
- The language also has no .equals() method in the base class. The strict
equality operator (===) works like equals() except that objects that
aren't one of the base types (String, Number, Boolean, int) are compared
by reference. I added a "Equalable" interface, if the key in a DSet
implements that interface then equals() is called, otherwise the strict
equality operator is used.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3897 542714f4-19e9-0310-aa3c-eee0fc999fb1
new wacky things (and possible compiler bugs) on the way.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3888 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
basic streamers defined for them (String, Integer, Boolean) and not
other arbitrary objects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3863 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
There's a long way to go and I think I need to rethink the way streaming
will work, but this is a start. These classes all compile under
the flex environment.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3842 542714f4-19e9-0310-aa3c-eee0fc999fb1