View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  package org.xnap.plugin.overnet.net.msg.core;
21  
22  import java.nio.ByteBuffer;
23  
24  import org.apache.log4j.Logger;
25  import org.xnap.plugin.overnet.OvernetPlugin;
26  import org.xnap.plugin.overnet.util.OvernetPreferences;
27  
28  public class DownloadStatusMessage extends OvernetCoreMessage 
29  {
30  	public static final byte TYPE = (byte)197;
31  	
32  	float totalSpeed;
33  
34  	private static Logger logger = 
35  		Logger.getLogger(DownloadStatusMessage.class);
36  	
37  	public DownloadStatusMessage(ByteBuffer buffer)
38  	{
39  		super(TYPE, buffer);
40  		readItems();
41  	}
42  
43  	private void readItems()
44  	{
45  		short num = getShort();
46  		
47  //  		logger.debug("num of downloads " + num);
48  
49  		for (short i = 0; i < num; i++) {
50  			int index = OvernetPreferences.getInstance().getNewDownloadID() 
51  				? getInt() : getShort();
52  			byte status = get();
53  			float speed = getFloat();
54  			int transferred = getInt();
55  			byte available = get();
56  			byte s = get();
57  			int sources = (s < 0) ? ((int)s) & 0xff : s;
58  			logger.debug("download status change for index " + index);
59  			OvernetPlugin.getMessageHandler().handle
60  				(new UpdateDownloadMessage(index, status, speed, transferred,
61  										   available, sources));
62  		}
63  	}
64  }