📄 rendezvousconnectionmetric.java
字号:
/* * Copyright (c) 2001 Sun Microsystem, Inc. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Sun Microsystem, Inc. for Project JXTA." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Sun", "Sun Microsystem, Inc.", "JXTA" and "Project JXTA" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact Project JXTA at http:/www.jxta.org. * * 5. Products derived from this software may not be called "JXTA", * nor may "JXTA" appear in their name, without prior written * permission of Sun. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEM OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of Project JXTA. For more * information on Project JXTA, please see * <http:/www.jxta.org/>. * * This license is based on the BSD license adopted by the Apache Foundation. * * $Id: RendezvousConnectionMetric.java,v 1.10 2006/01/05 21:48:38 bondolo Exp $ */package net.jxta.impl.rendezvous.rendezvousMeter;import net.jxta.rendezvous.*;import net.jxta.util.documentSerializable.*;import net.jxta.document.*;import net.jxta.peer.*;import net.jxta.endpoint.*;import net.jxta.util.*;import net.jxta.exception.*;import net.jxta.impl.meter.*;import java.util.*;/** * The metrics about a client peer's connection to a rendezvous **/public class RendezvousConnectionMetric implements DocumentSerializable { public static final String CONNECTING = "connecting"; public static final String CONNECTED = "connected"; public static final String DISCONNECTED = "disconnected"; public static final String REFUSED = "refused"; private PeerID peerID; private String state = null; private long transitionTime; private long lease; private int numConnectionsBegun = 0; private int numConnectionsEstablished = 0; private int numConnectionsRefused = 0; private long totalTimesToConnect; private long totalTimeConnected; private long lastLeaseRenewalTime; private int numLeaseRenewals; private int numDisconnects; public RendezvousConnectionMetric() {} public RendezvousConnectionMetric(PeerID peerID) { this.peerID = peerID; this.state = DISCONNECTED; } public RendezvousConnectionMetric(RendezvousConnectionMetric prototype) { this.peerID = prototype.peerID; this.state = prototype.state; this.transitionTime = prototype.transitionTime; this.lastLeaseRenewalTime = prototype.lastLeaseRenewalTime; this.lease = prototype.lease; } /** Peer ID of Rendezvous **/ public PeerID getPeerID() { return peerID; } /** * State of Client Rendezvous * @return RendezvousConnectionMetric.CONNECTING, RendezvousConnectionMetric.CONNECTED, RendezvousConnectionMetric.DISCONNECTED or RendezvousConnectionMetric.REFUSED **/ public String getState() { return state; } /** Get the time that it entered the current state * @return transition time in ms since January 1, 1970, 00:00:00 GMT **/ public long getTransitionTime() { return transitionTime; } /** Is connecting to Rendezvous **/ public boolean isConnecting() { return (state != null) && state.equals(CONNECTING); } /** Get time began connecting to Rendezvous * @return time began or 0 if not connecting **/ public long getBeginConnectionTime() { return isConnecting() ? transitionTime : 0; } /** Is connected to Rendezvous **/ public boolean isConnected() { return (state != null) && state.equals(CONNECTED); } /** Get time connected to Rendezvous * @return time began or 0 if not connected **/ public long getTimeConnectionEstablished() { return isConnected() ? transitionTime : 0; } /** Get lease establised with Rendezvous **/ public long getLease() { return lease; } /** Get Number of Connections begun with Rendezvous **/ public int getNumConnectionsBegun() { return numConnectionsBegun; } /** Get Number of Connections established with Rendezvous **/ public int getNumConnectionsEstablished() { return numConnectionsEstablished; } /** Get Number of Connections refused by Rendezvous **/ public int getNumConnectionsRefused() { return numConnectionsRefused; } /** Get Sum of times it took to connect **/ public long getTotalTimesToConnect() { return totalTimesToConnect; } /** Get Last Lease Renewal Time **/ public long getLastLeaseRenewalTime() { return lastLeaseRenewalTime; } /** Get Number of lease Renewals **/ public int getNumLeaseRenewals() { return numLeaseRenewals; } /** Get Number of Disconnects **/ public int getNumDisconnects() { return numDisconnects; } /** Get time disconnected to Rendezvous * @return time began or 0 if not disconnected **/ public long getDisconnectTime() { return isDisconnected() ? transitionTime : 0; } /** Have we disconnected fromthis Rendezvous **/ public boolean isDisconnected() { return (state != null) && (state.equals(DISCONNECTED) || state.equals(REFUSED)); } /** Get the total time this peer has been connected. * <BR><BR> * <B>Note:</B> This does not include the current time connected (if it is currently connected) * @see #getTotalTimeConnected(long)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -