WPILibC++ 2023.4.3
wpi::raw_ostream Class Referenceabstract

This class implements an extremely fast bulk output stream that can only output to a stream. More...

#include </home/runner/work/allwpilib/allwpilib/wpiutil/src/main/native/thirdparty/llvm/include/wpi/raw_ostream.h>

Inheritance diagram for wpi::raw_ostream:
wpi::raw_os_ostream wpi::raw_pwrite_stream wpi::raw_socket_ostream wpi::raw_string_ostream wpi::raw_uv_ostream wpi::raw_fd_ostream wpi::raw_null_ostream wpi::raw_svector_ostream wpi::raw_usvector_ostream wpi::raw_uvector_ostream wpi::raw_vector_ostream wpi::raw_fd_stream wpi::buffer_ostream wpi::buffer_unique_ostream

Public Types

enum class  OStreamKind { OK_OStream , OK_FDStream }
 
enum class  Colors {
  BLACK = 0 , RED , GREEN , YELLOW ,
  BLUE , MAGENTA , CYAN , WHITE ,
  SAVEDCOLOR , RESET
}
 

Public Member Functions

 raw_ostream (bool unbuffered=false, OStreamKind K=OStreamKind::OK_OStream)
 
 raw_ostream (const raw_ostream &)=delete
 
void operator= (const raw_ostream &)=delete
 
virtual ~raw_ostream ()
 
uint64_t tell () const
 tell - Return the current offset with the file. More...
 
OStreamKind get_kind () const
 
virtual void reserveExtraSpace (uint64_t ExtraSize)
 If possible, pre-allocate ExtraSize bytes for stream data. More...
 
void SetBuffered ()
 Set the stream to be buffered, with an automatically determined buffer size. More...
 
void SetBufferSize (size_t Size)
 Set the stream to be buffered, using the specified buffer size. More...
 
size_t GetBufferSize () const
 
void SetUnbuffered ()
 Set the stream to be unbuffered. More...
 
size_t GetNumBytesInBuffer () const
 
void flush ()
 
raw_ostreamoperator<< (char C)
 
raw_ostreamoperator<< (unsigned char C)
 
raw_ostreamoperator<< (signed char C)
 
raw_ostreamoperator<< (std::span< const uint8_t > Arr)
 
raw_ostreamoperator<< (std::string_view Str)
 
raw_ostreamoperator<< (const char *Str)
 
raw_ostreamoperator<< (const std::string &Str)
 
raw_ostreamoperator<< (const SmallVectorImpl< char > &Str)
 
raw_ostreamoperator<< (const std::vector< uint8_t > &Arr)
 
raw_ostreamoperator<< (const SmallVectorImpl< uint8_t > &Arr)
 
raw_ostreamwrite_escaped (std::string_view Str, bool UseHexEscapes=false)
 Output Str, turning '\', '\t', '
', '"', and anything that doesn't satisfy wpi::isPrint into an escape sequence. More...
 
raw_ostreamwrite (unsigned char C)
 
raw_ostreamwrite (const char *Ptr, size_t Size)
 
raw_ostreamwrite (const uint8_t *Ptr, size_t Size)
 
raw_ostreamindent (unsigned NumSpaces)
 indent - Insert 'NumSpaces' spaces. More...
 
raw_ostreamwrite_zeros (unsigned NumZeros)
 write_zeros - Insert 'NumZeros' nulls. More...
 
virtual raw_ostreamchangeColor (enum Colors Color, bool Bold=false, bool BG=false)
 Changes the foreground color of text that will be output from this point forward. More...
 
virtual raw_ostreamresetColor ()
 Resets the colors to terminal defaults. More...
 
virtual raw_ostreamreverseColor ()
 Reverses the foreground and background colors. More...
 
virtual bool is_displayed () const
 This function determines if this stream is connected to a "tty" or "console" window. More...
 
virtual bool has_colors () const
 This function determines if this stream is displayed and supports colors. More...
 
virtual void enable_colors (bool)
 
bool colors_enabled () const
 
void tie (raw_ostream *TieTo)
 Tie this stream to the specified stream. More...
 

Static Public Attributes

static constexpr Colors BLACK = Colors::BLACK
 
static constexpr Colors RED = Colors::RED
 
static constexpr Colors GREEN = Colors::GREEN
 
static constexpr Colors YELLOW = Colors::YELLOW
 
static constexpr Colors BLUE = Colors::BLUE
 
static constexpr Colors MAGENTA = Colors::MAGENTA
 
static constexpr Colors CYAN = Colors::CYAN
 
static constexpr Colors WHITE = Colors::WHITE
 
static constexpr Colors SAVEDCOLOR = Colors::SAVEDCOLOR
 
