• R/O
  • SSH

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

最古版。新版→https://osdn.jp/users/tacticsrealize/pf/ChlorophyllUploader/wiki/FrontPage


Commit MetaInfo

Revisión17b15692b7cd768400ce1fbe914d2b8576152f58 (tree)
Tiempo2015-07-14 21:18:02
AutorMirrgieRiana Kurilab
CommiterMirrgieRiana Kurilab

Log Message

HLog: LoggerMirrgに実装を委譲

Cambiar Resumen

Diferencia incremental

diff -r 52ebb64843cf -r 17b15692b7cd mirrg/mirrg/ants/util/HLog.java
--- a/mirrg/mirrg/ants/util/HLog.java Tue Jul 14 21:05:30 2015 +0900
+++ b/mirrg/mirrg/ants/util/HLog.java Tue Jul 14 21:18:02 2015 +0900
@@ -1,184 +1,73 @@
11 package mirrg.ants.util;
22
3-import java.io.IOException;
4-import java.io.OutputStream;
53 import java.io.PrintStream;
6-import java.io.UnsupportedEncodingException;
7-import java.nio.charset.Charset;
8-import java.util.ArrayList;
9-import java.util.Iterator;
10-import java.util.function.Consumer;
114 import java.util.function.Predicate;
125
6+import mirrg.ants.util.LoggerMirrg.EnumTypeLog;
7+
138 public class HLog
149 {
1510
11+ public static final LoggerMirrg logger = new LoggerMirrg();
12+
1613 public static void fine(String string)
1714 {
18- log(EnumTypeLog.FINE, string);
15+ logger.fine(string);
1916 }
2017
2118 public static void warning(String string)
2219 {
23- log(EnumTypeLog.WARNING, string);
20+ logger.warning(string);
2421 }
2522
2623 public static void error(String string)
2724 {
28- log(EnumTypeLog.ERROR, string);
25+ logger.error(string);
2926 }
3027
3128 public static void info(String string)
3229 {
33- log(EnumTypeLog.INFO, string);
34- }
35-
36- ///////////////////////////////////////////////
37-
38- private static PrintStream outFine;
39-
40- public static PrintStream fine()
41- {
42- if (outFine == null) {
43- outFine = createPrintStream(HLog::fine);
44- }
45- return outFine;
46- }
47-
48- private static PrintStream outWarning;
49-
50- public static PrintStream warning()
51- {
52- if (outWarning == null) {
53- outWarning = createPrintStream(HLog::warning);
54- }
55- return outWarning;
30+ logger.info(string);
5631 }
5732
58- private static PrintStream outError;
59-
60- public static PrintStream error()
61- {
62- if (outError == null) {
63- outError = createPrintStream(HLog::error);
64- }
65- return outError;
66- }
67-
68- private static PrintStream outInfo;
69-
70- public static PrintStream info()
71- {
72- if (outInfo == null) {
73- outInfo = createPrintStream(HLog::info);
74- }
75- return outInfo;
76- }
77-
78- ///////////////////////////////////////////////
79-
80- private static PrintStream createPrintStream(Consumer<String> consumer)
81- {
82- try {
83- return new PrintStream(new OutputStreamLogger(consumer), true, "UTF-8");
84- } catch (UnsupportedEncodingException e) {
85- throw new RuntimeException(e);
86- }
87- }
88-
89- private static ArrayList<Tuple<EnumTypeLog, String>> messages = new ArrayList<>();
90-
91- private static ArrayList<Predicate<Tuple<EnumTypeLog, String>>> listeners = new ArrayList<>();
92-
9333 public static void log(EnumTypeLog typeLog, String string)
9434 {
95- Tuple<EnumTypeLog, String> message = new Tuple<>(typeLog, string);
96-
97- messages.add(message);
98-
99- Iterator<Predicate<Tuple<EnumTypeLog, String>>> iterator = listeners.iterator();
100- while (iterator.hasNext()) {
101- Predicate<Tuple<EnumTypeLog, String>> next = iterator.next();
102-
103- if (next.test(message)) {
104- iterator.remove();
105- }
106- }
107- }
108-
109- /**
110- * @param listener
111- * イベントハンドラを削除する場合にtrueを返す。
112- */
113- public static void registerListener(Predicate<Tuple<EnumTypeLog, String>> listener)
114- {
115- listeners.add(listener);
116- }
117-
118- public static enum EnumTypeLog
119- {
120- FINE,
121- WARNING,
122- ERROR,
123- INFO,
35+ logger.log(typeLog, string);
12436 }
12537
126- private static class OutputStreamLogger extends OutputStream
38+ public static PrintStream fine()
12739 {
128-
129- private static final Charset charset = Charset.forName("UTF-8");
130-
131- private Consumer<String> consumer;
132-
133- public OutputStreamLogger(Consumer<String> consumer)
134- {
135- this.consumer = consumer;
136- }
137-
138- private ArrayList<Byte> buffer = new ArrayList<>();
139- private boolean afterR = false;
40+ return logger.fine();
41+ }
14042
141- @Override
142- public void write(int b) throws IOException
143- {
144- if (b == '\r') {
145- flush2();
146- } else {
147- if (b == '\n') {
148- if (afterR) {
43+ public static PrintStream warning()
44+ {
45+ return logger.warning();
46+ }
14947
150- } else {
151- flush2();
152- }
153- } else {
154- buffer.add(Byte.valueOf((byte) b));
155- }
156- }
157-
158- afterR = b == '\r';
159- }
48+ public static PrintStream error()
49+ {
50+ return logger.error();
51+ }
16052
161- private void flush2()
162- {
163- byte[] bytes = new byte[buffer.size()];
164- for (int i = 0; i < buffer.size(); i++) {
165- bytes[i] = buffer.get(i);
166- }
167-
168- consumer.accept(new String(bytes, charset));
169- buffer.clear();
170- }
171-
53+ public static PrintStream info()
54+ {
55+ return logger.info();
17256 }
17357
17458 public static int getMessageCount()
17559 {
176- return messages.size();
60+ return logger.getMessageCount();
17761 }
17862
17963 public static Tuple<EnumTypeLog, String> getMessage(int index)
18064 {
181- return messages.get(index);
65+ return logger.getMessage(index);
66+ }
67+
68+ public static void registerListener(Predicate<Tuple<EnumTypeLog, String>> listener)
69+ {
70+ logger.registerListener(listener);
18271 }
18372
18473 }
diff -r 52ebb64843cf -r 17b15692b7cd mirrg/mirrg/ants/util/LoggerMirrg.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mirrg/mirrg/ants/util/LoggerMirrg.java Tue Jul 14 21:18:02 2015 +0900
@@ -0,0 +1,184 @@
1+package mirrg.ants.util;
2+
3+import java.io.IOException;
4+import java.io.OutputStream;
5+import java.io.PrintStream;
6+import java.io.UnsupportedEncodingException;
7+import java.nio.charset.Charset;
8+import java.util.ArrayList;
9+import java.util.Iterator;
10+import java.util.function.Consumer;
11+import java.util.function.Predicate;
12+
13+public class LoggerMirrg
14+{
15+
16+ public void fine(String string)
17+ {
18+ log(EnumTypeLog.FINE, string);
19+ }
20+
21+ public void warning(String string)
22+ {
23+ log(EnumTypeLog.WARNING, string);
24+ }
25+
26+ public void error(String string)
27+ {
28+ log(EnumTypeLog.ERROR, string);
29+ }
30+
31+ public void info(String string)
32+ {
33+ log(EnumTypeLog.INFO, string);
34+ }
35+
36+ public void log(EnumTypeLog typeLog, String string)
37+ {
38+ Tuple<EnumTypeLog, String> message = new Tuple<>(typeLog, string);
39+
40+ messages.add(message);
41+
42+ Iterator<Predicate<Tuple<EnumTypeLog, String>>> iterator = listeners.iterator();
43+ while (iterator.hasNext()) {
44+ Predicate<Tuple<EnumTypeLog, String>> next = iterator.next();
45+
46+ if (next.test(message)) {
47+ iterator.remove();
48+ }
49+ }
50+ }
51+
52+ ///////////////////////////////////////////////
53+
54+ private PrintStream outFine;
55+
56+ public PrintStream fine()
57+ {
58+ if (outFine == null) {
59+ outFine = createPrintStream(this::fine);
60+ }
61+ return outFine;
62+ }
63+
64+ private PrintStream outWarning;
65+
66+ public PrintStream warning()
67+ {
68+ if (outWarning == null) {
69+ outWarning = createPrintStream(this::warning);
70+ }
71+ return outWarning;
72+ }
73+
74+ private PrintStream outError;
75+
76+ public PrintStream error()
77+ {
78+ if (outError == null) {
79+ outError = createPrintStream(this::error);
80+ }
81+ return outError;
82+ }
83+
84+ private PrintStream outInfo;
85+
86+ public PrintStream info()
87+ {
88+ if (outInfo == null) {
89+ outInfo = createPrintStream(this::info);
90+ }
91+ return outInfo;
92+ }
93+
94+ private PrintStream createPrintStream(Consumer<String> consumer)
95+ {
96+ try {
97+ return new PrintStream(new OutputStreamLogger(consumer), true, "UTF-8");
98+ } catch (UnsupportedEncodingException e) {
99+ throw new RuntimeException(e);
100+ }
101+ }
102+
103+ ///////////////////////////////////////////////
104+
105+ private ArrayList<Tuple<EnumTypeLog, String>> messages = new ArrayList<>();
106+
107+ public int getMessageCount()
108+ {
109+ return messages.size();
110+ }
111+
112+ public Tuple<EnumTypeLog, String> getMessage(int index)
113+ {
114+ return messages.get(index);
115+ }
116+
117+ private ArrayList<Predicate<Tuple<EnumTypeLog, String>>> listeners = new ArrayList<>();
118+
119+ /**
120+ * @param listener
121+ * イベントハンドラを削除する場合にtrueを返す。
122+ */
123+ public void registerListener(Predicate<Tuple<EnumTypeLog, String>> listener)
124+ {
125+ listeners.add(listener);
126+ }
127+
128+ public static enum EnumTypeLog
129+ {
130+ FINE,
131+ WARNING,
132+ ERROR,
133+ INFO,
134+ }
135+
136+ private static class OutputStreamLogger extends OutputStream
137+ {
138+
139+ private static final Charset charset = Charset.forName("UTF-8");
140+
141+ private Consumer<String> consumer;
142+
143+ public OutputStreamLogger(Consumer<String> consumer)
144+ {
145+ this.consumer = consumer;
146+ }
147+
148+ private ArrayList<Byte> buffer = new ArrayList<>();
149+ private boolean afterR = false;
150+
151+ @Override
152+ public void write(int b) throws IOException
153+ {
154+ if (b == '\r') {
155+ flush2();
156+ } else {
157+ if (b == '\n') {
158+ if (afterR) {
159+
160+ } else {
161+ flush2();
162+ }
163+ } else {
164+ buffer.add(Byte.valueOf((byte) b));
165+ }
166+ }
167+
168+ afterR = b == '\r';
169+ }
170+
171+ private void flush2()
172+ {
173+ byte[] bytes = new byte[buffer.size()];
174+ for (int i = 0; i < buffer.size(); i++) {
175+ bytes[i] = buffer.get(i);
176+ }
177+
178+ consumer.accept(new String(bytes, charset));
179+ buffer.clear();
180+ }
181+
182+ }
183+
184+}