14 #ifndef LLVM_SUPPORT_MEMORYBUFFER_H
15 #define LLVM_SUPPORT_MEMORYBUFFER_H
20 #include "llvm/Support/DataTypes.h"
26 template<
class T>
class OwningPtr;
39 const char *BufferStart;
40 const char *BufferEnd;
46 void init(
const char *BufStart,
const char *BufEnd,
47 bool RequiresNullTerminator);
62 return "Unknown buffer";
70 int64_t FileSize = -1,
71 bool RequiresNullTerminator =
true);
78 uint64_t MapSize, int64_t Offset);
85 bool RequiresNullTerminator =
true);
91 bool RequiresNullTerminator =
true);
122 int64_t FileSize = -1);
static MemoryBuffer * getMemBuffer(StringRef InputData, StringRef BufferName="", bool RequiresNullTerminator=true)
void init(const char *BufStart, const char *BufEnd, bool RequiresNullTerminator)
const char * getBufferStart() const
static MemoryBuffer * getNewMemBuffer(size_t Size, StringRef BufferName="")
StringRef getBuffer() const
static error_code getOpenFile(int FD, const char *Filename, OwningPtr< MemoryBuffer > &Result, uint64_t FileSize, bool RequiresNullTerminator=true)
virtual const char * getBufferIdentifier() const
virtual BufferKind getBufferKind() const =0
#define DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ty, ref)
struct LLVMOpaqueMemoryBuffer * LLVMMemoryBufferRef
static error_code getFileOrSTDIN(StringRef Filename, OwningPtr< MemoryBuffer > &result, int64_t FileSize=-1)
static error_code getFile(Twine Filename, OwningPtr< MemoryBuffer > &result, int64_t FileSize=-1, bool RequiresNullTerminator=true)
static MemoryBuffer * getMemBufferCopy(StringRef InputData, StringRef BufferName="")
#define LLVM_DELETED_FUNCTION
static error_code getOpenFileSlice(int FD, const char *Filename, OwningPtr< MemoryBuffer > &Result, uint64_t MapSize, int64_t Offset)
size_t getBufferSize() const
BufferKind
The kind of memory backing used to support the MemoryBuffer.
const char * getBufferEnd() const
static MemoryBuffer * getNewUninitMemBuffer(size_t Size, StringRef BufferName="")
static error_code getSTDIN(OwningPtr< MemoryBuffer > &result)