Commit Graph

213 Commits

Author SHA1 Message Date
Michael Bayne 9cdfcd81f9 Now uses StreamableUtil to marshal and unmarshal streamable arrays (which
means that arrays of heterogenous types are now supported).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1141 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 23:00:11 +00:00
Michael Bayne 1bf6e6093d Added support for streaming arrays of streamables; extracted the efficient
streamable serialization code from PolyStreamableList and made it
generally available; modified the StreamableArrayList to support
heterogenous lists (because they don't have much more overhead than
homogenous lists now) which allows us to remove PolyStreamableList
entirely.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1140 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 22:58:26 +00:00
Michael Bayne 357a8e5949 Documentation cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1139 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 19:07:15 +00:00
Michael Bayne 6b564ae503 sourceOid needs to default to -1.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1138 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 19:06:55 +00:00
Michael Bayne 81e8158e90 Compound events need to propagate their source oid to their constituent
events after setting their own source oid.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1137 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 03:29:21 +00:00
Michael Bayne 35df145846 Added the ability to set up a default access controller which is used (by
default) for all objects created in the system.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1136 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 03:23:00 +00:00
Michael Bayne aa195bed83 Added a mechanism for pluggable event access control.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1135 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-20 03:19:51 +00:00
Michael Bayne 59aeb61fe3 Added ability to update individual elements of an array field. The objects
have helper functions named set<field>At() for such a purpose.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1134 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-19 01:10:03 +00:00
Michael Bayne 7ccb9594b9 Changed DSet.Element to DSet.Entry in preparation for the addition of
array element update support. (Arrays have elements, sets have entries.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1133 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-18 23:21:26 +00:00
Michael Bayne 04f83e779e Report the host and port to which we're connecting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1124 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-15 19:11:14 +00:00
Michael Bayne 1d956214dd Added SessionObserver which is a pared down version of ClientObserver that
only reports logon and logoff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1117 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-11 19:51:25 +00:00
Michael Bayne 0bc39b6d3f Need to write out the class name of a streamable field as it may be a
derived class of the declared field type.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1095 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-06 23:45:01 +00:00
Michael Bayne 970410d4e6 Minor fixups to prevent complaints during logoff.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1090 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 06:15:43 +00:00
Michael Bayne 268b0797f6 Removed verbose logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1089 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 06:15:23 +00:00
Michael Bayne 637413a3aa No longer need authinfo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1087 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 05:39:52 +00:00
Michael Bayne 9e16e87a69 Doris the refactorasaurus. Restructured the whole client object resolution
process so that it can be done by other entities than just the client
management services. Coordination between these parties is managed so that
no toes are stepped on in the course of loading and unloading clients and
everything is generally much nicer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1086 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 05:33:25 +00:00
Michael Bayne 38ca708a4f Modified authentication process such that an authenticator thread is no
longer maintained. Implementations can choose to create their own
authentication thread if they wish or use some existing combination of the
invoker and dobjmgr threads. Also added an invoker to the base server
class.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1085 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 03:19:18 +00:00
Michael Bayne 7dc7545541 Pass the dobject manager to the invoker at construct time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1084 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-05 03:17:46 +00:00
Michael Bayne 424f2da631 Only post a compound event if it contains other events when a transaction
is committed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1064 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-21 00:59:29 +00:00
Michael Bayne 6a0ee2f291 Added support for null Streamable fields.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1029 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:30:55 +00:00
Michael Bayne b550063f04 Chain exceptions when we can.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1028 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:30:40 +00:00
Michael Bayne d8921f3c4b Modified the value marshaller to support reading and writing null.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1027 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:05:56 +00:00
Walter Korman 85797eed0d Renamed HeterogenousStreamableList to the only slightly less verbose but
easier to spell PolyStreamableList.  Use ListUtil and String arrays rather
than hashtables to track classname to class id mappings.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@988 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-12 01:54:51 +00:00
Walter Korman 7bb1b0f285 A Streamable list of Streamable objects, for those occasions where the
user has the need to store objects of varying types in a single list
(e.g., different sub-classes of a base class that is itself streamable)
that will itself be sent over the wire.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@987 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-11 22:43:18 +00:00
Michael Bayne bcca494fdd Commented out some debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@986 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-10 04:19:34 +00:00
Michael Bayne a4283fd756 Report the actual error when we can't look up a method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@985 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-10 02:13:31 +00:00
Michael Bayne 284e8ef6ed Made addObserver into addClientObserver because that's how we do it
everywhere else. Same thing for removeObserver.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@981 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-09 20:45:23 +00:00
Michael Bayne 1bca84927f Added support for DObject transactions which are collections of events
that are dispatched over the network at once and processed all at once.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@979 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-09 07:50:37 +00:00
Michael Bayne c57ff60e69 Removed ability to run server in test mode. We don't need a whole server
when were unit testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@977 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-09 07:49:41 +00:00
Michael Bayne 1e36cb65d8 Need to prefix heterogenous set elements with their classname.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@964 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-08 05:14:22 +00:00
Michael Bayne b4d5f7da24 Have to cope with heterogenous sets in toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@963 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-08 04:44:32 +00:00
Michael Bayne 5e303799a2 Added a field marshaller for byte arrays.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-07 05:27:07 +00:00
Walter Korman bc6f66f6cd Added ObjectAction.toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@953 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-07 00:24:36 +00:00
Michael Bayne 670f3a71c3 Fixed javadoc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@947 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-06 22:47:28 +00:00
Michael Bayne 84891c9b91 Whoops, wasn't appending field data to our buffer.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@939 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-05 22:27:26 +00:00
Walter Korman 1cdefe7ae1 Added marshaller for booleans.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@929 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-05 09:35:59 +00:00
Michael Bayne a83e512270 Modified DObject.toString() to use fieldsToString() so that all of its
derived classes need not do their own toString()ing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@928 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-04 01:47:20 +00:00
Michael Bayne 5bb4e3435b Provided a mechanism by which a DSet can be populated at construct time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@927 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-04 01:34:59 +00:00
Michael Bayne c6f72ce556 Log message edit.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@926 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-04 00:51:15 +00:00
Michael Bayne 25717d3cce Modified distributed sets such that they can be heterogenous or
homogenous, and in the latter case, they simply conserve network bandwidth
by not transmitting the classname of serialized elements when transmitting
themselves or element added/updated events.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@925 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-04 00:50:12 +00:00
Walter Korman 5dc68306ac Added a byte field marshaller.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@922 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-03 06:06:10 +00:00
Michael Bayne 404a56dead Per Walter's suggestion: made all of the listener interfaces extend a base
listener interface so that an object that attempts to add itself as a
listener to a distributed object is required to implement at least one of
the listener interfaces.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@921 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-03 04:38:05 +00:00
Michael Bayne d2ee77e08e Use safeToString() when logging the object that caused a subscriber to
choke so that we don't choke if DObject.toString() chokes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@919 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 09:53:00 +00:00
Michael Bayne 9d9872f606 Made ObjectAccessException a nestable exception; modified
objectAvailable() error dispatching to not incorrectly report a failure to
create an object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@918 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 09:42:36 +00:00
Michael Bayne c6d2529e78 It doesn't get much simpler than this: objects that desire to be
streamable and that don't have funky requirements can simply extend
SimpleStreamableObject and magically have their public fields streamed for
them as well as have a useful default implementation of toString(). My
tired fingers are thanking me already.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@917 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 08:48:03 +00:00
Michael Bayne 373436429d Need to create a hash map for our marshaller cache.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@914 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-02 01:07:20 +00:00
Michael Bayne b7913ceb0b Moved generic marshalling code into presents.io from presents.dobj.io as
it is now general purpose.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@912 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-01 23:32:37 +00:00
Michael Bayne ef9e0bc53f Modified field marshalling code to work on any object rather than being
DObject specific (because it didn't need to be).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@911 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-01 23:26:49 +00:00
Michael Bayne d925c5d1b4 Cause transient fields to be ignored in the DObject marshalling process.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@910 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-01 22:35:06 +00:00
Michael Bayne 80c9550a57 Added some debugging, but commented it out.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@895 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-30 18:30:43 +00:00