diff --git a/src/java/com/threerings/presents/peer/data/NodeObject.java b/src/java/com/threerings/presents/peer/data/NodeObject.java index 51e1bce5b..60c29e566 100644 --- a/src/java/com/threerings/presents/peer/data/NodeObject.java +++ b/src/java/com/threerings/presents/peer/data/NodeObject.java @@ -38,6 +38,9 @@ public class NodeObject extends DObject /** The field name of the nodeName field. */ public static final String NODE_NAME = "nodeName"; + /** The field name of the bootStamp field. */ + public static final String BOOT_STAMP = "bootStamp"; + /** The field name of the peerService field. */ public static final String PEER_SERVICE = "peerService"; @@ -130,6 +133,9 @@ public class NodeObject extends DObject /** The node name of this peer. */ public String nodeName; + /** The time that this node's JVM started up. */ + public long bootStamp; + /** The service used to make requests of the node. */ public PeerMarshaller peerService; @@ -165,6 +171,22 @@ public class NodeObject extends DObject this.nodeName = value; } + /** + * Requests that the bootStamp field be set to the + * specified value. The local value will be updated immediately and an + * event will be propagated through the system to notify all listeners + * that the attribute did change. Proxied copies of this object (on + * clients) will apply the value change when they received the + * attribute changed notification. + */ + public void setBootStamp (long value) + { + long ovalue = this.bootStamp; + requestAttributeChange( + BOOT_STAMP, Long.valueOf(value), Long.valueOf(ovalue)); + this.bootStamp = value; + } + /** * Requests that the peerService field be set to the * specified value. The local value will be updated immediately and an diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index 5fd4d9fab..2b3be9411 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -249,6 +249,7 @@ public abstract class PeerManager // create our node object _nodeobj = _omgr.registerObject(createNodeObject()); _nodeobj.setNodeName(nodeName); + _nodeobj.setBootStamp(System.currentTimeMillis()); // register ourselves with the node table _self = new NodeRecord(