10#ifndef SEMF_COMMUNICATION_ESH_TABULATOR_H_
11#define SEMF_COMMUNICATION_ESH_TABULATOR_H_
53 void start(
size_t charCount);
71 bool prefixMatch(std::string_view sub, std::string_view str)
const;
75 void printCommandName();
77 void continueSearch();
89 char*
const m_lineBuffer;
91 const size_t m_lineBufferSize;
93 const std::string_view kPrompt;
101 size_t m_charCount = 0;
103 uint32_t m_matchCount = 0;
105 SEMF_SLOT(m_printCommandNameSlot,
Tabulator, *
this, printCommandName);
107 SEMF_SLOT(m_continueSearchSlot,
Tabulator, *
this, continueSearch);
109 SEMF_SLOT(m_updatePromptSlot,
Tabulator, *
this, updatePrompt);
111 SEMF_SLOT(m_printCommandSlot,
Tabulator, *
this, printCommand);
113 SEMF_SLOT(m_onDoneSlot,
Tabulator, *
this, onDone);
115 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Tabulator;
Class for representing errors. Every error should have a unique source code. As a user feel encourage...
Implementation of a bidirectional constant iterator for LinkedList.
LinkedList is an managed double linked list implementation.
Class for string related UART communication. Using this class outside of an esh-context can make sens...
Handles the command auto completion.
virtual ~Tabulator()=default
Tabulator(const Tabulator &other)=delete
void start(size_t charCount)
Starts the auto completion.
bool isBusy() const
Returns the busy-flag.
ErrorCode
Error codes for this class. Error ID identify a unique error() / onError call (excluding transferring...
Tabulator(Printer &printer, const LinkedList< Command > &commands, char lineBuffer[], size_t lineBufferSize, std::string_view prompt)
Constructor.
SEMF_SIGNAL(error, Error)
SEMF_SIGNAL(done, size_t)