µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os::posix::tty_impl Class Referenceabstract

#include <tty.h>

+ Inheritance diagram for os::posix::tty_impl:

Public Member Functions

Constructors & Destructor
 tty_impl (void)
 
virtual ~tty_impl () override
 
Public Member Functions
virtual int do_tcgetattr (termios *ptio)=0
 
virtual int do_tcsetattr (int options, const termios *ptio)=0
 
virtual int do_tcflush (int queue_selector)=0
 
virtual int do_tcsendbreak (int duration)=0
 
virtual int do_tcdrain (void)=0
 
virtual int do_isatty (void) final
 
Public Member Functions
virtual off_t do_lseek (off_t offset, int whence) override
 
virtual void do_sync (void) override
 
Public Member Functions
virtual bool do_is_opened (void) override
 
virtual int do_vopen (const char *path, int oflag, std::va_list args)=0
 
virtual int do_vioctl (int request, std::va_list args)=0
 
int open_count (void)
 
Public Member Functions
virtual void do_deallocate (void)
 
virtual bool do_is_connected (void)
 
virtual ssize_t do_read (void *buf, std::size_t nbyte)=0
 
virtual ssize_t do_write (const void *buf, std::size_t nbyte)=0
 
virtual ssize_t do_writev (const iovec *iov, int iovcnt)
 
virtual int do_vfcntl (int cmd, std::va_list args)
 
virtual int do_fstat (struct stat *buf)
 
virtual int do_close (void)=0
 
off_t offset (void)
 
void offset (off_t offset)
 

Friends

class tty
 

Detailed Description

Definition at line 134 of file tty.h.

Constructor & Destructor Documentation

◆ tty_impl()

os::posix::tty_impl::tty_impl ( void  )

Definition at line 83 of file tty.cpp.

84 {
85#if defined(OS_TRACE_POSIX_IO_TTY)
86 trace::printf ("tty_impl::%s()=@%p\n", __func__, this);
87#endif
88 }
int printf(const char *format,...)
Write a formatted string to the trace device.
Definition trace.cpp:59

References os::trace::printf().

◆ ~tty_impl()

os::posix::tty_impl::~tty_impl ( )
overridevirtual

Definition at line 90 of file tty.cpp.

91 {
92#if defined(OS_TRACE_POSIX_IO_TTY)
93 trace::printf ("tty_impl::%s() @%p\n", __func__, this);
94#endif
95 }

References os::trace::printf().

Member Function Documentation

◆ do_close()

virtual int os::posix::io_impl::do_close ( void  )
pure virtualinherited

◆ do_deallocate()

void os::posix::io_impl::do_deallocate ( void  )
virtualinherited

Definition at line 482 of file io.cpp.

483 {
484 return;
485 }

◆ do_fstat()

int os::posix::io_impl::do_fstat ( struct stat buf)
virtualinherited

Definition at line 539 of file io.cpp.

540 {
541 errno = ENOSYS; // Not implemented
542 return -1;
543 }

Referenced by os::posix::io::fstat().

◆ do_is_connected()

bool os::posix::io_impl::do_is_connected ( void  )
virtualinherited

Definition at line 496 of file io.cpp.

497 {
498 return true;
499 }

◆ do_is_opened()

bool os::posix::device_impl::do_is_opened ( void  )
overridevirtualinherited

Implements os::posix::io_impl.

Definition at line 216 of file device.cpp.

217 {
218 return (open_count_ > 0);
219 }

◆ do_isatty()

int os::posix::tty_impl::do_isatty ( void  )
finalvirtual

Reimplemented from os::posix::io_impl.

Definition at line 98 of file tty.cpp.

99 {
100 return 1; // Yes!
101 }

◆ do_lseek()

off_t os::posix::char_device_impl::do_lseek ( off_t  offset,
int  whence 
)
overridevirtualinherited

Implements os::posix::io_impl.

Definition at line 82 of file char-device.cpp.

83 {
84 errno = ENOSYS; // Not implemented
85 return -1;
86 }

