25 #ifndef CLI_STREAM_LINE_READER_H
26 #define CLI_STREAM_LINE_READER_H
29 #include <AceRoutine.h>
30 #include "InputLine.h"
52 char* buffer,
int bufferSize):
59 int runCoroutine()
override {
63 COROUTINE_AWAIT(mStream.available() > 0);
64 while (mStream.available() > 0) {
68 if (mIndex >= mBufSize - 1) {
69 input.status = InputLine::kStatusOverflow;
73 COROUTINE_CHANNEL_WRITE(mChannel, input);
74 }
else if (c ==
'\n' || c ==
'\r') {
76 mFlushLine ? InputLine::kStatusOverflow : InputLine::kStatusOk;
80 COROUTINE_CHANNEL_WRITE(mChannel, input);
101 ace_routine::Channel<InputLine>& mChannel;
107 bool mFlushLine =
false;