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

Friends And Related Function Documentation

◆ InvocationStackFrame

friend class InvocationStackFrame
friend

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