Study mods to InputBuffer - not for merge #559
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This code is not intended to be merged in this form.
This is a proof of concept of some class structure changes that
will be useful as a steppingstone for the Client class task.
The old InputBuffer class, which was used for two different
purposes (macro input and buffering between SerialCheckTask
and protocol_main_loop()), has now been split into MacroBuffer
and InputBuffer. MacroBuffer inherits from Stream, so it can
be a primary data source, while InputBuffer is a standalone class
with only the exact set of methods needed for the intermediate
buffering job.
MacroBuffer has a write() method that discards the data, so
when it is used as a data source in the "client" sense, writes
to it do nothing.
InputBuffer will go away when the Client class appears, as its
function will be subsumed by an integrated line buffering mechanism.
The Telnet_Server and Serial2Socket classes were converted to
inherit from Stream so they can be used as input sources without
using different code to read them, compared to other sources.