diff --git a/src/java/com/threerings/presents/dobj/DEvent.java b/src/java/com/threerings/presents/dobj/DEvent.java index ef6fe83e2..7c83edb82 100644 --- a/src/java/com/threerings/presents/dobj/DEvent.java +++ b/src/java/com/threerings/presents/dobj/DEvent.java @@ -1,5 +1,5 @@ // -// $Id: DEvent.java,v 1.13 2003/04/30 22:32:04 mdb Exp $ +// $Id: DEvent.java,v 1.14 2003/07/22 22:54:14 mdb Exp $ package com.threerings.presents.dobj; @@ -37,6 +37,17 @@ public abstract class DEvent implements Streamable return _toid; } + /** + * Some events are used only internally on the server and need not be + * broadcast to subscribers, proxy or otherwise. Such events can + * return true here and short-circuit the normal proxy event dispatch + * mechanism. + */ + public boolean isPrivate () + { + return false; + } + /** * Applies the attribute modifications represented by this event to * the specified target object. This is called by the distributed diff --git a/src/java/com/threerings/presents/dobj/DObject.java b/src/java/com/threerings/presents/dobj/DObject.java index 8ca776ed6..a36b0a230 100644 --- a/src/java/com/threerings/presents/dobj/DObject.java +++ b/src/java/com/threerings/presents/dobj/DObject.java @@ -1,5 +1,5 @@ // -// $Id: DObject.java,v 1.65 2003/07/20 17:02:26 mdb Exp $ +// $Id: DObject.java,v 1.66 2003/07/22 22:54:14 mdb Exp $ package com.threerings.presents.dobj; @@ -402,7 +402,7 @@ public class DObject implements Streamable */ public void notifyProxies (DEvent event) { - if (_subs == null) { + if (_subs == null || event.isPrivate()) { return; } diff --git a/src/java/com/threerings/presents/dobj/ReleaseLockEvent.java b/src/java/com/threerings/presents/dobj/ReleaseLockEvent.java index cb4a4701b..e59e5deff 100644 --- a/src/java/com/threerings/presents/dobj/ReleaseLockEvent.java +++ b/src/java/com/threerings/presents/dobj/ReleaseLockEvent.java @@ -1,5 +1,5 @@ // -// $Id: ReleaseLockEvent.java,v 1.7 2002/12/20 23:29:04 mdb Exp $ +// $Id: ReleaseLockEvent.java,v 1.8 2003/07/22 22:54:14 mdb Exp $ package com.threerings.presents.dobj; @@ -36,6 +36,13 @@ public class ReleaseLockEvent extends NamedEvent { } + // documentation inherited + public boolean isPrivate () + { + // we need only run on the server; no need to propagate to proxies + return true; + } + /** * Applies this lock release to the object. */