LLVM 19.0.0git
Public Member Functions | List of all members
llvm::formatted_raw_ostream Class Reference

formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column position, allowing padding out to specific column boundaries and querying the number of lines written to the stream. More...

#include "llvm/Support/FormattedStream.h"

Inheritance diagram for llvm::formatted_raw_ostream:
Inheritance graph
[legend]

Public Member Functions

 formatted_raw_ostream (raw_ostream &Stream)
 formatted_raw_ostream - Open the specified file for writing.
 
 formatted_raw_ostream ()
 
 ~formatted_raw_ostream () override
 
formatted_raw_ostreamPadToColumn (unsigned NewCol)
 PadToColumn - Align the output to some column number.
 
unsigned getColumn ()
 
unsigned getLine ()
 
raw_ostreamresetColor () override
 Resets the colors to terminal defaults.
 
raw_ostreamreverseColor () override
 Reverses the foreground and background colors.
 
raw_ostreamchangeColor (enum Colors Color, bool Bold, bool BG) override
 Changes the foreground color of text that will be output from this point forward.
 
bool is_displayed () const override
 This function determines if this stream is connected to a "tty" or "console" window.
 
- Public Member Functions inherited from llvm::raw_ostream
 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.
 
OStreamKind get_kind () const
 
virtual void reserveExtraSpace (uint64_t ExtraSize)
 If possible, pre-allocate ExtraSize bytes for stream data.
 
void SetBuffered ()
 Set the stream to be buffered, with an automatically determined buffer size.
 
void SetBufferSize (size_t Size)
 Set the stream to be buffered, using the specified buffer size.
 
size_t GetBufferSize () const
 
void SetUnbuffered ()
 Set the stream to be unbuffered.
 
size_t GetNumBytesInBuffer () const
 
void flush ()
 
raw_ostreamoperator<< (char C)
 
raw_ostreamoperator<< (unsigned char C)
 
raw_ostreamoperator<< (signed char C)
 
raw_ostreamoperator<< (StringRef Str)
 
raw_ostreamoperator<< (const char *Str)
 
raw_ostreamoperator<< (const std::string &Str)
 
raw_ostreamoperator<< (const std::string_view &Str)
 
raw_ostreamoperator<< (const SmallVectorImpl< char > &Str)
 
raw_ostreamoperator<< (unsigned long N)
 
raw_ostreamoperator<< (long N)
 
raw_ostreamoperator<< (unsigned long long N)
 
raw_ostreamoperator<< (long long N)
 
raw_ostreamoperator<< (const void *P)
 
raw_ostreamoperator<< (unsigned int N)
 
raw_ostreamoperator<< (int N)
 
raw_ostreamoperator<< (double N)
 
raw_ostreamwrite_hex (unsigned long long N)
 Output N in hexadecimal, without any prefix or padding.
 
raw_ostreamoperator<< (Colors C)
 
raw_ostreamwrite_uuid (const uuid_t UUID)
 
raw_ostreamwrite_escaped (StringRef Str, bool UseHexEscapes=false)
 Output Str, turning '\', '\t', '
', '"', and anything that doesn't satisfy llvm::isPrint into an escape sequence.
 
raw_ostreamwrite (unsigned char C)
 
raw_ostreamwrite (const char *Ptr, size_t Size)
 
raw_ostreamoperator<< (const format_object_base &Fmt)
 
raw_ostreamoperator<< (const FormattedString &)
 
raw_ostreamoperator<< (const FormattedNumber &)
 
raw_ostreamoperator<< (const formatv_object_base &)
 
raw_ostreamoperator<< (const FormattedBytes &)
 
raw_ostreamindent (unsigned NumSpaces)
 indent - Insert 'NumSpaces' spaces.
 
raw_ostreamwrite_zeros (unsigned NumZeros)
 write_zeros - Insert 'NumZeros' nulls.
 
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.
 
virtual raw_ostreamresetColor ()
 Resets the colors to terminal defaults.
 
virtual raw_ostreamreverseColor ()
 Reverses the foreground and background colors.
 
virtual bool is_displayed () const
 This function determines if this stream is connected to a "tty" or "console" window.
 
virtual bool has_colors () const
 This function determines if this stream is displayed and supports colors.
 
virtual void enable_colors (bool enable)
 
bool colors_enabled () const
 
void tie (raw_ostream *TieTo)
 Tie this stream to the specified stream.
 

Additional Inherited Members

- Public Types inherited from llvm::raw_ostream
enum class  OStreamKind { OK_OStream , OK_FDStream }
 
enum class  Colors {
  BLACK = 0 , RED , GREEN , YELLOW ,
  BLUE , MAGENTA , CYAN , WHITE ,
  BRIGHT_BLACK , BRIGHT_RED , BRIGHT_GREEN , BRIGHT_YELLOW ,
  BRIGHT_BLUE , BRIGHT_MAGENTA , BRIGHT_CYAN , BRIGHT_WHITE ,
  SAVEDCOLOR , RESET
}
 
