KEK/console.h
2022-03-22 11:20:11 +01:00

33 lines
521 B
C++

#pragma once
#include <atomic>
#include <thread>
#include <vector>
class console
{
private:
std::atomic_bool *const terminate { nullptr };
std::thread *th { nullptr };
std::vector<char> buffer;
protected:
virtual int wait_for_char(const int timeout) = 0;
public:
console(std::atomic_bool *const terminate);
virtual ~console();
bool poll_char();
uint8_t get_char();
virtual void put_char(const char c) = 0;
virtual void resize_terminal() = 0;
void operator()();
};