LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::raw_fd_ostream Class Reference

A raw_ostream that writes to a file descriptor. More...

#include "llvm/Support/raw_ostream.h"

Inheritance diagram for llvm::raw_fd_ostream:
Inheritance graph
[legend]
Collaboration diagram for llvm::raw_fd_ostream:
Collaboration graph
[legend]

Public Member Functions

 raw_fd_ostream (StringRef Filename, std::error_code &EC, sys::fs::OpenFlags Flags)
 Open the specified file for writing. More...
 
 raw_fd_ostream (int fd, bool shouldClose, bool unbuffered=false)
 FD is the file descriptor that this writes to. More...
 
 ~raw_fd_ostream () override
 
void close ()
 Manually flush the stream and close the file. More...
 
bool supportsSeeking ()
 
uint64_t seek (uint64_t off)
 Flushes the stream and repositions the underlying file descriptor position to the offset specified from the beginning of the file. More...
 
raw_ostreamchangeColor (enum Colors colors, bool bold=false, bool bg=false) override
 Changes the foreground color of text that will be output from this point forward. More...
 
raw_ostreamresetColor () override
 Resets the colors to terminal defaults. More...
 
raw_ostreamreverseColor () override
 Reverses the foreground and background colors. More...
 
bool is_displayed () const override
 This function determines if this stream is connected to a "tty" or "console" window. More...
 
bool has_colors () const override
 This function determines if this stream is displayed and supports colors. More...
 
bool has_error () const
 Return the value of the flag in this raw_fd_ostream indicating whether an output error has been encountered. More...
 
void clear_error ()
 Set the flag read by has_error() to false. More...
 
- Public Member Functions inherited from llvm::raw_pwrite_stream
 raw_pwrite_stream (bool Unbuffered=false)
 
void pwrite (const char *Ptr, size_t Size, uint64_t Offset)
 
- Public Member Functions inherited from llvm::raw_ostream
 raw_ostream (bool unbuffered=false)
 
 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...
 
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<< (StringRef Str)
 
raw_ostreamoperator<< (const char *Str)
 
