From 1b3300740ea472da180fbe8a9777ba6124face18 Mon Sep 17 00:00:00 2001 From: Mike Bailey <jmbailey@nps.edu> Date: Tue, 10 Sep 2019 13:05:41 -0700 Subject: [PATCH] Add raw listener api --- .../dis7/util/playerrecorder/Player.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/Player.java b/src/edu/nps/moves/dis7/util/playerrecorder/Player.java index 9dfba9d4bd..f75134b99c 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/Player.java +++ b/src/edu/nps/moves/dis7/util/playerrecorder/Player.java @@ -19,6 +19,9 @@ import static edu.nps.moves.dis7.util.playerrecorder.Recorder.*; public class Player { + public interface RawListener { + void receiveBytes(byte[] ba); + } private Path disLogDirectory; private String ip; private int port; @@ -44,7 +47,17 @@ public class Player private BufferedReader brdr; private Long startNanoTime = null; private boolean paused = false; + private boolean netSend = true; + private RawListener rawListener = null; + public void sendToNet(boolean tf) + { + netSend = tf; + } + public void addRawListener(RawListener lis) + { + rawListener = lis; + } @SuppressWarnings("StatementWithEmptyBody") public void begin() { @@ -63,7 +76,8 @@ public class Player }); //Arrays.sort(fs, Comparator.comparing(File::getName)); - dsock = new DatagramSocket(); + if(netSend) + dsock = new DatagramSocket(); Base64.Decoder decdr = Base64.getDecoder(); for (File f : fs) { @@ -110,9 +124,13 @@ public class Player byte[] buffer = decdr.decode(sa[1]); - DatagramPacket packet = new DatagramPacket(buffer, buffer.length, addr, port); - dsock.send(packet); - + if(netSend) { + DatagramPacket packet = new DatagramPacket(buffer, buffer.length, addr, port); + dsock.send(packet); + } + if(rawListener != null) { + rawListener.receiveBytes(buffer); + } pduCount++; if (scenarioPduCount != null) scenarioPduCount++; @@ -125,6 +143,8 @@ public class Player } brdr.close(); } + if(rawListener != null) + rawListener.receiveBytes(null); // indicate the end } catch (Exception ex) { System.err.println("Exception reading/writing pdus: "+ex.getClass().getSimpleName()+": "+ex.getLocalizedMessage()); -- GitLab