Skip to content

Commit 753f4d2

Browse files
author
denrus
committed
Переработка закрытия листнеров по код-ревью
1 parent 746898d commit 753f4d2

File tree

6 files changed

+10
-32
lines changed

6 files changed

+10
-32
lines changed

server/src/main/java/ru/croccode/hypernull/match/Match.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -365,23 +365,4 @@ private void collectCoins() {
365365
}
366366
}
367367
}
368-
369-
public void finished() {
370-
//TODO Надо ли оповещать через MatchListener, что матч совсем всё?
371-
for (MatchListener<K> listener : listeners) {
372-
try {
373-
listener.close();
374-
} catch (Exception e) {
375-
throw new RuntimeException(
376-
String.format(
377-
"Ошибка при закрытии слушателя %s матча %s: %s",
378-
listener.getClass().getSimpleName(),
379-
this,//TODO id?
380-
e.getMessage()
381-
),
382-
e
383-
);
384-
}
385-
}
386-
}
387368
}

server/src/main/java/ru/croccode/hypernull/match/MatchListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import ru.croccode.hypernull.domain.MatchMap;
66
import ru.croccode.hypernull.geometry.Point;
77

8-
public interface MatchListener<K> extends AutoCloseable{
8+
public interface MatchListener<K> {
99

1010
void matchStarted(MatchMap map, MatchConfig config, Map<K, String> botNames);
1111

server/src/main/java/ru/croccode/hypernull/server/AsciiMatchPrinter.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ public class AsciiMatchPrinter implements MatchListener<Integer> {
3333

3434
private int round;
3535

36-
@Override
37-
public void close() {
38-
//nothing
39-
}
40-
4136
static class BotState {
4237

4338
String name = Strings.empty();

server/src/main/java/ru/croccode/hypernull/server/HyperNull.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,14 @@ private void runMatch(MatchMode mode, List<MatchRequest> matchRequests) {
9090
String matchId = MatchId.nextId();
9191
MatchMap map = mapRegistry.randomMap(numBots);
9292
MatchConfig config = buildMatchConfig(mode, map);
93-
List<MatchListener<Integer>> listeners = Arrays.asList(
93+
try (MatchFileLogger<Integer> fileLogger = new MatchFileLogger<>(matchId, this.matchLogsFolder)) {
94+
List<MatchListener<Integer>> listeners = Arrays.asList(
9495
new AsciiMatchPrinter(),
95-
new MatchFileLogger<>(matchId, this.matchLogsFolder)
96-
);
97-
Match<Integer> match = new Match<>(map, config, botNames, listeners);
98-
new MatchRunner(match, botSessions).run();
96+
fileLogger
97+
);
98+
Match<Integer> match = new Match<>(map, config, botNames, listeners);
99+
new MatchRunner(match, botSessions).run();
100+
}
99101
}
100102

101103
private MatchConfig buildMatchConfig(MatchMode mode, MatchMap map) {

server/src/main/java/ru/croccode/hypernull/server/MatchFileLogger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import ru.croccode.hypernull.match.MatchConfig;
77
import ru.croccode.hypernull.match.MatchListener;
88

9+
import java.io.Closeable;
910
import java.io.IOException;
1011
import java.io.PrintWriter;
1112
import java.lang.reflect.Field;
@@ -14,7 +15,7 @@
1415
import java.nio.file.Paths;
1516
import java.util.Map;
1617

17-
public class MatchFileLogger<K> implements MatchListener<K> {
18+
public class MatchFileLogger<K> implements MatchListener<K>, Closeable {
1819

1920
private final static String LOG_FILE_TEMPLATE = "%s/match_%s.log";
2021

server/src/main/java/ru/croccode/hypernull/server/MatchRunner.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ public void run() {
9393
}
9494
match.completeRound(botMoves);
9595
}
96-
match.finished();
9796
new ArrayList<>(botSessions.keySet()).forEach(this::closeSession);
9897
}
9998

0 commit comments

Comments
 (0)