Project

General

Profile

Statistics
| Revision:

root / DistributedBackupService / src / protocols / Delete.java

History | View | Annotate | Download (1.37 KB)

1
package protocols;
2

    
3
import server.Peer;
4
import java.util.Set;
5

    
6
import java.io.IOException;
7
import java.nio.file.Files;
8
import java.nio.file.Paths;
9

    
10

    
11
import chunk.FileManager;
12
import handlers.Message;
13

    
14
public class Delete implements Runnable {
15

    
16
    private Peer peer;
17
    private Message req;
18
    private FileManager fileManager;
19

    
20
    public Delete(Peer peer, Message req) {
21
        this.peer = peer;
22
        this.req = req;
23
        this.fileManager = peer.getDatabase();
24

    
25
        System.out.println("DELETE begins!");
26
    }
27

    
28

    
29
    @Override
30
    public void run() {
31
        String fileID;
32
        String path;
33
        Set<Integer> chunks;
34
        
35
        fileID = req.getFileID();
36

    
37
        if (!fileManager.chunkExists(fileID)) {
38
                System.out.println("Can not find chunks!");
39
            System.exit(-1);;
40
        }
41

    
42
        chunks = fileManager.getFileChunksKey(fileID);
43
        path = peer.getPath("chunks");
44

    
45
        for (Integer chunk : chunks) {
46
            try {
47
                Files.delete(Paths.get(path + "/" + fileID + "/" + chunk));
48
            } catch (IOException e) {
49
                e.printStackTrace();
50
            }
51
        }
52

    
53
        try {
54
            Files.delete(Paths.get(path + "/" + fileID));
55
        } catch (IOException e) {
56
            e.printStackTrace();
57
        }
58

    
59
        fileManager.deleteFileBackedUp(fileID);
60
        System.out.println("Delete successful.");
61
    }
62

    
63
}