static constexpr Colors RESET = Colors::RESET
 

Protected Member Functions

void SetBuffer (char *BufferStart, size_t Size)
 Use the provided buffer as the raw_ostream buffer. More...
 
virtual size_t preferred_buffer_size () const
 Return an efficient buffer size for the underlying output mechanism. More...
 
const char * getBufferStart () const
 Return the beginning of the current stream buffer, or 0 if the stream is unbuffered. More...
 

Detailed Description

This class implements an extremely fast bulk output stream that can only output to a stream.

It does not support seeking, reopening, rewinding, line buffered disciplines etc. It is a simple buffer that outputs a chunk at a time.

Member Enumeration Documentation

◆ Colors

enum class wpi::raw_ostream::Colors
strong
Enumerator
BLACK 
RED 
GREEN 
YELLOW 
BLUE 
MAGENTA 
CYAN 
WHITE 
SAVEDCOLOR 
RESET 

◆ OStreamKind

enum class wpi::raw_ostream::OStreamKind
strong
Enumerator
OK_OStream 
OK_FDStream 

Constructor & Destructor Documentation

◆ raw_ostream() [1/2]

wpi::raw_ostream::raw_ostream ( bool  unbuffered = false,
OStreamKind  K = OStreamKind::OK_OStream 
)
inlineexplicit

◆ raw_ostream() [2/2]

wpi::raw_ostream::raw_ostream ( const raw_ostream )
delete

◆ ~raw_ostream()

virtual wpi::raw_ostream::~raw_ostream ( )
virtual

Member Function Documentation

◆ changeColor()

virtual raw_ostream & wpi::raw_ostream::changeColor ( enum Colors  Color,
bool  Bold = false,
bool  BG = false 
)
inlinevirtual

Changes the foreground color of text that will be output from this point forward.

Parameters
ColorANSI color to use, the special SAVEDCOLOR can be used to change only the bold attribute, and keep colors untouched
Boldbold/brighter text, default false
BGif true change the background, default: change foreground
Returns
itself so it can be used within << invocations

◆ colors_enabled()

bool wpi::raw_ostream::colors_enabled ( ) const
inline

◆ enable_colors()

virtual void wpi::raw_ostream::enable_colors ( bool  )
inlinevirtual

◆ flush()

void wpi::raw_ostream::flush ( )
inline

◆ get_kind()

OStreamKind wpi::raw_ostream::get_kind ( ) const
inline

◆ GetBufferSize()

size_t wpi::raw_ostream::GetBufferSize ( ) const
inline

◆ getBufferStart()

const char * wpi::raw_ostream::getBufferStart ( ) const
inlineprotected

Return the beginning of the current stream buffer, or 0 if the stream is unbuffered.

◆ GetNumBytesInBuffer()

size_t wpi::raw_ostream::GetNumBytesInBuffer ( ) const
inline

◆ has_colors()

virtual bool wpi::raw_ostream::has_colors ( ) const
inlinevirtual

This function determines if this stream is displayed and supports colors.

The result is unaffected by calls to enable_color().

◆ indent()

raw_ostream & wpi::raw_ostream::indent ( unsigned  NumSpaces)

indent - Insert 'NumSpaces' spaces.

◆ is_displayed()

virtual bool wpi::raw_ostream::is_displayed ( ) const
inlinevirtual

This function determines if this stream is connected to a "tty" or "console" window.

That is, the output would be displayed to the user rather than being put on a pipe or stored in a file.

◆ operator<<() [1/10]

raw_ostream & wpi::raw_ostream::operator<< ( char  C)
inline

◆ operator<<() [2/10]

raw_ostream & wpi::raw_ostream::operator<< ( const char *  Str)
inline

◆ operator<<() [3/10]

raw_ostream & wpi::raw_ostream::operator<< ( const SmallVectorImpl< char > &  Str)
inline

◆ operator<<() [4/10]

raw_ostream & wpi::raw_ostream::operator<< ( const SmallVectorImpl< uint8_t > &  Arr)
inline

◆ operator<<() [5/10]

raw_ostream & wpi::raw_ostream::operator<< ( const std::string &  Str)
inline

◆ operator<<() [6/10]

raw_ostream & wpi::raw_ostream::operator<< ( const std::vector< uint8_t > &  Arr)
inline

◆ operator<<() [7/10]

raw_ostream & wpi::raw_ostream::operator<< ( signed char  C)
inline

◆ operator<<() [8/10]

raw_ostream & wpi::raw_ostream::operator<< ( std::span< const uint8_t >  Arr)
inline

◆ operator<<() [9/10]

