/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.pieShare.pieShareApp.task.eventTasks;
import java.io.File;
import org.pieShare.pieShareApp.model.message.metaMessage.MetaMessage;
import org.pieShare.pieShareApp.model.message.api.IMetaCommitMessage;
import org.pieShare.pieShareApp.service.fileService.api.IFileService;
import org.pieShare.pieShareApp.service.requestService.api.IRequestService;
import org.pieShare.pieShareApp.service.shareService.IBitTorrentService;
import org.pieShare.pieShareApp.task.AMessageSendingEventTask;
import org.pieShare.pieTools.piePlate.service.cluster.exception.ClusterManagmentServiceException;
import org.pieShare.pieTools.pieUtilities.service.pieLogger.PieLogger;
/**
*
* @author Svetoslav
*/
public class FileMetaTask extends AMessageSendingEventTask<MetaMessage> {
private IRequestService requestService;
private IBitTorrentService bitTorrentService;
public void setRequestService(IRequestService requestService) {
this.requestService = requestService;
}
public void setBitTorrentService(IBitTorrentService bitTorrentService) {
this.bitTorrentService = bitTorrentService;
}
@Override
public void run() {
if(!this.requestService.handleRequest(msg.getPieFile())) {
return;
}
try {
this.bitTorrentService.handleFile(msg.getFileMeta());
IMetaCommitMessage metaCommit = this.messageFactoryService.getMetaCommitMessage();
metaCommit.setMetaInfo(msg.getMetaInfo());
metaCommit.setPieFile(msg.getPieFile());
this.setDefaultAdresse(metaCommit);
this.clusterManagementService.sendMessage(metaCommit);
} catch (ClusterManagmentServiceException ex) {
PieLogger.error(this.getClass(), "Could not send MetaMessage!", ex);
}
}
}