summaryrefslogtreecommitdiff
path: root/songdbj/RuntimeDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'songdbj/RuntimeDatabase.java')
-rw-r--r--songdbj/RuntimeDatabase.java81
1 files changed, 0 insertions, 81 deletions
diff --git a/songdbj/RuntimeDatabase.java b/songdbj/RuntimeDatabase.java
deleted file mode 100644
index e96e8207cc..0000000000
--- a/songdbj/RuntimeDatabase.java
+++ /dev/null
@@ -1,81 +0,0 @@
1import java.util.*;
2import java.io.*;
3import java.lang.reflect.Array;
4
5/*
6 TreeSet for runtimedatabase with entry hash used in compareto
7 fix commandline interface.
8*/
9
10public class RuntimeDatabase {
11 protected static RuntimeDatabase instance=null;
12 protected TreeMap entries;
13 protected int entrycount;
14 public static final int headersize = 8;
15
16 protected RuntimeDatabase() {
17 entries=new TreeMap();
18 }
19
20 public static RuntimeDatabase getInstance() {
21 if(instance==null)
22 instance=new RuntimeDatabase();
23 return instance;
24 }
25
26 public RundbEntry getEntry(FileEntry file) {
27 Integer key = new Integer(file.getHash());
28 if(!entries.containsKey(key)) {
29 RundbEntry e = new RundbEntry(file);
30 entries.put(key,e);
31 return e;
32 }
33 else
34 return (RundbEntry)entries.get(key);
35 }
36
37 protected void calcOffsets() {
38 Collection values = entries.values();
39 Iterator i;
40 int offset=headersize;
41 i=values.iterator();
42 while(i.hasNext()) {
43 Entry e = (Entry) i.next();
44 e.setOffset(offset);
45 offset+=RundbEntry.entrySize();
46 }
47 entrycount=values.size();
48 }
49
50 public int isDirty() {
51 return 0;
52 }
53
54 protected void writeHeader(DataOutputStream w) throws IOException {
55 w.write('R');
56 w.write('R');
57 w.write('D');
58 w.write(0x1);
59 w.writeInt(entrycount);
60 }
61
62 public void prepareWrite() {
63 System.out.println("Calculating Runtime Database Offsets..");
64 calcOffsets();
65 }
66
67 public void writeDatabase(File f) throws IOException {
68 int x;
69 Iterator i;
70 DataOutputStream w = new DataOutputStream(new FileOutputStream(f));
71 System.out.println("Writing runtime database..");
72 writeHeader(w);
73 i=entries.values().iterator();
74 while(i.hasNext()) {
75 Entry e = (Entry) i.next();
76 e.write(w);
77 }
78 w.flush();
79 w.close();
80 }
81} \ No newline at end of file