Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Bond::VM Class Reference

#include <bond/vm/vm.h>

Public Member Functions

 VM (Allocator &allocator, const CodeSegment &codeSegment, size_t stackSize, InputStream *stdIn=nullptr, OutputStream *stdOut=nullptr, OutputStream *stdErr=nullptr, StreamFactory *streamFactory=nullptr)
 ~VM ()
AllocatorGetAllocator () const
const CodeSegmentGetCodeSegment () const
StackFrameGetStackFrame ()
const StackFrameGetStackFrame () const
StackFrameGetCallerStackFrame ()
const StackFrameGetCallerStackFrame () const
InputStreamAdaptorGetStdIn ()
OutputStreamAdaptorGetStdOut ()
OutputStreamAdaptorGetStdErr ()
StreamFactoryGetStreamFactory ()
void DumpCallStack (OutputStream &stream) const
void DumpStackFrame (OutputStream &stream, const StackFrame &frame) const
void RaiseError (const char *format,...) const
template<typename ReturnType, typename... Args>
void CallFunction (const QualifiedName &functionName, ReturnType *returnAddress, Args... args)
template<typename ReturnType, typename... Args>
void CallFunction (const char *functionName, ReturnType *returnAddress, Args... args)
template<typename ReturnType, typename... Args>
void CallFunction (const Function &function, ReturnType *returnAddress, Args... args)
template<typename... Args>
void CallVoidFunction (const QualifiedName &functionName, Args... args)
template<typename... Args>
void CallVoidFunction (const char *functionName, Args... args)
template<typename... Args>
void CallVoidFunction (const Function &function, Args... args)
VMoperator= (const VM &other)=delete

Friends

class InvocationStackFrame

Constructor & Destructor Documentation

◆ VM()

Bond::VM::VM ( Allocator & allocator,
const CodeSegment & codeSegment,
size_t stackSize,
InputStream * stdIn = nullptr,
OutputStream * stdOut = nullptr,
OutputStream * stdErr = nullptr,
StreamFactory * streamFactory = nullptr )

◆ ~VM()

Bond::VM::~VM ( )

Member Function Documentation

◆ CallFunction() [1/3]

template<typename ReturnType, typename... Args>
void Bond::VM::CallFunction ( const char * functionName,
ReturnType * returnAddress,
Args... args )

◆ CallFunction() [2/3]

template<typename ReturnType, typename... Args>
void Bond::VM::CallFunction ( const Function & function,
ReturnType * returnAddress,
Args... args )

◆ CallFunction() [3/3]

template<typename ReturnType, typename... Args>
void Bond::VM::CallFunction ( const QualifiedName & functionName,
ReturnType * returnAddress,
Args... args )

◆ CallVoidFunction() [1/3]

template<typename... Args>
void Bond::VM::CallVoidFunction ( const char * functionName,
Args... args )

◆ CallVoidFunction() [2/3]

template<typename... Args>
void Bond::VM::CallVoidFunction ( const Function & function,
Args... args )

◆ CallVoidFunction() [3/3]

template<typename... Args>
void Bond::VM::CallVoidFunction ( const QualifiedName & functionName,
Args... args )

◆ DumpCallStack()

void Bond::VM::DumpCallStack ( OutputStream & stream) const

◆ DumpStackFrame()

void Bond::VM::DumpStackFrame ( OutputStream & stream,
const StackFrame & frame ) const

◆ GetAllocator()

Allocator & Bond::VM::GetAllocator ( ) const
inline

◆ GetCallerStackFrame() [1/2]

StackFrame & Bond::VM::GetCallerStackFrame ( )

◆ GetCallerStackFrame() [2/2]

const StackFrame & Bond::VM::GetCallerStackFrame ( ) const

◆ GetCodeSegment()

const CodeSegment & Bond::VM::GetCodeSegment ( ) const
inline

◆ GetStackFrame() [1/2]

StackFrame * Bond::VM::GetStackFrame ( )
inline

◆ GetStackFrame() [2/2]

const StackFrame & Bond::VM::GetStackFrame ( ) const
inline

◆ GetStdErr()

OutputStreamAdaptor & Bond::VM::GetStdErr ( )
inline

◆ GetStdIn()

InputStreamAdaptor & Bond::VM::GetStdIn ( )
inline

◆ GetStdOut()

OutputStreamAdaptor & Bond::VM::GetStdOut ( )
inline

◆ GetStreamFactory()

StreamFactory * Bond::VM::GetStreamFactory ( )
inline

◆ operator=()

VM & Bond::VM::operator= ( const VM & other)
delete

◆ RaiseError()

void Bond::VM::RaiseError ( const char * format,
... ) const

◆ InvocationStackFrame

friend class InvocationStackFrame
friend

The documentation for this class was generated from the following file:
  • include/bond/vm/vm.h