LLVM 22.0.0git
|
Adaptor to create a stream class that proxies another raw_ostream. More...
#include "llvm/Support/raw_ostream_proxy.h"
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_ostream & | getProxiedOS () 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_ostream & | operator<< (char C) |
raw_ostream & | operator<< (unsigned char C) |
raw_ostream & | operator<< (signed char C) |
raw_ostream & | operator<< (StringRef Str) |
raw_ostream & | operator<< (const char *Str) |
raw_ostream & | operator<< (const std::string &Str) |
raw_ostream & | operator<< (const std::string_view &Str) |
raw_ostream & | operator<< (const SmallVectorImpl< char > &Str) |
raw_ostream & | operator<< (unsigned long N) |
raw_ostream & | operator<< (long N) |
raw_ostream & | operator<< (unsigned long long N) |
raw_ostream & | operator<< (long long N) |
raw_ostream & | operator<< (const void *P) |
raw_ostream & | operator<< (unsigned int N) |
raw_ostream & | operator<< (int N) |
raw_ostream & | operator<< (double N) |
raw_ostream & | write_hex (unsigned long long N) |
Output N in hexadecimal, without any prefix or padding. | |
raw_ostream & | operator<< (Colors C) |
raw_ostream & | write_uuid (const uuid_t UUID) |
raw_ostream & | write_escaped (StringRef Str, bool UseHexEscapes=false) |
Output Str , turning '\', '\t', '', '"', and anything that doesn't satisfy llvm::isPrint into an escape sequence. | |
raw_ostream & | write (unsigned char C) |
raw_ostream & | write (const char *Ptr, size_t Size) |
raw_ostream & | operator<< (const format_object_base &Fmt) |
raw_ostream & | operator<< (const FormattedString &) |
raw_ostream & | operator<< (const FormattedNumber &) |
raw_ostream & | operator<< (const formatv_object_base &) |
raw_ostream & | operator<< (const FormattedBytes &) |
raw_ostream & | indent (unsigned NumSpaces) |
indent - Insert 'NumSpaces' spaces. | |
raw_ostream & | write_zeros (unsigned NumZeros) |
write_zeros - Insert 'NumZeros' nulls. | |
virtual raw_ostream & | changeColor (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_ostream & | resetColor () |
Resets the colors to terminal defaults. | |
virtual raw_ostream & | reverseColor () |
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 char * | getBufferStart () 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 |
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.
|
inlineoverride |
Definition at line 60 of file raw_ostream_proxy.h.
|
inlineexplicitprotected |
Definition at line 64 of file raw_ostream_proxy.h.
Referenced by llvm::raw_ostream_proxy::raw_ostream_proxy().
|
inlineoverridevirtual |
Reimplemented from llvm::raw_ostream.
Definition at line 49 of file raw_ostream_proxy.h.
|
inline |
Definition at line 58 of file raw_ostream_proxy.h.
|
inline |
Definition at line 54 of file raw_ostream_proxy.h.
Referenced by llvm::raw_ostream_proxy_adaptor< RawPwriteStreamT >::enable_colors(), llvm::raw_ostream_proxy_adaptor< RawPwriteStreamT >::has_colors(), llvm::raw_ostream_proxy_adaptor< RawPwriteStreamT >::is_displayed(), and llvm::raw_ostream_proxy_adaptor< RawPwriteStreamT >::reserveExtraSpace().
|
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.
|
inline |
Definition at line 53 of file raw_ostream_proxy.h.
|
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.
|
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.
|
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().