WPILibC++ 2024.1.1-beta-4
wpi::uv::Tty Class Referencefinal

TTY handle. More...

#include <wpinet/uv/Tty.h>

Inheritance diagram for wpi::uv::Tty:
wpi::uv::StreamImpl< Tty, uv_tty_t > wpi::uv::Stream wpi::uv::Handle

Public Member Functions

 Tty (const private_init &)
 
 ~Tty () noexcept override=default
 
void SetMode (uv_tty_mode_t mode)
 Set the TTY using the specified terminal mode. More...
 
void ResetMode ()
 Reset TTY settings to default values for the next process to take over. More...
 
std::pair< int, int > GetWindowSize ()
 Gets the current window size. More...
 
- Public Member Functions inherited from wpi::uv::StreamImpl< Tty, uv_tty_t >
std::shared_ptr< Ttyshared_from_this ()
 
std::shared_ptr< const Ttyshared_from_this () const
 
uv_tty_tGetRaw () const noexcept
 Get the underlying handle data structure. More...
 
- Public Member Functions inherited from wpi::uv::Stream
std::shared_ptr< Streamshared_from_this ()
 
std::shared_ptr< const Streamshared_from_this () const
 
void Shutdown (const std::shared_ptr< ShutdownReq > &req)
 Shutdown the outgoing (write) side of a duplex stream. More...
 
void Shutdown (std::function< void()> callback=nullptr)
 Shutdown the outgoing (write) side of a duplex stream. More...
 
void StartRead ()
 Start reading data from an incoming stream. More...
 
void StopRead ()
 Stop reading data from the stream. More...
 
void Write (std::span< const Buffer > bufs, const std::shared_ptr< WriteReq > &req)
 Write data to the stream. More...
 
void Write (std::initializer_list< Buffer > bufs, const std::shared_ptr< WriteReq > &req)
 Write data to the stream. More...
 
void Write (std::span< const Buffer > bufs, std::function< void(std::span< Buffer >, Error)> callback)
 Write data to the stream. More...
 
void Write (std::initializer_list< Buffer > bufs, std::function< void(std::span< Buffer >, Error)> callback)
 Write data to the stream. More...
 
int TryWrite (std::span< const Buffer > bufs)
 Queue a write request if it can be completed immediately. More...
 
int TryWrite (std::initializer_list< Buffer > bufs)
 Queue a write request if it can be completed immediately. More...
 
int TryWrite2 (std::span< const Buffer > bufs, Stream &send)
 Same as TryWrite() and extended write function for sending handles over a pipe. More...
 
int TryWrite2 (std::initializer_list< Buffer > bufs, Stream &send)
 Same as TryWrite() and extended write function for sending handles over a pipe. More...
 
bool IsReadable () const noexcept
 Check if the stream is readable. More...
 
bool IsWritable () const noexcept
 Checks if the stream is writable. More...
 
bool SetBlocking (bool enable) noexcept
 Enable or disable blocking mode for a stream. More...
 
size_t GetWriteQueueSize () const noexcept
 Gets the amount of queued bytes waiting to be sent. More...
 
uv_stream_tGetRawStream () const noexcept
 Get the underlying stream data structure. More...
 
- Public Member Functions inherited from wpi::uv::Handle
 Handle (const Handle &)=delete
 
 Handle (Handle &&)=delete
 
Handleoperator= (const Handle &)=delete
 
Handleoperator= (Handle &&)=delete
 
virtual ~Handle () noexcept
 
Type GetType () const noexcept
 Get the type of the handle. More...
 
std::string_view GetTypeName () const noexcept
 Get the name of the type of the handle. More...
 
std::shared_ptr< LoopGetLoop () const noexcept
 Get the loop where this handle runs. More...
 
LoopGetLoopRef () const noexcept
 Get the loop where this handle runs. More...
 
bool IsActive () const noexcept
 Check if the handle is active. More...
 
bool IsClosing () const noexcept
 Check if a handle is closing or closed. More...
 
void Close () noexcept
 Request handle to be closed. More...
 
void SetLoopClosing (bool loopClosing) noexcept
 Set if the loop is closing. More...
 
bool IsLoopClosing () const noexcept
 Get the loop closing status. More...
 
