12#ifndef CMSIS_PLUS_POSIX_IO_TTY_H_
13#define CMSIS_PLUS_POSIX_IO_TTY_H_
17#if defined(__cplusplus)
21#if defined(OS_USE_OS_APP_CONFIG_H)
22#include <cmsis-plus/os-app-config.h>
31#pragma GCC diagnostic push
33#pragma clang diagnostic ignored "-Wc++98-compat"
48#pragma GCC diagnostic push
50#elif defined(__GNUC__)
51#pragma GCC diagnostic ignored "-Wsuggest-final-methods"
52#pragma GCC diagnostic ignored "-Wsuggest-final-types"
74 operator= (
const tty&)
84 virtual ~tty ()
noexcept override;
123#pragma GCC diagnostic pop
127#pragma GCC diagnostic push
128#if defined(__clang__)
129#pragma clang diagnostic ignored "-Wpadded"
130#elif defined(__GNUC__)
131#pragma GCC diagnostic ignored "-Wpadded"
207#pragma GCC diagnostic pop
211 template <
typename T>
227 template <
typename... Args>
298 return static_cast<tty_impl&
> (impl_);
303 template <
typename T>
304 template <
typename... Args>
306 :
tty{ impl_instance_, name },
307 impl_instance_{
std::forward<Args> (args)... }
309#if defined(OS_TRACE_POSIX_IO_TTY)
310 trace::printf (
"tty_implementable::%s(\"%s\")=@%p\n", __func__, name_,
315 template <
typename T>
318#if defined(OS_TRACE_POSIX_IO_TTY)
319 trace::printf (
"tty_implementable::%s() @%p %s\n", __func__,
this,
324 template <
typename T>
335#pragma GCC diagnostic pop
const char * name(void) const
virtual ~tty_impl() override
virtual int do_tcsendbreak(int duration)=0
virtual int do_tcgetattr(termios *ptio)=0
virtual int do_tcflush(int queue_selector)=0
virtual int do_isatty(void) final
virtual int do_tcsetattr(int options, const termios *ptio)=0
virtual int do_tcdrain(void)=0
tty_implementable(const char *name, Args &&... args)
virtual ~tty_implementable()
value_type & impl(void) const
virtual int tcdrain(void)
virtual int tcsendbreak(int duration)
virtual int tcgetattr(termios *ptio)
virtual int tcflush(int queue_selector)
virtual int tcsetattr(int options, const termios *ptio)
tty_impl & impl(void) const
virtual ~tty() noexcept override
int printf(const char *format,...)
Write a formatted string to the trace device.
Single file µOS++ RTOS definitions.