Mana
mana::CodeBuffer Class Referencefinal

#include <CodeBuffer.h>

Inheritance diagram for mana::CodeBuffer:
mana::Noncopyable

Public Member Functions

 CodeBuffer ()=default
 
 ~CodeBuffer ()=default
 
void Reduce (const address_t reduceSize)
 
template<typename T >
void Add (const T value)
 
template<typename T >
Get (const address_t address) const
 
void AddOpecode (const IntermediateLanguage code)
 
address_t AddOpecodeAndOperand (const IntermediateLanguage code, const address_t address=InvalidAddress)
 
address_t AddOpecodeAndTwoOperands (const IntermediateLanguage code, const address_t address, const address_t size)
 
void ReplaceOpecode (const address_t address, const IntermediateLanguage code)
 
void ReplaceAddress (const address_t address, const address_t newAddress)
 
void ReplaceAddressAll (const address_t baseAddress, const address_t newAddress)
 
std::unique_ptr< void, decltype(&std::free)> Copy () const
 
address_t GetSize () const
 
void Write (OutputStream &stream) const
 

Static Public Member Functions

template<typename T >
static T Raw (const void *program, const address_t address)
 

Constructor & Destructor Documentation

◆ CodeBuffer()

mana::CodeBuffer::CodeBuffer ( )
default

◆ ~CodeBuffer()

mana::CodeBuffer::~CodeBuffer ( )
default

Member Function Documentation

◆ Add()

template<typename T >
void mana::CodeBuffer::Add ( const T  value)

◆ AddOpecode()

void mana::CodeBuffer::AddOpecode ( const IntermediateLanguage  code)

◆ AddOpecodeAndOperand()

address_t mana::CodeBuffer::AddOpecodeAndOperand ( const IntermediateLanguage  code,
const address_t  address = InvalidAddress 
)

◆ AddOpecodeAndTwoOperands()

address_t mana::CodeBuffer::AddOpecodeAndTwoOperands ( const IntermediateLanguage  code,
const address_t  address,
const address_t  size 
)

◆ Copy()

std::unique_ptr< void, decltype(&std::free)> mana::CodeBuffer::Copy ( ) const

◆ Get()

template<typename T >
T mana::CodeBuffer::Get ( const address_t  address) const

◆ GetSize()

address_t mana::CodeBuffer::GetSize ( ) const

◆ Raw()

template<typename T >
T mana::CodeBuffer::Raw ( const void *  program,
const address_t  address 
)
static

◆ Reduce()

void mana::CodeBuffer::Reduce ( const address_t  reduceSize)

◆ ReplaceAddress()

void mana::CodeBuffer::ReplaceAddress ( const address_t  address,
const address_t  newAddress 
)

◆ ReplaceAddressAll()

void mana::CodeBuffer::ReplaceAddressAll ( const address_t  baseAddress,
const address_t  newAddress 
)

◆ ReplaceOpecode()

void mana::CodeBuffer::ReplaceOpecode ( const address_t  address,
const IntermediateLanguage  code 
)

◆ Write()

void mana::CodeBuffer::Write ( OutputStream stream) const

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