10#ifndef SEMF_COMMUNICATION_ESH_PROCESSOR_H_
11#define SEMF_COMMUNICATION_ESH_PROCESSOR_H_
33 LoadCommand_IsBusy = 0,
68 void onQuotationMarkPrinted();
78 char*
const m_lineBuffer;
80 const size_t m_lineBufferSize;
84 const size_t m_argvSize;
88 const Command* m_currentCommand =
nullptr;
92 int m_lastExitStatus = 0;
94 SEMF_SLOT(m_onQuotationMarkPrintedSlot,
Processor, *
this, onQuotationMarkPrinted);
96 SEMF_SLOT(m_onNamePrintedSlot,
Processor, *
this, onNamePrinted);
98 SEMF_SLOT(m_onDoneSlot,
Processor, *
this, onDone);
100 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Processor;
Class for representing errors. Every error should have a unique source code. As a user feel encourage...
LinkedList is an managed double linked list implementation.
Wrapper class for shell command. The user has to create object of this class for adding their functio...
Class for string related UART communication. Using this class outside of an esh-context can make sens...
Manages esh's command parsing and execution.
SEMF_SIGNAL(error, Error)
Processor(const LinkedList< Command > &commands, Printer &printer, char lineBuffer[], size_t lineBufferSize, char **argvBuffer, size_t argvBufferSize)
Constructor.
ErrorCode
Error codes for this class. Error ID identify a unique error() / onError call (excluding transferring...
void loadCommand()
Load a command for execution according to the current command line.
void execLoadedCommand()
Execute the currenty loaded command. Returns with no error if no command is loaded....
virtual ~Processor()=default
Processor(const Processor &other)=delete