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
This commit is contained in:
Michael Bayne
2002-02-04 00:50:12 +00:00
parent 9b17dafd03
commit 25717d3cce
5 changed files with 113 additions and 54 deletions
@@ -1,5 +1,5 @@
//
// $Id: DObject.java,v 1.33 2002/02/03 04:38:05 mdb Exp $
// $Id: DObject.java,v 1.34 2002/02/04 00:50:11 mdb Exp $
package com.threerings.presents.dobj;
@@ -501,10 +501,18 @@ public class DObject
*/
protected void requestElementAdd (String name, DSet.Element elem)
{
// generate an element added event
DEvent event = new ElementAddedEvent(_oid, name, elem);
// and dispatch it to our dobjmgr
_mgr.postEvent(event);
try {
DSet set = (DSet)getAttribute(name);
// generate an element added event
DEvent event = new ElementAddedEvent(
_oid, name, elem, !set.homogenous());
// and dispatch it to our dobjmgr
_mgr.postEvent(event);
} catch (ObjectAccessException oae) {
Log.warning("Unable to request elementAdd [name=" + name +
", elem=" + elem + ", error=" + oae + "].");
}
}
/**
@@ -523,10 +531,18 @@ public class DObject
*/
protected void requestElementUpdate (String name, DSet.Element elem)
{
// generate an element updated event
DEvent event = new ElementUpdatedEvent(_oid, name, elem);
// and dispatch it to our dobjmgr
_mgr.postEvent(event);
try {
DSet set = (DSet)getAttribute(name);
// generate an element updated event
DEvent event = new ElementUpdatedEvent(
_oid, name, elem, !set.homogenous());
// and dispatch it to our dobjmgr
_mgr.postEvent(event);
} catch (ObjectAccessException oae) {
Log.warning("Unable to request elementAdd [name=" + name +
", elem=" + elem + ", error=" + oae + "].");
}
}
/** Our object id. */