📄 rendezvousmetric.java
字号:
/** The number of peers that outbound messages were walked to **/ public int getNumPeersWalkedTo() { return numPeersWalkedTo; } /** Get the duration of current transition to an edge * <BR><BR> * <B>Note:</B> This assumes the clocks are in sync with the reporting peer * @see #getTimeAsEdge(long) * @return time in ms (see note above) or 0 if not edge **/ public long getTimeAsEdge() { return getTimeAsEdge(System.currentTimeMillis()); } /** Get the duration of time became an edge until the specified time * @param adjustmentTime The time of this metric will be computed until * @see #getTimeAsEdge() * @return time in ms (see note above) or 0 if not connected **/ public long getTimeAsEdge(long adjustmentTime) { if (isEdge()) { return (adjustmentTime - this.transitionTime); } else { return 0; } } /** Get the duration of current transition to a rendezvous * <BR><BR> * <B>Note:</B> This assumes the clocks are in sync with the reporting peer * @see #getTimeAsRendezvous(long) * @return time in ms (see note above) or 0 if not edge **/ public long getTimeAsRendezvous() { return getTimeAsRendezvous(System.currentTimeMillis()); } /** Get the duration of time became an rendezvous until the specified time * @param adjustmentTime The time of this metric will be computed until * @see #getTimeAsRendezvous() * @return time in ms (see note above) or 0 if not connected **/ public long getTimeAsRendezvous(long adjustmentTime) { if (isRendezvous()) { return (adjustmentTime - this.transitionTime); } else { return 0; } } void startEdge(long transitionTime) { this.transitionTime = transitionTime; this.state = EDGE; this.numEdgeTransitions++; } void stopEdge(long transitionTime, long timeAsEdge) { this.state = STOPPED; this.transitionTime = transitionTime; this.totalEdgeTime += timeAsEdge; } void startRendezvous(long transitionTime) { this.state = RENDEZVOUS; this.transitionTime = transitionTime; this.numRendezvousTransitions++; } void stopRendezvous(long transitionTime, long timeAsRendezvous) { this.state = STOPPED; this.transitionTime = transitionTime; this.totalRendezvousTime += timeAsRendezvous; } void invalidMessageReceived() { numReceivedInvalid++; } void receivedMessageProcessedLocally() { numReceivedProcessedLocally++; } void receivedMessageRepropagatedInGroup() { numReceivedRepropagatedInGroup++; } void receivedDeadMessage() { numReceivedDead++; } void receivedLoopbackMessage() { numReceivedLoopback++; } void receivedDuplicateMessage() { numReceivedDuplicate++; } void propagateToPeers(int numPeers) { numPropagatedToPeers++; numPeersPropagatedTo += numPeers; } void propagateToNeighbors() { numPropagatedToNeighbors++; } void propagateToNeighborsFailed() { numFailedPropagatingToNeighbors++; } void propagateToGroup() { numPropagatedInGroup++; } void walk() { numWalks++; } void walkFailed() { numFailedWalks++; } void walkToPeers(int numPeers) { numWalkedToPeers++; numPeersWalkedTo += numPeers; } void walkToPeersFailed() { numFailedWalkToPeers++; } public void mergeMetrics(RendezvousMetric otherRendezvousMetric) { if (otherRendezvousMetric == null) { return; } if (otherRendezvousMetric.state != null) { state = otherRendezvousMetric.state; } if (otherRendezvousMetric.transitionTime != 0) { transitionTime = otherRendezvousMetric.transitionTime; } this.totalEdgeTime += otherRendezvousMetric.totalEdgeTime; this.numEdgeTransitions += otherRendezvousMetric.numEdgeTransitions; this.totalRendezvousTime += otherRendezvousMetric.totalRendezvousTime; this.numRendezvousTransitions += otherRendezvousMetric.numRendezvousTransitions; this.numReceivedProcessedLocally += otherRendezvousMetric.numReceivedProcessedLocally; this.numReceivedRepropagatedInGroup += otherRendezvousMetric.numReceivedRepropagatedInGroup; this.numReceivedInvalid += otherRendezvousMetric.numReceivedInvalid; this.numReceivedDead += otherRendezvousMetric.numReceivedDead; this.numReceivedLoopback += otherRendezvousMetric.numReceivedLoopback; this.numReceivedDuplicate += otherRendezvousMetric.numReceivedDuplicate; this.numPropagated += otherRendezvousMetric.numPropagated; this.numFailedPropagating += otherRendezvousMetric.numFailedPropagating; this.numRepropagated += otherRendezvousMetric.numRepropagated; this.numFailedRepropagating += otherRendezvousMetric.numFailedRepropagating; this.numPropagatedToPeers += otherRendezvousMetric.numPropagatedToPeers; this.numFailedPropagatingToPeers += otherRendezvousMetric.numFailedPropagatingToPeers; this.numPeersPropagatedTo += otherRendezvousMetric.numPeersPropagatedTo; this.numPropagatedInGroup += otherRendezvousMetric.numPropagatedInGroup; this.numPropagatedToNeighbors += otherRendezvousMetric.numPropagatedToNeighbors; this.numFailedPropagatingToNeighbors += otherRendezvousMetric.numFailedPropagatingToNeighbors; this.numWalks += otherRendezvousMetric.numWalks; this.numFailedWalks += otherRendezvousMetric.numFailedWalks; this.numWalkedToPeers += otherRendezvousMetric.numWalkedToPeers; this.numFailedWalkToPeers += otherRendezvousMetric.numFailedWalkToPeers; this.numPeersWalkedTo += otherRendezvousMetric.numPeersWalkedTo; } public void serializeTo(Element element) throws DocumentSerializationException { if (state != null) { DocumentSerializableUtilities.addString(element, "state", state); } if (transitionTime != 0) { DocumentSerializableUtilities.addLong(element, "transitionTime", transitionTime); } if (totalEdgeTime != 0) { DocumentSerializableUtilities.addLong(element, "totalEdgeTime", totalEdgeTime); } if (numEdgeTransitions != 0) { DocumentSerializableUtilities.addInt(element, "numEdgeTransitions", numEdgeTransitions); } if (totalRendezvousTime != 0) { DocumentSerializableUtilities.addLong(element, "totalRendezvousTime", totalRendezvousTime); } if (numRendezvousTransitions != 0) { DocumentSerializableUtilities.addLong(element, "numRendezvousTransitions", numRendezvousTransitions); } if (numReceivedProcessedLocally != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedProcessedLocally", numReceivedProcessedLocally); } if (numReceivedRepropagatedInGroup != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedRepropagatedInGroup", numReceivedRepropagatedInGroup); } if (numReceivedInvalid != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedInvalid", numReceivedInvalid); } if (numReceivedDead != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedDead", numReceivedDead); } if (numReceivedLoopback != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedLoopback", numReceivedLoopback); } if (numReceivedDuplicate != 0) { DocumentSerializableUtilities.addInt(element, "numReceivedDuplicate", numReceivedDuplicate); } if (numPropagated != 0) { DocumentSerializableUtilities.addInt(element, "numPropagated", numPropagated); } if (numFailedPropagating != 0) { DocumentSerializableUtilities.addInt(element, "numFailedPropagating", numFailedPropagating); } if (numRepropagated != 0) { DocumentSerializableUtilities.addInt(element, "numRepropagated", numRepropagated); } if (numFailedRepropagating != 0) { DocumentSerializableUtilities.addInt(element, "numFailedRepropagating", numFailedRepropagating); } if (numPropagatedToPeers != 0) { DocumentSerializableUtilities.addInt(element, "numPropagatedToPeers", numPropagatedToPeers); } if (numFailedPropagatingToPeers != 0) { DocumentSerializableUtilities.addInt(element, "numFailedPropagatingToPeers", numFailedPropagatingToPeers); } if (numPeersPropagatedTo != 0) { DocumentSerializableUtilities.addInt(element, "numPeersPropagatedTo", numPeersPropagatedTo); } if (numPropagatedInGroup != 0) { DocumentSerializableUtilities.addInt(element, "numPropagatedInGroup", numPropagatedInGroup); } if (numPropagatedToNeighbors != 0) { DocumentSerializableUtilities.addInt(element, "numPropagatedToNeighbors", numPropagatedToNeighbors); } if (numFailedPropagatingToNeighbors != 0) { DocumentSerializableUtilities.addInt(element, "numFailedPropagatingToNeighbors", numFailedPropagatingToNeighbors); } if (numWalks != 0) { DocumentSerializableUtilities.addInt(element, "numWalks", numWalks); } if (numFailedWalks != 0) { DocumentSerializableUtilities.addInt(element, "numFailedWalks", numFailedWalks); } if (numWalkedToPeers != 0) { DocumentSerializableUtilities.addInt(element, "numWalkedToPeers", numWalkedToPeers); } if (numFailedWalkToPeers != 0) { DocumentSerializableUtilities.addInt(element, "numFailedWalkToPeers", numFailedWalkToPeers); } if (numPeersWalkedTo != 0) { DocumentSerializableUtilities.addInt(element, "numPeersWalkedTo", numPeersWalkedTo); } } public void initializeFrom(Element element) throws DocumentSerializationException { for (Enumeration e = element.getChildren(); e.hasMoreElements();) { Element childElement = (TextElement) e.nextElement(); String tagName = (String) childElement.getKey(); if (tagName.equals("state")) { state = DocumentSerializableUtilities.getString(childElement); } else if (tagName.equals("transitionTime")) { transitionTime = DocumentSerializableUtilities.getLong(childElement); } else if (tagName.equals("totalEdgeTime")) { totalEdgeTime = DocumentSerializableUtilities.getLong(childElement); } else if (tagName.equals("numEdgeTransitions")) { numEdgeTransitions = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("totalRendezvousTime")) { totalRendezvousTime = DocumentSerializableUtilities.getLong(childElement); } else if (tagName.equals("numRendezvousTransitions")) { numRendezvousTransitions = DocumentSerializableUtilities.getLong(childElement); } else if (tagName.equals("numReceivedProcessedLocally")) { numReceivedProcessedLocally = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numReceivedRepropagatedInGroup")) { numReceivedRepropagatedInGroup = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numReceivedInvalid")) { numReceivedInvalid = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numReceivedDead")) { numReceivedDead = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numReceivedLoopback")) { numReceivedLoopback = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numReceivedDuplicate")) { numReceivedDuplicate = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPropagated")) { numPropagated = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedPropagating")) { numFailedPropagating = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numRepropagated")) { numRepropagated = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedRepropagating")) { numFailedRepropagating = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPropagatedToPeers")) { numPropagatedToPeers = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedPropagatingToPeers")) { numFailedPropagatingToPeers = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPeersPropagatedTo")) { numPeersPropagatedTo = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPropagatedInGroup")) { numPropagatedInGroup = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPropagatedToNeighbors")) { numPropagatedToNeighbors = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedPropagatingToNeighbors")) { numFailedPropagatingToNeighbors = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numWalks")) { numWalks = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedWalks")) { numFailedWalks = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numWalkedToPeers")) { numWalkedToPeers = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numFailedWalkToPeers")) { numFailedWalkToPeers = DocumentSerializableUtilities.getInt(childElement); } else if (tagName.equals("numPeersWalkedTo")) { numPeersWalkedTo = DocumentSerializableUtilities.getInt(childElement); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -