LLVM 20.0.0git
Public Member Functions | Static Public Attributes | List of all members
llvm::circular_raw_ostream Class Reference

circular_raw_ostream - A raw_ostream which can save its data to a circular buffer, or can pass it through directly to an underlying stream if specified with a buffer of zero. More...

#include "llvm/Support/circular_raw_ostream.h"

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

Public Member Functions

 circular_raw_ostream (raw_ostream &Stream, const char *Header, size_t BuffSize=0, bool Owns=REFERENCE_ONLY)
 circular_raw_ostream - Construct an optionally circular-buffered stream, handing it an underlying stream to do the "real" output.
 
 ~circular_raw_ostream () override
 
bool is_displayed () const override
 This function determines if this stream is connected to a "tty" or "console" window.
 
void setStream (raw_ostream &Stream, bool Owns=REFERENCE_ONLY)
 setStream - Tell the circular_raw_ostream to output a different stream.
 
void flushBufferWithBanner ()
 flushBufferWithBanner - Force output of the buffer along with a small header.
 
- 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
 

Static Public Attributes

static constexpr bool TAKE_OWNERSHIP = true
 TAKE_OWNERSHIP - Tell this stream that it owns the underlying stream and is responsible for cleanup, memory management issues, etc.
 
static constexpr bool REFERENCE_ONLY = false
 REFERENCE_ONLY - Tell this stream it should not manage the held stream.
 
- 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
 

Additional Inherited Members

- Public Types inherited from llvm::raw_ostream
enum class  OStreamKind { OK_OStream , OK_FDStream , OK_SVecStream }
 
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.
 
- 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

circular_raw_ostream - A raw_ostream which can save its data to a circular buffer, or can pass it through directly to an underlying stream if specified with a buffer of zero.

Definition at line 24 of file circular_raw_ostream.h.

Constructor & Destructor Documentation

◆ circular_raw_ostream()

llvm::circular_raw_ostream::circular_raw_ostream ( raw_ostream Stream,
const char Header,
size_t  BuffSize = 0,
bool  Owns = REFERENCE_ONLY 
)
inline

circular_raw_ostream - Construct an optionally circular-buffered stream, handing it an underlying stream to do the "real" output.

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

"Owns" tells the circular_raw_ostream whether it is responsible for managing the held stream, doing memory management of it, etc.

Definition at line 107 of file circular_raw_ostream.h.

References setStream().

◆ ~circular_raw_ostream()

llvm::circular_raw_ostream::~circular_raw_ostream ( )
inlineoverride

Definition at line 117 of file circular_raw_ostream.h.

References llvm::raw_ostream::flush(), and flushBufferWithBanner().

Member Function Documentation

◆ flushBufferWithBanner()

void circular_raw_ostream::flushBufferWithBanner ( )

flushBufferWithBanner - Force output of the buffer along with a small header.

Definition at line 38 of file circular_raw_ostream.cpp.

References llvm::raw_ostream::write().

Referenced by debug_user_sig_handler(), and ~circular_raw_ostream().

◆ is_displayed()

bool llvm::circular_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 124 of file circular_raw_ostream.h.

References llvm::raw_ostream::is_displayed().

◆ setStream()

void llvm::circular_raw_ostream::setStream ( raw_ostream Stream,
bool  Owns = REFERENCE_ONLY 
)
inline

setStream - Tell the circular_raw_ostream to output a different stream.

"Owns" tells circular_raw_ostream whether it should take responsibility for managing the underlying stream.

Definition at line 133 of file circular_raw_ostream.h.

Referenced by circular_raw_ostream().

Member Data Documentation

◆ REFERENCE_ONLY

constexpr bool llvm::circular_raw_ostream::REFERENCE_ONLY = false
staticconstexpr

REFERENCE_ONLY - Tell this stream it should not manage the held stream.

Definition at line 35 of file circular_raw_ostream.h.

◆ TAKE_OWNERSHIP

constexpr bool llvm::circular_raw_ostream::TAKE_OWNERSHIP = true
staticconstexpr

TAKE_OWNERSHIP - Tell this stream that it owns the underlying stream and is responsible for cleanup, memory management issues, etc.

Definition at line 30 of file circular_raw_ostream.h.


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