package com.limegroup.gnutella; /** * Simple serializable wrapper for Endpoint. */ public class EndpointData extends Endpoint implements Cloneable, java.io.Serializable { private long speed = 56; private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { in.defaultReadObject(); if(getAddress() == null) setHostname(""); } /** * serial version */ private static final long serialVersionUID = 5045818571228406227L; // for deserializing. private EndpointData() { } /** * Creates a new EndpointData instance from another endpoint * @param endpoint from where to copy the fields */ public EndpointData(Endpoint endpoint) { //initialize the fields in the super class super(endpoint); } /** * Creates a new EndpointData instance * @param hostname Hostname of the node this endpoint refers to * @param port The port number for the host */ public EndpointData(String hostname, int port) { //initialize the fields in the super class super(hostname,port); } /** * Creates a new EndpointData instance * @param hostBytes IP address of the host (MSB first) * @param port The port number for the host */ public EndpointData(byte[] hostBytes, int port) { //initialize the fields in the super class super(hostBytes,port); } /** * Creates a new EndpointData instance * @param hostBytes IP address of the host (MSB first) * @param port The port number for the host * @param speed Spped in kbps of the host */ public EndpointData(byte[] hostBytes, int port, long speed) { //initialize the fields in the super class super(hostBytes,port); this.speed = speed; } /** * Creates a new EndpointData instance * @param hostBytes IP address of the host (MSB first) * @param port The port number for the host * @param files the number of files the host has * @param kbytes the size of all of the files, in kilobytes */ public EndpointData(byte[] hostBytes, int port, long files, long kbytes) { //initialize the fields in the super class super(hostBytes, port, files, kbytes); } /** * Creates a new EndpointData instance * @param endpoint from where to copy the fields for the super class * @param speed Speed of the host * @param clientGUID Unique GUID for the host */ public EndpointData(Endpoint endpoint, long speed) { //initialize the fields in the super class super(endpoint); //set the speed and client GUID this.setSpeed(speed); } /** * returns the speed of the host */ public long getSpeed() { return speed; } /** * Sets the speed and clientGUID for the host this endpoint refers to * @param speed Speed of the host */ public void setSpeed(long speed) { //set the fields this.speed = speed; } }