LLVM  7.0.0svn
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
llvm::WriteThroughMemoryBuffer Class Reference

This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source. More...

#include "llvm/Support/MemoryBuffer.h"

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

Public Member Functions

chargetBufferStart ()
 
chargetBufferEnd ()
 
MutableArrayRef< chargetBuffer ()
 
- Public Member Functions inherited from llvm::MemoryBuffer
 MemoryBuffer (const MemoryBuffer &)=delete
 
MemoryBufferoperator= (const MemoryBuffer &)=delete
 
virtual ~MemoryBuffer ()
 
const chargetBufferStart () const
 
const chargetBufferEnd () const
 
size_t getBufferSize () const
 
StringRef getBuffer () const
 
virtual StringRef getBufferIdentifier () const
 Return an identifier for this buffer, typically the filename it was read from. More...
 
virtual BufferKind getBufferKind () const =0
 Return information on the memory mechanism used to support the MemoryBuffer. More...
 
MemoryBufferRef getMemBufferRef () const
 

Static Public Member Functions

static ErrorOr< std::unique_ptr< WriteThroughMemoryBuffer > > getFile (const Twine &Filename, int64_t FileSize=-1)
 
static ErrorOr< std::unique_ptr< WriteThroughMemoryBuffer > > getFileSlice (const Twine &Filename, uint64_t MapSize, uint64_t Offset)
 Map a subrange of the specified file as a ReadWriteMemoryBuffer. More...
 
- Static Public Member Functions inherited from llvm::MemoryBuffer
static ErrorOr< std::unique_ptr< MemoryBuffer > > getFile (const Twine &Filename, int64_t FileSize=-1, bool RequiresNullTerminator=true, bool IsVolatile=false)
 Open the specified file as a MemoryBuffer, returning a new MemoryBuffer if successful, otherwise returning null. More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getFileAsStream (const Twine &Filename)
 Read all of the specified file into a MemoryBuffer as a stream (i.e. More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getOpenFileSlice (int FD, const Twine &Filename, uint64_t MapSize, int64_t Offset, bool IsVolatile=false)
 Given an already-open file descriptor, map some slice of it into a MemoryBuffer. More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getOpenFile (int FD, const Twine &Filename, uint64_t FileSize, bool RequiresNullTerminator=true, bool IsVolatile=false)
 Given an already-open file descriptor, read the file and return a MemoryBuffer. More...
 
static std::unique_ptr< MemoryBuffergetMemBuffer (StringRef InputData, StringRef BufferName="", bool RequiresNullTerminator=true)
 Open the specified memory range as a MemoryBuffer. More...
 
static std::unique_ptr< MemoryBuffergetMemBuffer (MemoryBufferRef Ref, bool RequiresNullTerminator=true)
 
static std::unique_ptr< MemoryBuffergetMemBufferCopy (StringRef InputData, const Twine &BufferName="")
 Open the specified memory range as a MemoryBuffer, copying the contents and taking ownership of it. More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getSTDIN ()
 Read all of stdin into a file buffer, and return it. More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getFileOrSTDIN (const Twine &Filename, int64_t FileSize=-1, bool RequiresNullTerminator=true)
 Open the specified file as a MemoryBuffer, or open stdin if the Filename is "-". More...
 
static ErrorOr< std::unique_ptr< MemoryBuffer > > getFileSlice (const Twine &Filename, uint64_t MapSize, uint64_t Offset, bool IsVolatile=false)
 Map a subrange of the specified file as a MemoryBuffer. More...
 

Protected Member Functions

 WriteThroughMemoryBuffer ()=default
 
- Protected Member Functions inherited from llvm::MemoryBuffer
 MemoryBuffer ()=default
 
void init (const char *BufStart, const char *BufEnd, bool RequiresNullTerminator)
 init - Initialize this MemoryBuffer as a reference to externally allocated memory, memory that we know is already null terminated. More...
 

Static Protected Attributes

static constexpr sys::fs::mapped_file_region::mapmode Mapmode
 
- Static Protected Attributes inherited from llvm::MemoryBuffer
static constexpr sys::fs::mapped_file_region::mapmode Mapmode
 

Additional Inherited Members

- Public Types inherited from llvm::MemoryBuffer
enum  BufferKind { MemoryBuffer_Malloc, MemoryBuffer_MMap }
 The kind of memory backing used to support the MemoryBuffer. More...
 

Detailed Description

This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source.

It only supports creation methods that are guaranteed to produce a writable buffer. For example, mapping a file read-only is not supported.

Definition at line 222 of file MemoryBuffer.h.

Constructor & Destructor Documentation

◆ WriteThroughMemoryBuffer()

llvm::WriteThroughMemoryBuffer::WriteThroughMemoryBuffer ( )
protecteddefault

Member Function Documentation

◆ getBuffer()

MutableArrayRef<char> llvm::WriteThroughMemoryBuffer::getBuffer ( )
inline

◆ getBufferEnd()

char* llvm::WriteThroughMemoryBuffer::getBufferEnd ( )
inline

Definition at line 239 of file MemoryBuffer.h.

References llvm::MemoryBuffer::getBufferEnd().

◆ getBufferStart()

char* llvm::WriteThroughMemoryBuffer::getBufferStart ( )
inline

Definition at line 236 of file MemoryBuffer.h.

References llvm::MemoryBuffer::getBufferStart().

◆ getFile()

ErrorOr< std::unique_ptr< WriteThroughMemoryBuffer > > WriteThroughMemoryBuffer::getFile ( const Twine Filename,
int64_t  FileSize = -1 
)
static

Definition at line 405 of file MemoryBuffer.cpp.

References getReadWriteFile().

◆ getFileSlice()

ErrorOr< std::unique_ptr< WriteThroughMemoryBuffer > > WriteThroughMemoryBuffer::getFileSlice ( const Twine Filename,
uint64_t  MapSize,
uint64_t  Offset 
)
static

Map a subrange of the specified file as a ReadWriteMemoryBuffer.

Map a subrange of the specified file as a WritableMemoryBuffer.

Definition at line 411 of file MemoryBuffer.cpp.

References getReadWriteFile().

Member Data Documentation

◆ Mapmode

constexpr sys::fs::mapped_file_region::mapmode llvm::WriteThroughMemoryBuffer::Mapmode
staticprotected
Initial value:

Definition at line 226 of file MemoryBuffer.h.


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