using uuid_t = uint8_t[16]
 Output a formatted UUID with dash separators.
 
- Static Public Attributes inherited from llvm::raw_ostream
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 BRIGHT_BLACK = Colors::BRIGHT_BLACK
 
static constexpr Colors BRIGHT_RED = Colors::BRIGHT_RED
 
static constexpr Colors BRIGHT_GREEN = Colors::BRIGHT_GREEN
 
static constexpr Colors BRIGHT_YELLOW = Colors::BRIGHT_YELLOW
 
static constexpr Colors BRIGHT_BLUE = Colors::BRIGHT_BLUE
 
static constexpr Colors BRIGHT_MAGENTA = Colors::BRIGHT_MAGENTA
 
static constexpr Colors BRIGHT_CYAN = Colors::BRIGHT_CYAN
 
static constexpr Colors BRIGHT_WHITE = Colors::BRIGHT_WHITE
 
static constexpr Colors SAVEDCOLOR = Colors::SAVEDCOLOR
 
static constexpr Colors RESET = Colors::RESET
 
- Protected Member Functions inherited from llvm::raw_ostream
void SetBuffer (char *BufferStart, size_t Size)
 Use the provided buffer as the raw_ostream buffer.
 
virtual size_t preferred_buffer_size () const
 Return an efficient buffer size for the underlying output mechanism.
 
const chargetBufferStart () const
 Return the beginning of the current stream buffer, or 0 if the stream is unbuffered.
 

Detailed Description

formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column position, allowing padding out to specific column boundaries and querying the number of lines written to the stream.

This assumes that the contents of the stream is valid UTF-8 encoded text. This doesn't attempt to handle everything Unicode can do (combining characters, right-to-left markers, etc), but should cover the cases likely to appear in source code or diagnostic messages.

Definition at line 30 of file FormattedStream.h.

Constructor & Destructor Documentation

◆ formatted_raw_ostream() [1/2]

llvm::formatted_raw_ostream::formatted_raw_ostream ( raw_ostream Stream)
inline

formatted_raw_ostream - Open the specified file for writing.

If an error occurs, information about the error is put into ErrorInfo, and the stream should be immediately destroyed; the string will be empty if no error occurred.

As a side effect, the given Stream is set to be Unbuffered. This is because formatted_raw_ostream does its own buffering, so it doesn't want another layer of buffering to be happening underneath it.

Definition at line 106 of file FormattedStream.h.

◆ formatted_raw_ostream() [2/2]

llvm::formatted_raw_ostream::formatted_raw_ostream ( )
inlineexplicit

Definition at line 110 of file FormattedStream.h.

◆ ~formatted_raw_ostream()

llvm::formatted_raw_ostream::~formatted_raw_ostream ( )
inlineoverride

Definition at line 114 of file FormattedStream.h.

References llvm::raw_ostream::flush().

Member Function Documentation

◆ changeColor()

raw_ostream & llvm::formatted_raw_ostream::changeColor ( enum Colors  Color,
bool  Bold,
bool  BG 
)
inlineoverridevirtual

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

Reimplemented from llvm::raw_ostream.

Definition at line 148 of file FormattedStream.h.

References llvm::raw_ostream::changeColor().

◆ getColumn()

unsigned llvm::formatted_raw_ostream::getColumn ( )
inline

◆ getLine()

unsigned llvm::formatted_raw_ostream::getLine ( )
inline

◆ is_displayed()

bool llvm::formatted_raw_ostream::is_displayed ( ) const
inlineoverridevirtual

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.

Reimplemented from llvm::raw_ostream.

Definition at line 153 of file FormattedStream.h.

References llvm::raw_ostream::is_displayed().

◆ PadToColumn()

formatted_raw_ostream & formatted_raw_ostream::PadToColumn ( unsigned  NewCol)

PadToColumn - Align the output to some column number.

If the current column is already equal to or more than NewCol, PadToColumn inserts one space.

Parameters
NewCol- The column to move to.
NewCol- The column to move to.

Definition at line 115 of file FormattedStream.cpp.

References llvm::raw_ostream::getBufferStart(), getColumn(), llvm::raw_ostream::GetNumBytesInBuffer(), and llvm::raw_ostream::indent().

Referenced by emitComments().

◆ resetColor()

raw_ostream & llvm::formatted_raw_ostream::resetColor ( )
inlineoverridevirtual

Resets the colors to terminal defaults.

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

Reimplemented from llvm::raw_ostream.

Definition at line 138 of file FormattedStream.h.

References llvm::raw_ostream::resetColor().

◆ reverseColor()

raw_ostream & llvm::formatted_raw_ostream::reverseColor ( )
inlineoverridevirtual

Reverses the foreground and background colors.

Reimplemented from llvm::raw_ostream.

Definition at line 143 of file FormattedStream.h.

References llvm::raw_ostream::reverseColor().


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