Commit Graph

86 Commits

Author SHA1 Message Date
Michael Bayne 5379787dc5 Made postEvent() public so that external entities can add events (like
message events) to a transaction already started on a particular object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1233 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-12 00:00:05 +00:00
Michael Bayne 4afaa186eb Track some repackaging in the Jakarta libs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1168 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-01 16:49:26 +00:00
Michael Bayne 8abacf6b0c Added zero argument constructor (for unserialization); fixed a bug in
serialization code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1146 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-21 01:58:10 +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 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 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 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 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 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
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
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 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 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 5d2f302218 Created RootDObjectManager interface for those entities that want to look
up objects directly by oid. They, of course, must be on the server if they
are doing this.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@728 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-04 01:01:54 +00:00
Michael Bayne cc21ad8679 Javadoc fixes and cleanups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@623 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-18 04:27:56 +00:00
Michael Bayne 57b2e93ac3 Modified DObjectManager.createObject() to not afford optional subscription
because subscription no longer means receiving events.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@537 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-24 00:36:40 +00:00
Michael Bayne 15ff048a27 Created mechanism for listeners to hear about object death.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@535 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-23 23:56:12 +00:00
Michael Bayne afc7b6cfbb Turned ObjectStreamException into a nested exception so that we can
provide information on what exception caused the object serialization or
unserialization to freak out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@464 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-16 16:44:20 +00:00
Michael Bayne dec8be5d57 Added size(), fixed two bugs in internal array expansion: one was that it
was doubling the size of the internal array every time add() was called,
whether it needed to or not, the other was that unserializing an empty set
caused expand() to be called with -1 as the index from which mayhem would
ensue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@463 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-16 16:43:20 +00:00
Michael Bayne 0ab1638611 When setting aggregate values (arrays, DSet objects), we need to clone
them before setting their value in the distributed object to prevent
subsequent events from modifying those aggregate values before the
originals were propagated to the clients by the networking thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@458 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 20:12:48 +00:00
Michael Bayne 0b44521984 Implement clone().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@456 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 20:11:00 +00:00
Michael Bayne 8521994204 DSet needs to implement Streamable so that we can pass it around as a
distributed value.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@442 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:29:34 +00:00
Michael Bayne 2ffe47e282 Do the right thing with a null _listeners array.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@441 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:29:06 +00:00
Michael Bayne 5ae6875bbb Added a note about listener registration management.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@440 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:05:31 +00:00
Michael Bayne 804505890f We love to revamp! Created a set of listener interfaces which are used
with distributed objects rather than having a single handleEvent() by
which all subscribers are forced to hear about all events. Now one
subscribes separately and then adds onesself as any of a few types of
listener once they have access to the subscribed object reference.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:03:03 +00:00
Michael Bayne 8a4c46badc The first great Three Rings renaming. Cocktail changed to Narya, Cher
changed to Presents and Party changed to Crowd. Whee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@431 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-11 04:07:54 +00:00
Michael Bayne 6620936a04 We've always been at war with Eurasia. Changed InvocationManager to
InvocationDirector (please god let the renaming be done). Removed IntMap
and modified code to use samskivert's HashIntMap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@375 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-02 02:08:16 +00:00
Michael Bayne c8e6606056 Need to reset our byte array output stream when we're done with it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@298 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 21:16:53 +00:00
Michael Bayne 70eb9480d8 Made element iteration work properly.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@291 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 19:35:56 +00:00
Michael Bayne a065652ac6 Unbooched subscriber array handling.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@290 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 19:35:02 +00:00
Michael Bayne 9ce3d894bd readExternal() should have been called readFrom().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@289 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 19:33:38 +00:00
Michael Bayne dac504c7bb Provide support for iterating over a DSet.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@283 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 00:58:26 +00:00
Michael Bayne b7b78e9f79 Wired up marshalling for DSet objects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@277 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-20 21:44:10 +00:00
Michael Bayne eac3e9aa94 Edits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@268 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 04:22:50 +00:00
Michael Bayne 890bad996e Added ability to update elements in a set.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@266 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 03:45:43 +00:00
Michael Bayne 2179599bd6 Edits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@265 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 03:33:11 +00:00
Michael Bayne 55c4847a17 Added support for distributed sets: unordered collections of elements
where the elements are user defined objects that know how to read and
write themselves on a stream. Sets are required to contain elements all of
the same type to make network traffic more efficient (avoid sending the
classname every time an element is added or removed).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@264 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 03:31:09 +00:00
Michael Bayne 3c413b9f3d Added documentation; modified internal array management to use ListUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@258 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 18:38:54 +00:00
Michael Bayne 8a67066c57 Do the right thing if subscribers remove themselves after we've been
destroyed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@217 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-11 00:11:53 +00:00
Michael Bayne a44e552eb8 Modified invocation services such that providers are responsible for
delivering their own responses. They now have all the information
necessary to do so which means that they can delay the delivery of a
response until some other asynchronous event has taken place (like a
database load completing). Prior to this, they were required to complete
their service immediately and return the response back to the invocation
manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@216 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-11 00:05:58 +00:00
Michael Bayne 6fe9ad8a6e Finished wiring up oid list tracking; made shutdown() work on the cher
server; added an easy mechanism to write test modules and invoke them on
the server.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@192 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-08 00:28:49 +00:00