class WriteThroughMemoryBuffer

Declaration

class WriteThroughMemoryBuffer : public MemoryBuffer { /* full declaration omitted */ };

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.

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:217

Inherits from: MemoryBuffer

Member Variables

protected static const sys::fs::mapped_file_region::mapmode Mapmode = sys::fs::mapped_file_region::readwrite

Inherited from MemoryBuffer:

protected static Mapmode = sys::fs::mapped_file_region::readonly

Method Overview

  • protected WriteThroughMemoryBuffer()
  • public MutableArrayRef<char> getBuffer()
  • public char * getBufferEnd()
  • public char * getBufferStart()
  • public static ErrorOr<std::unique_ptr<WriteThroughMemoryBuffer>> getFile(const llvm::Twine & Filename, int64_t FileSize = -1)
  • public static ErrorOr<std::unique_ptr<WriteThroughMemoryBuffer>> getFileSlice(const llvm::Twine & Filename, uint64_t MapSize, uint64_t Offset)

Inherited from MemoryBuffer:

Methods

WriteThroughMemoryBuffer()

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:219

MutableArrayRef<char> getBuffer()

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:237

char* getBufferEnd()

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:234

char* getBufferStart()

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:231

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

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:242

Parameters

const llvm::Twine& Filename
int64_t FileSize = -1

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

Description

Map a subrange of the specified file as a ReadWriteMemoryBuffer.

Declared at: llvm/include/llvm/Support/MemoryBuffer.h:246

Parameters

const llvm::Twine& Filename
uint64_t MapSize
uint64_t Offset