raw_ostream & wpi::raw_ostream::operator<< ( std::string_view  Str)
inline

◆ operator<<() [10/10]

raw_ostream & wpi::raw_ostream::operator<< ( unsigned char  C)
inline

◆ operator=()

void wpi::raw_ostream::operator= ( const raw_ostream )
delete

◆ preferred_buffer_size()

virtual size_t wpi::raw_ostream::preferred_buffer_size ( ) const
protectedvirtual

Return an efficient buffer size for the underlying output mechanism.

◆ reserveExtraSpace()

virtual void wpi::raw_ostream::reserveExtraSpace ( uint64_t  ExtraSize)
inlinevirtual

If possible, pre-allocate ExtraSize bytes for stream data.

i.e. it extends internal buffers to keep additional ExtraSize bytes. So that the stream could keep at least tell() + ExtraSize bytes without re-allocations. reserveExtraSpace() does not change the size/data of the stream.

Reimplemented in wpi::raw_string_ostream, and wpi::raw_svector_ostream.

◆ resetColor()

virtual raw_ostream & wpi::raw_ostream::resetColor ( )
inlinevirtual

Resets the colors to terminal defaults.

Call this when you are done outputting colored text, or before program exit.

◆ reverseColor()

virtual raw_ostream & wpi::raw_ostream::reverseColor ( )
inlinevirtual

Reverses the foreground and background colors.

◆ SetBuffer()

void wpi::raw_ostream::SetBuffer ( char *  BufferStart,
size_t  Size 
)
inlineprotected

Use the provided buffer as the raw_ostream buffer.

This is intended for use only by subclasses which can arrange for the output to go directly into the desired output buffer, instead of being copied on each flush.

◆ SetBuffered()

void wpi::raw_ostream::SetBuffered ( )

Set the stream to be buffered, with an automatically determined buffer size.

◆ SetBufferSize()

void wpi::raw_ostream::SetBufferSize ( size_t  Size)
inline

Set the stream to be buffered, using the specified buffer size.

◆ SetUnbuffered()

void wpi::raw_ostream::SetUnbuffered ( )
inline

Set the stream to be unbuffered.

When unbuffered, the stream will flush after every write. This routine will also flush the buffer immediately when the stream is being set to unbuffered.

◆ tell()

uint64_t wpi::raw_ostream::tell ( ) const
inline

tell - Return the current offset with the file.

◆ tie()

void wpi::raw_ostream::tie ( raw_ostream TieTo)
inline

Tie this stream to the specified stream.

Replaces any existing tied-to stream. Specifying a nullptr unties the stream.

◆ write() [1/3]

raw_ostream & wpi::raw_ostream::write ( const char *  Ptr,
size_t  Size 
)

◆ write() [2/3]

raw_ostream & wpi::raw_ostream::write ( const uint8_t *  Ptr,
size_t  Size 
)
inline

◆ write() [3/3]

raw_ostream & wpi::raw_ostream::write ( unsigned char  C)

◆ write_escaped()

raw_ostream & wpi::raw_ostream::write_escaped ( std::string_view  Str,
bool  UseHexEscapes = false 
)

Output Str, turning '\', '\t', '
', '"', and anything that doesn't satisfy wpi::isPrint into an escape sequence.

◆ write_zeros()

raw_ostream & wpi::raw_ostream::write_zeros ( unsigned  NumZeros)

write_zeros - Insert 'NumZeros' nulls.

Member Data Documentation

◆ BLACK

constexpr Colors wpi::raw_ostream::BLACK = Colors::BLACK
staticconstexpr

◆ BLUE

constexpr Colors wpi::raw_ostream::BLUE = Colors::BLUE
staticconstexpr

◆ CYAN

constexpr Colors wpi::raw_ostream::CYAN = Colors::CYAN
staticconstexpr

◆ GREEN

constexpr Colors wpi::raw_ostream::GREEN = Colors::GREEN
staticconstexpr

◆ MAGENTA

constexpr Colors wpi::raw_ostream::MAGENTA = Colors::MAGENTA
staticconstexpr

◆ RED

constexpr Colors wpi::raw_ostream::RED = Colors::RED
staticconstexpr

◆ RESET

constexpr Colors wpi::raw_ostream::RESET = Colors::RESET
staticconstexpr

◆ SAVEDCOLOR

constexpr Colors wpi::raw_ostream::SAVEDCOLOR = Colors::SAVEDCOLOR
staticconstexpr

◆ WHITE

constexpr Colors wpi::raw_ostream::WHITE = Colors::WHITE
staticconstexpr

◆ YELLOW

constexpr Colors wpi::raw_ostream::YELLOW = Colors::YELLOW
staticconstexpr

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