package com.limegroup.gnutella.connection; import java.io.IOException; import org.limewire.io.NetworkInstanceUtils; import org.limewire.net.SocketsManager; import org.limewire.net.SocketsManager.ConnectType; import com.limegroup.gnutella.Acceptor; import com.limegroup.gnutella.NetworkManager; import com.limegroup.gnutella.messages.BadPacketException; import com.limegroup.gnutella.messages.Message; import com.limegroup.gnutella.messages.MessageFactory; import com.limegroup.gnutella.messages.vendor.CapabilitiesVMFactory; import com.limegroup.gnutella.messages.vendor.MessagesSupportedVendorMessage; public class CountingConnection extends BlockingConnection { public int incomingCount; public int incomingFailed; public int outgoingCount; public int outgoingFailed; public boolean countEnabled; public CountingConnection(String host, int port, ConnectType connectType, CapabilitiesVMFactory capabilitiesVMFactory, SocketsManager socketsManager, Acceptor acceptor, MessagesSupportedVendorMessage supportedVendorMessage, MessageFactory messageFactory, NetworkManager networkManager, NetworkInstanceUtils networkInstanceUtils) { super(host, port, ConnectType.PLAIN, capabilitiesVMFactory, socketsManager, acceptor, supportedVendorMessage, messageFactory, networkManager, networkInstanceUtils); countEnabled = true; } @Override public Message receive() throws IOException, BadPacketException { Message m = null; try { m = super.receive(); } catch (IOException iox) { //System.out.println("IOX"); if(countEnabled) incomingFailed++; throw iox; } catch (BadPacketException bpe) { //System.out.println("BPE"); if(countEnabled) incomingFailed++; throw bpe; } if(countEnabled) incomingCount++; //System.out.println(""+incomingCount+":"+_socket.getLocalPort()+":"+m); return m; } @Override public Message receive(int timeout) throws IOException, BadPacketException { Message m = null; try { m = super.receive(timeout); } catch (IOException iox) { //System.out.println("iox"); if(countEnabled) incomingFailed++; throw iox; } catch (BadPacketException bpe) { //System.out.println("bpe"); if(countEnabled) incomingFailed++; throw bpe; } if(countEnabled) incomingCount++; //System.out.println(""+incomingCount+":"+_socket.getLocalPort()+":"+m); return m; } @Override public void send(Message m) throws IOException { super.send(m); if(countEnabled) outgoingCount++; //System.out.println(""+outgoingCount+": "+m); } }