Project

General

Profile

Statistics
| Revision:

root / DistributedBackupService / src / protocols / DeleteChunk.java

History | View | Annotate | Download (1.45 KB)

1 1 up20130859
package protocols;
2
3
import server.Peer;
4
import sockets.Socket;
5
import utils.Utils;
6
7
import java.io.IOException;
8
import java.nio.file.Files;
9
import java.nio.file.Paths;
10
11
import chunk.FileManager;
12
import handlers.Message;
13
14
public class DeleteChunk implements Runnable {
15
    private String version;
16
    private String pathName;
17
    private Peer peer;
18
19
    public DeleteChunk(String version, String pathName, Peer parentPeer) {
20
        this.version = version;
21
        this.pathName = pathName;
22
        this.peer = parentPeer;
23
    }
24
25
    @Override
26
    public void run() {
27
        FileManager fileInformation;
28
        fileInformation = peer.getFile(pathName);
29
30
        if (fileInformation == null) {
31
                System.out.println("Can not find File!");
32
            System.exit(-1);;
33
        }
34
        sendMsgToMC(fileInformation);
35
        try {
36
            Files.delete(Paths.get(pathName));
37
        } catch (IOException e) {
38
            e.printStackTrace();
39
        }
40
        peer.deleteFileFromFileManager(pathName);
41
    }
42
43
    private boolean sendMsgToMC(FileManager fileInformation) {
44
            String idString = Integer.toString(peer.getID());
45
        String[] args = { version, idString,fileInformation.getFileID() };
46
47
        Message msg = new Message(Utils.MessageType.DELETE, args);
48
49
        try {
50
            peer.sendMsg(Socket.SocketType.MC, msg);
51
        } catch (IOException e) {
52
            e.printStackTrace();
53
            return false;
54
        }
55
        return true;
56
    }
57
58
}