root / DistributedBackupService / src / protocols / Delete.java
History | View | Annotate | Download (1.37 KB)
1 | 1 | up20130859 | 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 | } |