◆ do_read()

virtual ssize_t os::posix::io_impl::do_read ( void *  buf,
std::size_t  nbyte 
)
pure virtualinherited

Implemented in os::posix::block_device_impl.

Referenced by os::posix::io::read().

◆ do_sync()

void os::posix::char_device_impl::do_sync ( void  )
overridevirtualinherited

Implements os::posix::device_impl.

Definition at line 91 of file char-device.cpp.

92 {
93 errno = ENOSYS; // Not implemented
94 }

◆ do_tcdrain()

virtual int os::posix::tty_impl::do_tcdrain ( void  )
pure virtual

Referenced by os::posix::tty::tcdrain().

◆ do_tcflush()

virtual int os::posix::tty_impl::do_tcflush ( int  queue_selector)
pure virtual

Referenced by os::posix::tty::tcflush().

◆ do_tcgetattr()

virtual int os::posix::tty_impl::do_tcgetattr ( termios ptio)
pure virtual

◆ do_tcsendbreak()

virtual int os::posix::tty_impl::do_tcsendbreak ( int  duration)
pure virtual

◆ do_tcsetattr()

virtual int os::posix::tty_impl::do_tcsetattr ( int  options,
const termios ptio 
)
pure virtual

◆ do_vfcntl()

int os::posix::io_impl::do_vfcntl ( int  cmd,
std::va_list  args 
)
virtualinherited

Definition at line 525 of file io.cpp.

526 {
527 errno = ENOSYS; // Not implemented
528 return -1;
529 }

Referenced by os::posix::io::vfcntl().

◆ do_vioctl()

virtual int os::posix::device_impl::do_vioctl ( int  request,
std::va_list  args 
)
pure virtualinherited

◆ do_vopen()

virtual int os::posix::device_impl::do_vopen ( const char *  path,
int  oflag,
std::va_list  args 
)
pure virtualinherited

◆ do_write()

virtual ssize_t os::posix::io_impl::do_write ( const void *  buf,
std::size_t  nbyte 
)
pure virtualinherited

◆ do_writev()

ssize_t os::posix::io_impl::do_writev ( const iovec iov,
int  iovcnt 
)
virtualinherited

Definition at line 502 of file io.cpp.

503 {
504 ssize_t total = 0;
505
506#pragma GCC diagnostic push
507#if defined(__clang__)
508#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
509#endif
510 const /* struct */ iovec* p = iov;
511 for (int i = 0; i < iovcnt; ++i, ++p)
512 {
513 ssize_t ret = do_write (p->iov_base, p->iov_len);
514 if (ret < 0)
515 {
516 return ret;
517 }
518 total += ret;
519 }
520#pragma GCC diagnostic pop
521 return total;
522 }
virtual ssize_t do_write(const void *buf, std::size_t nbyte)=0
Definition uio.h:40
void * iov_base
Definition uio.h:41
size_t iov_len
Definition uio.h:42

References os::posix::io_impl::do_write(), iovec::iov_base, and iovec::iov_len.

Referenced by os::posix::io::writev().

◆ offset() [1/2]

void os::posix::io_impl::offset ( off_t  offset)
inlineinherited

Definition at line 478 of file io.h.

479 {
480 offset_ = offset;
481 }
off_t offset(void)
Definition io.h:472

References os::posix::io_impl::offset().

◆ offset() [2/2]

off_t os::posix::io_impl::offset ( void  )
inlineinherited

Definition at line 472 of file io.h.

473 {
474 return offset_;
475 }

Referenced by os::posix::block_device_partition_impl::configure(), os::posix::block_device_impl::do_lseek(), and os::posix::io_impl::offset().

◆ open_count()

int os::posix::device_impl::open_count ( void  )
inlineinherited

Definition at line 324 of file device.h.

325 {
326 return open_count_;
327 }

Friends And Related Symbol Documentation

◆ tty

friend class tty
friend

Definition at line 138 of file tty.h.


The documentation for this class was generated from the following files: