package com.limegroup.gnutella;
import org.limewire.core.settings.ApplicationSettings;
import org.limewire.io.GUID;
import org.limewire.util.StringUtils;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.limegroup.gnutella.util.LimeWireUtils;
@Singleton
public class ApplicationServicesImpl implements ApplicationServices {
private final byte[] bittorrentGUID;
private final byte[] limewireGUID;
@Inject
ApplicationServicesImpl() {
byte [] myguid=null;
try {
myguid = GUID.fromHexString(ApplicationSettings.CLIENT_ID.get());
}catch(IllegalArgumentException iae) {
myguid = GUID.makeGuid();
ApplicationSettings.CLIENT_ID.set((new GUID(myguid)).toHexString());
}
limewireGUID = myguid;
byte []mybtguid = new byte[20];
mybtguid[0] = 0x2D; // -
mybtguid[1] = 0x4C; // L
mybtguid[2] = 0x57; // W
System.arraycopy(StringUtils.toAsciiBytes(LimeWireUtils.BT_REVISION),0, mybtguid,3, 4);
mybtguid[7] = 0x2D; // -
System.arraycopy(limewireGUID,0,mybtguid,8,12);
bittorrentGUID = mybtguid;
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.ApplicationServices#getMyBTGUID()
*/
public byte [] getMyBTGUID() {
return bittorrentGUID;
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.ApplicationServices#getMyGUID()
*/
public byte [] getMyGUID() {
return limewireGUID;
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.ApplicationServices#setFullPower(boolean)
*/
public void setFullPower(boolean newValue) {
// does nothing right now.
// FIXME implement throttle switching for uploads and downloads
}
}