LLVM 22.0.0git
llvm::raw_ostream_proxy_adaptor< RawOstreamT > Class Template Reference

Adaptor to create a stream class that proxies another raw_ostream. More...

#include "llvm/Support/raw_ostream_proxy.h"

Inheritance diagram for llvm::raw_ostream_proxy_adaptor< RawOstreamT >:
[legend]

Public Member Functions

void reserveExtraSpace (uint64_t ExtraSize) override
 If possible, pre-allocate ExtraSize bytes for stream data.
bool is_displayed () const override
 This function determines if this stream is connected to a "tty" or "console" window.
bool has_colors () const override
 This function determines if this stream is displayed and supports colors.
void enable_colors (bool enable) override
bool hasProxiedOS () const
raw_ostreamgetProxiedOS () const
size_t getPreferredBufferSize () const
 ~raw_ostream_proxy_adaptor () override
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
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.
bool colors_enabled () const

Protected Member Functions

template<class... ArgsT>
 raw_ostream_proxy_adaptor (raw_ostream &OS, ArgsT &&...Args)
void resetProxiedOS ()
 Stop proxying the stream.
Protected Member Functions inherited from llvm::raw_ostream
void SetBuffer (char *BufferStart, size_t Size)
 Use the provided buffer as the raw_ostream buffer.
const chargetBufferStart () const
 Return the beginning of the current stream buffer, or 0 if the stream is unbuffered.

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.
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

Detailed Description

template<class RawOstreamT = raw_ostream>
class llvm::raw_ostream_proxy_adaptor< RawOstreamT >

Adaptor to create a stream class that proxies another raw_ostream.

Use raw_ostream_proxy_adaptor<> directly to implement an abstract derived class of raw_ostream as a proxy. Otherwise use raw_ostream_proxy.

Most operations are forwarded to the proxied stream.

If the proxied stream is buffered, the buffer is dropped and moved to this stream. This allows flush() to work correctly, flushing immediately from the proxy through to the final stream, and avoids any wasteful double-buffering.

enable_colors() changes both the proxied stream and the proxy itself. is_displayed() and has_colors() are forwarded to the proxy. changeColor(), resetColor(), and reverseColor() are not forwarded, since they need to call flush() and the buffer lives in the proxy.

Definition at line 34 of file raw_ostream_proxy.h.

Constructor & Destructor Documentation

◆ ~raw_ostream_proxy_adaptor()

template<class RawOstreamT = raw_ostream>
llvm::raw_ostream_proxy_adaptor< RawOstreamT >::~raw_ostream_proxy_adaptor ( )
inlineoverride

Definition at line 60 of file raw_ostream_proxy.h.

◆ raw_ostream_proxy_adaptor()

template<class RawOstreamT = raw_ostream>
template<class... ArgsT>
llvm::raw_ostream_proxy_adaptor< RawOstreamT >::raw_ostream_proxy_adaptor ( raw_ostream & OS,
ArgsT &&... Args )
inlineexplicitprotected

Definition at line 64 of file raw_ostream_proxy.h.

Referenced by llvm::raw_ostream_proxy::raw_ostream_proxy().

Member Function Documentation

◆ enable_colors()

template<class RawOstreamT = raw_ostream>
void llvm::raw_ostream_proxy_adaptor< RawOstreamT >::enable_colors ( bool enable)
inlineoverridevirtual

Reimplemented from llvm::raw_ostream.

Definition at line 49 of file raw_ostream_proxy.h.

◆ getPreferredBufferSize()

template<class RawOstreamT = raw_ostream>
size_t llvm::raw_ostream_proxy_adaptor< RawOstreamT >::getPreferredBufferSize ( ) const
inline

Definition at line 58 of file raw_ostream_proxy.h.

◆ getProxiedOS()

◆ has_colors()

template<class RawOstreamT = raw_ostream>
bool llvm::raw_ostream_proxy_adaptor< RawOstreamT >::has_colors ( ) const
inlineoverridevirtual

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

The result is unaffected by calls to enable_color().

Reimplemented from llvm::raw_ostream.

Definition at line 48 of file raw_ostream_proxy.h.

◆ hasProxiedOS()

template<class RawOstreamT = raw_ostream>
bool llvm::raw_ostream_proxy_adaptor< RawOstreamT >::hasProxiedOS ( ) const
inline

Definition at line 53 of file raw_ostream_proxy.h.

◆ is_displayed()

template<class RawOstreamT = raw_ostream>
bool llvm::raw_ostream_proxy_adaptor< RawOstreamT >::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 47 of file raw_ostream_proxy.h.

◆ reserveExtraSpace()

template<class RawOstreamT = raw_ostream>
void llvm::raw_ostream_proxy_adaptor< RawOstreamT >::reserveExtraSpace ( uint64_t ExtraSize)
inlineoverridevirtual

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 from llvm::raw_ostream.

Definition at line 44 of file raw_ostream_proxy.h.

◆ resetProxiedOS()

template<class RawOstreamT = raw_ostream>
void llvm::raw_ostream_proxy_adaptor< RawOstreamT >::resetProxiedOS ( )
inlineprotected

Stop proxying the stream.

Flush and set up a crash for future writes.

For example, this can simplify logic when a subclass might have a longer lifetime than the stream it proxies.

Definition at line 76 of file raw_ostream_proxy.h.

Referenced by llvm::raw_ostream_proxy_adaptor< RawPwriteStreamT >::~raw_ostream_proxy_adaptor().


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