-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBoardCache.java
More file actions
38 lines (32 loc) · 801 Bytes
/
BoardCache.java
File metadata and controls
38 lines (32 loc) · 801 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package ida.ipl;
public class BoardCache {
public static final int MAX_CACHE_SIZE = 10 * 1024;
int size;
Board[] cache;
public BoardCache() {
size = 0;
cache = new Board[MAX_CACHE_SIZE];
}
public Board get(Board original) {
if (size > 0) {
size--;
Board result = cache[size];
result.init(original);
return result;
} else {
return new Board(original);
}
}
public void put(Board[] boards) {
for (Board board: boards) {
if (board == null) {
return;
}
if (size >= MAX_CACHE_SIZE) {
return;
}
cache[size] = board;
size++;
}
}
}