Mercurial > hg > Members > nobuyasu > jungle-network
annotate src/main/java/alice/jungle/persistent/PersistentJournal.java @ 118:f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
author | one |
---|---|
date | Wed, 25 Dec 2013 20:02:26 +0900 |
parents | 895ab2907db3 |
children | 2e8034524259 |
rev | line source |
---|---|
105 | 1 package alice.jungle.persistent; |
85 | 2 |
3 import java.io.File; | |
4 import java.io.FileInputStream; | |
5 import java.io.FileNotFoundException; | |
6 import java.io.FileOutputStream; | |
7 import java.io.IOException; | |
8 import java.io.InputStream; | |
9 import java.io.OutputStream; | |
10 | |
11 import org.msgpack.MessagePack; | |
12 | |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; | |
16 | |
17 public class PersistentJournal implements Journal { | |
18 | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
19 private ChangeListWriter WRITER; |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
20 private ChangeListReader READER; |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
21 private OutputStream out; |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
22 private InputStream in; |
116 | 23 private static MessagePack msgpack; |
86 | 24 |
116 | 25 static { |
26 msgpack = new MessagePack(); | |
27 } | |
28 | |
86 | 29 public PersistentJournal() { |
30 } | |
85 | 31 |
32 public PersistentJournal(File file) throws FileNotFoundException { | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
33 out = new FileOutputStream(file,true); |
85 | 34 in = new FileInputStream(file); |
35 WRITER = new PersistentChangeListWriter(out); | |
36 READER = new PersistentChangeListReader(in); | |
37 } | |
38 | |
39 @Override | |
40 public ChangeListReader getReader() { | |
41 return READER; | |
42 } | |
43 | |
44 @Override | |
45 public ChangeListWriter getWriter() { | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
46 String timeStamp = Long.toString(System.currentTimeMillis()); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
47 String logFileName = timeStamp + ".log"; |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
48 OutputStream outStream = null; |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
49 try { |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
50 outStream = new FileOutputStream(new File("./log/"+logFileName)); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
51 } catch (FileNotFoundException e) { |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
52 e.printStackTrace(); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
53 } |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
54 PersistentChangeListWriter writer = new PersistentChangeListWriter(outStream); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
55 return writer; |
85 | 56 } |
57 | |
86 | 58 public void setOutputFile(File file) throws FileNotFoundException { |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
59 setOutputStream(new FileOutputStream(file, true)); |
86 | 60 } |
61 | |
62 public void setInputFile(File file) throws FileNotFoundException { | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
63 setInputStream(new FileInputStream(file)); |
85 | 64 } |
65 | |
66 public void setOutputStream(OutputStream _out) { | |
67 out = _out; | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
68 WRITER = new PersistentChangeListWriter(out); |
85 | 69 } |
70 | |
71 public OutputStream getOutputStream() { | |
72 return out; | |
73 } | |
74 | |
75 public void setInputStream(InputStream _in) { | |
76 in = _in; | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
77 READER = new PersistentChangeListReader(in); |
85 | 78 } |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
79 |
85 | 80 public InputStream getInputStream() { |
81 return in; | |
82 } | |
83 | |
116 | 84 public static MessagePack getMsgPackInstance() { |
85 | 85 return msgpack; |
86 } | |
118
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
87 |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
88 public void close() throws IOException { |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
89 out.close(); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
90 in.close(); |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
91 } |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
92 |
f64ff5bd66f5
Implements persistent for bbs app and Fixed bug JungleUpdater
one
parents:
116
diff
changeset
|
93 |
85 | 94 |
95 } |