37 virtual void setBase(uintptr_t nBaseAddr) = 0;
38 virtual bool hasData() = 0;
39 virtual char read() = 0;
40 virtual char readNonBlock() = 0;
41 virtual void write(
char c) = 0;
42 virtual void write_str(
const char* c);
43 virtual void write_str(
const char* c,
size_t len);
44 virtual void write_str(
const Cord& cord);
46 template <
unsigned int N>
48 for (
auto it = cord.segbegin(); it != cord.segend(); ++it) {
49 write_str(it.ptr(), it.length());
54 template <
unsigned int N>
55 void write_str(
const char (&c)[N]) {
59 template <
unsigned int N>
61 write_str(
static_cast<const char*
>(c), c.length());