From ab727513337a4729c57220367d67eaa8bc6ce6ff Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 27 Mar 2017 23:26:37 -0400 Subject: Continue work on FDS --- .../src/main/java/bjc/utils/cli/fds/FDSState.java | 45 +++++++++++++--------- 1 file changed, 27 insertions(+), 18 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/cli/fds/FDSState.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/cli/fds/FDSState.java b/BJC-Utils2/src/main/java/bjc/utils/cli/fds/FDSState.java index bef86ae..1627b11 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/cli/fds/FDSState.java +++ b/BJC-Utils2/src/main/java/bjc/utils/cli/fds/FDSState.java @@ -1,10 +1,10 @@ package bjc.utils.cli.fds; -import java.util.function.Consumer; +import java.io.PrintStream; import bjc.utils.esodata.SimpleStack; import bjc.utils.esodata.Stack; -import bjc.utils.ioutils.Block; +import bjc.utils.ioutils.PushbackBlockReader; /** * Internal state for an FDS interface. @@ -34,16 +34,16 @@ public class FDSState { CHORD, /** * Reads every character in the block, but after a terminal - * command, data will be read in-line separated by spaces until a - * semicolon is read. + * command, data will be read in-line separated by spaces until + * a semicolon is read. * * The semicolon can be escaped with a backslash. */ INLINE, /** * Reads every character in the block, but after a terminal - * command, data will be read in-line with each character being a - * separate item until a semicolon is read. + * command, data will be read in-line with each character being + * a separate item until a semicolon is read. * * The semicolon can be escaped with a backslash. */ @@ -65,14 +65,19 @@ public class FDSState { public Stack> modes; /** - * Function to add a command block to be processed. + * The source to read command blocks from. */ - public Consumer enqueCommand; + public PushbackBlockReader comin; /** - * Function to add a data block to be processed. + * The source to read data blocks from. */ - public Consumer enqueData; + public PushbackBlockReader datain; + + /** + * The destination for output. + */ + public PrintStream printer; /** * Create a new interface state. @@ -82,20 +87,24 @@ public class FDSState { * * @param inputMode * The input mode for the interface. + * @param cmin + * The source of command blocks. * - * @param comQueue - * The function to call to add a command block. + * @param datin + * The source of data blocks. * - * @param dataQueue - * The function to call to add a data block. + * @param print + * The destination for output. */ - public FDSState(S stat, InputMode inputMode, Consumer comQueue, Consumer dataQueue) { + public FDSState(S stat, InputMode inputMode, PushbackBlockReader cmin, PushbackBlockReader datin, + PrintStream print) { state = stat; mode = inputMode; - modes = new SimpleStack<>(); + comin = cmin; + datain = datin; + printer = print; - enqueCommand = comQueue; - enqueData = dataQueue; + modes = new SimpleStack<>(); } } \ No newline at end of file -- cgit v1.2.3