Project

General

Profile

Statistics
| Revision:

root / src / peer / Storage.java

History | View | Annotate | Download (1.44 KB)

1
package peer;
2

    
3
import files.FileHandler;
4

    
5
import java.io.IOException;
6
import java.math.BigInteger;
7
import java.nio.file.Path;
8
import java.nio.file.Paths;
9
import java.util.Hashtable;
10

    
11
import chord.ChordManager;
12

    
13
public class Storage {
14
    private long spaceReserved;
15
    private long spaceOcupied;
16
    private Hashtable<BigInteger, String> fileStored;
17

    
18
    public Storage(long spaceReserved) throws IOException {
19
        this.spaceReserved = spaceReserved;
20
        updateSpaceOcupied();
21
        
22
        fileStored = new Hashtable<>();
23
    }
24

    
25
    public void insertHashtable(BigInteger hashFile, String fileName) {
26
        fileStored.put(hashFile, fileName);
27
    }
28

    
29
    public long getSpaceReserved() {
30
        return spaceReserved;
31
    }
32

    
33
    public long getSpaceOcupied() {
34
        return spaceOcupied;
35
    }
36

    
37
    public void updateSpaceOcupied() throws IOException {
38
        Path pathPeerFolder = Paths.get("./peerDisk/peer" + Peer.getPeerAccessPoint() + "-" + ChordManager.peerHash);
39
        this.spaceOcupied = FileHandler.getSize(pathPeerFolder) / 1024;
40
    }
41

    
42

    
43
    public void setSpaceReserved(long spaceReserved) throws IOException {
44
        this.spaceReserved = spaceReserved;
45
        updateSpaceOcupied();
46
        if (this.spaceReserved < this.spaceOcupied) {
47
            FileHandler.clearStorageSpace();
48
        }
49
    }
50

    
51
    public Hashtable<BigInteger, String > getHashtable() {
52
        return fileStored;
53
    }
54
}