package com.limegroup.gnutella.messages;
import org.limewire.util.ByteUtils;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.limegroup.gnutella.ConnectionManager;
import com.limegroup.gnutella.library.FileView;
import com.limegroup.gnutella.library.GnutellaFiles;
@Singleton
public class LocalPongInfoImpl implements LocalPongInfo {
private final Provider<ConnectionManager> connectionManager;
private final FileView gnutellaFileView;
@Inject
public LocalPongInfoImpl(Provider<ConnectionManager> connectionManager,
@GnutellaFiles FileView gnutellaFileView) {
this.connectionManager = connectionManager;
this.gnutellaFileView = gnutellaFileView;
}
/**
* @return the number of free non-leaf slots available for limewires.
*/
public byte getNumFreeLimeWireNonLeafSlots() {
return (byte)connectionManager.get().getNumFreeLimeWireNonLeafSlots();
}
/**
* @return the number of free leaf slots available for limewires.
*/
public byte getNumFreeLimeWireLeafSlots() {
return (byte)connectionManager.get().getNumFreeLimeWireLeafSlots();
}
public long getNumSharedFiles() {
return gnutellaFileView.size();
}
public int getSharedFileSize() {
return ByteUtils.long2int(gnutellaFileView.getNumBytes());
}
public boolean isSupernode() {
return connectionManager.get().isSupernode();
}
}