void Reference () noexcept
 Reference the given handle. More...
 
void Unreference () noexcept
 Unreference the given handle. More...
 
bool HasReference () const noexcept
 Check if the given handle is referenced. More...
 
size_t RawSize () const noexcept
 Return the size of the underlying handle type. More...
 
uv_handle_tGetRawHandle () const noexcept
 Get the underlying handle data structure. More...
 
void SetBufferAllocator (std::function< Buffer(size_t)> alloc, std::function< void(Buffer &)> dealloc)
 Set the functions used for allocating and releasing buffers. More...
 
void FreeBuf (Buffer &buf) const noexcept
 Free a buffer. More...
 
template<typename T = void>
std::shared_ptr< T > GetData () const
 Gets user-defined data. More...
 
void SetData (std::shared_ptr< void > data)
 Sets user-defined data. More...
 
void ReportError (int err) const
 Report an error. More...
 

Static Public Member Functions

static std::shared_ptr< TtyCreate (Loop &loop, uv_file fd, bool readable)
 Create a TTY handle. More...
 
static std::shared_ptr< TtyCreate (const std::shared_ptr< Loop > &loop, uv_file fd, bool readable)
 Create a TTY handle. More...
 

Additional Inherited Members

- Public Types inherited from wpi::uv::Handle
using Type = uv_handle_type
 
- Public Attributes inherited from wpi::uv::Stream
sig::Signal< Buffer &, size_t > data
 Signal generated when data was read on a stream. More...
 
sig::Signal end
 Signal generated when no more read data is available. More...
 
- Public Attributes inherited from wpi::uv::Handle
sig::Signal< Errorerror
 Error signal. More...
 
sig::Signal closed
 Closed signal. More...
 
- Protected Member Functions inherited from wpi::uv::StreamImpl< Tty, uv_tty_t >
 StreamImpl ()
 
- Protected Member Functions inherited from wpi::uv::Stream
 Stream (uv_stream_t *uv_stream)
 
- Protected Member Functions inherited from wpi::uv::Handle
 Handle (uv_handle_t *uv_handle)
 
void Keep () noexcept
 
void Release () noexcept
 
void ForceClosed () noexcept
 
template<typename F , typename... Args>
bool Invoke (F &&f, Args &&... args) const
 
- Static Protected Member Functions inherited from wpi::uv::Handle
static void AllocBuf (uv_handle_t *handle, size_t size, uv_buf_t *buf)
 
static void DefaultFreeBuf (Buffer &buf)
 

Detailed Description

TTY handle.

TTY handles represent a stream for the console.

Constructor & Destructor Documentation

◆ Tty()

wpi::uv::Tty::Tty ( const private_init &  )
inlineexplicit

◆ ~Tty()

wpi::uv::Tty::~Tty ( )
overridedefaultnoexcept

Member Function Documentation

◆ Create() [1/2]

static std::shared_ptr< Tty > wpi::uv::Tty::Create ( const std::shared_ptr< Loop > &  loop,
uv_file  fd,
bool  readable 
)
inlinestatic

Create a TTY handle.

Parameters
loopLoop object where this handle runs.
fdFile descriptor, usually 0=stdin, 1=stdout, 2=stderr
readableSpecifies if you plan on calling StartRead(). stdin is readable, stdout is not.

◆ Create() [2/2]

static std::shared_ptr< Tty > wpi::uv::Tty::Create ( Loop loop,
uv_file  fd,
bool  readable 
)
static

Create a TTY handle.

Parameters
loopLoop object where this handle runs.
fdFile descriptor, usually 0=stdin, 1=stdout, 2=stderr
readableSpecifies if you plan on calling StartRead(). stdin is readable, stdout is not.

◆ GetWindowSize()

std::pair< int, int > wpi::uv::Tty::GetWindowSize ( )
inline

Gets the current window size.

Returns
Window size (pair of width and height).

◆ ResetMode()

void wpi::uv::Tty::ResetMode ( )
inline

Reset TTY settings to default values for the next process to take over.

Typically called when the program exits.

◆ SetMode()

void wpi::uv::Tty::SetMode ( uv_tty_mode_t  mode)
inline

Set the TTY using the specified terminal mode.

Parameters
modeterminal mode

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