libcsdbg  1.28
C++ exception (and generic) stack trace debug library
csdbg::sttybuf Class Reference

A buffered output stream for serial interfaces. More...

#include <sttybuf.hpp>

+ Inheritance diagram for csdbg::sttybuf:
+ Collaboration diagram for csdbg::sttybuf:

Public Member Functions

 sttybuf (const i8 *, u32=9600)
 Object constructor. More...
 
 sttybuf (const sttybuf &)
 Object copy constructor. More...
 
virtual ~sttybuf ()
 Object destructor. More...
 
virtual sttybuf * clone () const
 Object virtual copy constructor. More...
 
virtual const i8 * devnode () const
 Get the path of the serial interface device node. More...
 
virtual u32 baud () const
 Get the baud rate. More...
 
virtual sttybuf & set_baud (u32)
 Set the baud rate. More...
 
virtual sttybuf & operator= (const sttybuf &)
 Assignment operator. More...
 
virtual bool is_tty () const
 Check if the device node is a terminal. More...
 
virtual sttybuf & open ()
 Open the serial interface for output. More...
 
virtual sttybuf & open (bool)
 Open the serial interface for output. More...
 
virtual sttybuf & flush ()
 Flush the buffered data to the serial interface. More...
 
virtual sttybuf & sync () const
 Commit cached data to the serial interface line. More...
 
virtual sttybuf & discard () const
 Discard the data cached in the serial interface (in-kernel) buffers. More...
 
- Public Member Functions inherited from csdbg::streambuf
 streambuf ()
 Object default constructor. More...
 
 streambuf (const streambuf &)
 Object copy constructor. More...
 
virtual ~streambuf ()=0
 To be implemented. More...
 
virtual i32 handle () const
 Get the handle. More...
 
virtual bool is_opened () const
 Check if the stream is opened for output. More...
 
virtual streambuf & operator= (const streambuf &)
 Assignment operator. More...
 
virtual streambuf & close ()
 Close the stream. More...
 
virtual streambuf & lock () const
 Lock the stream (exclusively) More...
 
virtual streambuf & unlock () const
 Unlock the stream. More...
 
virtual streambuf & header ()
 Append LDP headers to the buffer. More...
 
- Public Member Functions inherited from csdbg::string
 string (u32=0)
 Object constructor. More...
 
 string (const i8 *,...)
 Object constructor. More...
 
 string (const string &)
 Object copy constructor. More...
 
virtual ~string ()
 Object destructor. More...
 
virtual const i8 * cstr () const
 Get the C-string equivalent. More...
 
virtual u32 length () const
 Get the character count. More...
 
virtual u32 bufsize () const
 Get the buffer size. More...
 
virtual i8 & at (u32)
 Get/set the character at an offset. More...
 
virtual string & set (const i8 *,...)
 Fill with a printf-style format C-string expanded with the values of a variable argument list. More...
 
virtual string & set (const string &)
 Copy a string. More...
 
virtual string & operator= (const string &)
 Assignment operator. More...
 
virtual string & operator+= (const string &)
 Compound addition-assignment operator (append) More...
 
virtual i8 & operator[] (u32)
 Subscript operator. More...
 
virtual u32 available () const
 Get the available buffer size, the number of characters that can be appended without reallocation. More...
 
virtual string & shred (u8=0)
 Fill the whole buffer with a constant byte. More...
 
virtual string & clear ()
 Clear contents. More...
 
virtual string & append (const string &)
 Append a string. More...
 
virtual string & append (const i8 *,...)
 Append a printf-style format C-string expanded with the values of a variable argument list. More...
 
virtual string & append (i8)
 Append a character. More...
 
virtual i32 cmp (const string &, bool=false) const
 Compare to another string. More...
 
virtual bool match (const string &, bool=false) const
 Match against a POSIX extended regular expression. More...
 
virtual string & trim (i32=0)
 Remove leading and/or trailing whitespace characters. More...
 
virtual string & insert (u32, const string &)
 Insert a string at a specified position. More...
 
virtual string & insert (u32, const i8 *,...)
 Insert a printf-style format C-string expanded with the values of a variable argument list, at a specified position. More...
 
virtual chain< string > * split (const string &, bool=true, bool=false) const
 Tokenize using a POSIX extended regular expression. More...
 
- Public Member Functions inherited from csdbg::object
virtual ~object ()=0
 To be implemented. More...
 
virtual const i8 * class_name () const
 Query the class name of an object descending from csdbg::object. More...
 

Static Public Member Functions

static u32 translate_baud (u32)
 Translate a number to a baud rate as defined in termios.h. More...
 

Protected Member Functions

virtual sttybuf & config () const
 Configure the serial interface. More...
 
- Protected Member Functions inherited from csdbg::string
virtual string & memalign (u32, bool=false)
 Allocate aligned memory, mandate a minimum buffer size. More...
 
virtual string & format (const i8 *, va_list)
 Fill with a printf-style format C-string expanded with the values of a variable argument list. More...
 

Protected Attributes

i8 * m_devnode
 Device node file (devfs) More...
 
u32 m_baud
 Baud rate. More...
 
- Protected Attributes inherited from csdbg::streambuf
i32 m_handle
 Stream handle (descriptor) More...
 
- Protected Attributes inherited from csdbg::string
i8 * m_data
 String data. More...
 
u32 m_length
 Character count. More...
 
u32 m_size
 Buffer size. More...
 

Detailed Description

A buffered output stream for serial interfaces.

An sttybuf object is a buffered output stream used to output LDP or generic data to any type of serial interface. The interfaces are configured for 8N1 transmition, the baud rate is configurable (throughout a session). The class is not thread safe, the caller must implement thread synchronization. Basic stream locking methods are inherited from csdbg::streambuf

See Also
5.4 LDP (Libcsdbg Debug Protocol)
5.5.3 Using csdbg::sttybuf
Test:
Test all class and streambuf superclass methods

Definition at line 28 of file sttybuf.hpp.


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