/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.merapi.helper.handlers;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.merapi.handlers.MessageHandler;
import org.merapi.helper.messages.BarUpdateRequestMessage;
import org.merapi.helper.messages.BarUpdateRespondMessage;
import org.merapi.helper.messages.DLControlMessage;
import org.merapi.helper.messages.DLControlRespondMessage;
import org.merapi.helper.messages.DetailInfoMessage;
import org.merapi.helper.messages.ListUpdateMessage;
import org.merapi.helper.vo.TrackerVO;
import org.merapi.internal.Bridge;
import org.merapi.messages.IMessage;
import org.merapi.messages.Message;
import org.torrent.client.MainService;
import org.torrent.internal.client.Main;
import org.torrent.internal.data.MetaInfoFile;
import org.torrent.internal.data.TorrentMetaInfo;
/**
*
* @author gurkerl
*/
public class BarUpdateRequestHandler extends MessageHandler {
private static BarUpdateRequestHandler instance = new BarUpdateRequestHandler();
/**
* Statische Methode, liefert die einzige Instanz dieser Klasse zur�ck
*/
public static BarUpdateRequestHandler getInstance() {
return instance;
}
private File file;
private MainService service;
/**
* Default-Konstruktor, der nicht au�erhalb dieser Klasse aufgerufen werden
* kann
*/
public BarUpdateRequestHandler() {
super(BarUpdateRequestMessage.REQUEST_BAR_DATA);
// service = new Main();
}
@Override
public void handleMessage(IMessage message) {
if (message instanceof BarUpdateRequestMessage) {
System.out.println("BarUpdateRequestMessage received on backend");
BarUpdateRequestMessage barUpdateRequestMessage = (BarUpdateRequestMessage) message;
//get and fill data corresponding to infoHash
Main.queue.containsKey(barUpdateRequestMessage.infoHash);
// BarUpdateRequestHandler.sendAddBarData(BarUpdateRespondMessage.ADD_BAR_DATA, barUpdateRequestMessage.infoHash);
MetaInfoFile tmi = Main.getInstance().map.get(barUpdateRequestMessage.infoHash);
BarUpdateRequestHandler.sendUpdateBarData(BarUpdateRespondMessage.ADD_BAR_DATA, tmi.getInfoHash().asHexString(), tmi.getDataInfo().getPiecesCount(), 1, barUpdateRequestMessage.lostCol);
} else {
System.out.println("invalid message received on backend");
}
}
// @Override
// public File getFile() {
// return this.file;
// }
public static void sendAddBarData(String action, String infoHash) {
BarUpdateRespondMessage barUpdate = new BarUpdateRespondMessage();
barUpdate.action = action;
barUpdate.infoHash = infoHash;
barUpdate.send();
}
public static void sendUpdateBarData(String action, String infoHash, int cols, long rows, int lostCol) {
BarUpdateRespondMessage barUpdate = new BarUpdateRespondMessage();
barUpdate.action = action;
barUpdate.infoHash = infoHash;
barUpdate.cols = cols;
barUpdate.rows = rows;
barUpdate.lostCol = lostCol;
barUpdate.send();
}
public void sendAddDetailedData(String action) {
BarUpdateRespondMessage barUpdate = new BarUpdateRespondMessage();
barUpdate.action = action;
barUpdate.dateienPfad = "testPfad";
barUpdate.peersFlags = "testFlags";
barUpdate.peersIP = "testIP";
barUpdate.peersProgramm = "testProgramm";
barUpdate.trackerName = "testTrackerName";
barUpdate.trackerStatus = "trackerStatus";
barUpdate.send();
}
public void sendUpdateDetailedData(String action) {
BarUpdateRespondMessage barUpdate = new BarUpdateRespondMessage();
barUpdate.action = action;
barUpdate.send();
}
public void sendDetailInfoMessage(String action, String subAction) {
DetailInfoMessage detailInfoMessage = new DetailInfoMessage();
detailInfoMessage.action = action;
detailInfoMessage.subAction = subAction;
detailInfoMessage.trackerName = "testTrackerName";
detailInfoMessage.trackerStatus = "trackerStatus";
detailInfoMessage.trackerGeladen = "trackerGeladen";
detailInfoMessage.trackerNaechstUpdate = "trackerNaechstUpdate";
detailInfoMessage.trackerPeers = 10;
detailInfoMessage.trackerSeeds = 15;
//// detailInfoMessage.trackerVO = new TrackerVO("testTracker", "testStatus", "testNaechstUpdate", 0, 0, "testTrackerGeladen");
detailInfoMessage.send();
// Message msg = new Message();
// msg.setType("messageFromJava");
// msg.setData(new TrackerVO("testTracker", "testStatus", "testNaechstUpdate", 0, 0, "testTrackerGeladen"));
// try{
// Bridge.getInstance().sendMessage(msg);
// }catch(Exception e){
// System.out.println(e);
// }
}
// public void sendListUpdateMessage(String action, String infoHash) {
// ListUpdateMessage updateMessage = new ListUpdateMessage();
//
// updateMessage.action = action;
// updateMessage.infoHash = infoHash;
// updateMessage.send();
// }
// public void sendDLControlRespondMessage(String action, String infoHash){
// DLControlRespondMessage dlControlRespondMessage = new DLControlRespondMessage();
//
// dlControlRespondMessage.action = action;
// dlControlRespondMessage.infoHash = infoHash;
// dlControlRespondMessage.send();
// }
// updateMessage.setUid(downloadControlMessage.getUid());
// updateMessage.action = ListUpdateMessage.ITEM_ADDED;
// Random RNG = new Random();
// Integer next = RNG.nextInt();
// String[] array = new String[] {"1", "tester", "12", "2", "true"};
// array[0] = next.toString();
// updateMessage.setArgs(array);
// updateMessage.send();
}