raw_ostreamoperator<< (const std::string &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. More...
 
raw_ostreamwrite_escaped (StringRef Str, bool UseHexEscapes=false)
 Output Str, turning '\', '', '
', '"', and anything that doesn't satisfy std::isprint into an escape sequence. More...
 
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. More...
 

Additional Inherited Members

- Public Types inherited from llvm::raw_ostream
enum  Colors {
  BLACK = 0, RED, GREEN, YELLOW,
  BLUE, MAGENTA, CYAN, WHITE,
  SAVEDCOLOR
}
 
- Protected Member Functions inherited from llvm::raw_ostream
void SetBuffer (char *BufferStart, size_t Size)
 Use the provided buffer as the raw_ostream buffer. More...
 
const chargetBufferStart () const
 Return the beginning of the current stream buffer, or 0 if the stream is unbuffered. More...
 

Detailed Description

A raw_ostream that writes to a file descriptor.

Definition at line 357 of file raw_ostream.h.

Constructor & Destructor Documentation

◆ raw_fd_ostream() [1/2]

raw_fd_ostream::raw_fd_ostream ( StringRef  Filename,
std::error_code &  EC,
sys::fs::OpenFlags  Flags 
)

Open the specified file for writing.

If an error occurs, information about the error is put into EC, and the stream should be immediately destroyed; Flags allows optional flags to control how the file will be opened.

As a special case, if Filename is "-", then the stream will use STDOUT_FILENO instead of opening a file. Note that it will still consider itself to own the file descriptor. In particular, it will close the file descriptor when it is done (this is necessary to detect output errors).

Definition at line 503 of file raw_ostream.cpp.

◆ raw_fd_ostream() [2/2]

raw_fd_ostream::raw_fd_ostream ( int  fd,
bool  shouldClose,
bool  unbuffered = false 
)

FD is the file descriptor that this writes to.

If ShouldClose is true, this closes the file when the stream is destroyed.

Definition at line 509 of file raw_ostream.cpp.

References llvm::sys::fs::regular_file, llvm::sys::fs::status(), and llvm::sys::fs::file_status::type().

◆ ~raw_fd_ostream()

raw_fd_ostream::~raw_fd_ostream ( )
override

Member Function Documentation

◆ changeColor()

raw_ostream & raw_fd_ostream::changeColor ( enum Colors  Color,
bool  Bold = false,
bool  BG = false 
)
overridevirtual

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 668 of file raw_ostream.cpp.

References llvm::sys::Process::ColorNeedsFlush(), llvm::raw_ostream::flush(), llvm::sys::Process::OutputBold(), llvm::sys::Process::OutputColor(), llvm::raw_ostream::SAVEDCOLOR, and llvm::raw_ostream::write().

◆ clear_error()

void llvm::raw_fd_ostream::clear_error ( )
inline

Set the flag read by has_error() to false.

If the error flag is set at the time when this raw_ostream's destructor is called, report_fatal_error is called to report the error. Use clear_error() after handling the error to avoid this behavior.

"Errors should never pass silently. Unless explicitly silenced."

  • from The Zen of Python, by Tim Peters

Definition at line 441 of file raw_ostream.h.

References llvm::errs(), llvm::nulls(), and llvm::outs().

Referenced by llvm::LTOCodeGenerator::writeMergedModules().

◆ close()

void raw_fd_ostream::close ( )

◆ has_colors()

bool raw_fd_ostream::has_colors ( ) const
overridevirtual

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

Reimplemented from llvm::raw_ostream.

Definition at line 714 of file raw_ostream.cpp.

References llvm::sys::Process::FileDescriptorHasColors().

◆ has_error()

bool llvm::raw_fd_ostream::has_error ( ) const
inline

Return the value of the flag in this raw_fd_ostream indicating whether an output error has been encountered.

This doesn't implicitly flush any pending output. Also, it doesn't guarantee to detect all errors unless the stream has been closed.

Definition at line 428 of file raw_ostream.h.

References llvm::lltok::Error.

Referenced by LLVMPrintModuleToFile(), llvm::LockFileManager::LockFileManager(), llvm::LTOCodeGenerator::writeMergedModules(), and ~raw_fd_ostream().

◆ is_displayed()

bool raw_fd_ostream::is_displayed ( ) const
overridevirtual

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 710 of file raw_ostream.cpp.

References llvm::sys::Process::FileDescriptorIsDisplayed().

◆ resetColor()

raw_ostream & raw_fd_ostream::resetColor ( )
overridevirtual

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 684 of file raw_ostream.cpp.

References llvm::sys::Process::ColorNeedsFlush(), llvm::raw_ostream::flush(), llvm::sys::Process::ResetColor(), and llvm::raw_ostream::write().

◆ reverseColor()

raw_ostream & raw_fd_ostream::reverseColor ( )
overridevirtual

Reverses the foreground and background colors.

Reimplemented from llvm::raw_ostream.

Definition at line 697 of file raw_ostream.cpp.

References llvm::sys::Process::ColorNeedsFlush(), llvm::raw_ostream::flush(), llvm::sys::Process::OutputReverse(), and llvm::raw_ostream::write().

◆ seek()

uint64_t raw_fd_ostream::seek ( uint64_t  off)

Flushes the stream and repositions the underlying file descriptor position to the offset specified from the beginning of the file.

Definition at line 625 of file raw_ostream.cpp.

References assert(), llvm::raw_ostream::flush(), llvm::raw_ostream::preferred_buffer_size(), llvm::AMDGPU::CodeObject::Kernel::Arg::Key::Size, llvm::raw_ostream::tell(), and llvm::raw_ostream::write().

Referenced by pad(), llvm::ProfOStream::patch(), printWithSpacePadding(), llvm::writeArchive(), writeStringTable(), and writeSymbolTable().

◆ supportsSeeking()

bool llvm::raw_fd_ostream::supportsSeeking ( )
inline

Definition at line 408 of file raw_ostream.h.


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