#include <CPPCode.hpp>
Static Public Member Functions | |
static CPPCode * | resolveExportedMethod (const char *, PCPPM targetMethod, size_t argcount, bool passNamedArgs) |
Static Public Member Functions inherited from RexxInternalObject | |
static size_t | getObjectHeaderSize () |
Static Public Attributes | |
static PCPPM | exportedMethods [] |
Protected Attributes | |
uint16_t | methodIndex |
uint16_t | argumentCount |
bool | passNamedArguments |
PCPPM | cppEntry |
Additional Inherited Members | |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Class for a method-wrappered CPP internal method.
Definition at line 48 of file CPPCode.hpp.
CPPCode::CPPCode | ( | size_t | index, |
PCPPM | entry, | ||
size_t | argcount, | ||
bool | passNamedArgs | ||
) |
Constructor for a CPPCode object.
index | The index of the method used to restore unflattened internal method. |
entry | The entry point address. |
argcount | The number of arguments this method expects. |
passNamedArgs | True if the named arguments must be passed. |
Definition at line 71 of file CPPCode.cpp.
References argumentCount, cppEntry, methodIndex, and passNamedArguments.
Referenced by resolveExportedMethod().
|
inline |
Definition at line 56 of file CPPCode.hpp.
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 80 of file CPPCode.cpp.
References cppEntry, exportedMethods, methodIndex, RESTORINGIMAGE, SAVINGIMAGE, and RexxInternalObject::setInRexxPackage().
|
inline |
Definition at line 53 of file CPPCode.hpp.
|
inline |
Definition at line 54 of file CPPCode.hpp.
|
inline |
Definition at line 52 of file CPPCode.hpp.
void * CPPCode::operator new | ( | size_t | size | ) |
Allocate a new CPP code object.
size | the allocation size. |
Definition at line 56 of file CPPCode.cpp.
References new_object(), and T_CPPCode.
|
static |
Resolve the entry point of a CPP method into a CPPCode wrapper for that method.
name | The name of the method (used for error reporting) |
targetMethod | The method to wrapper |
argumentCount | The argument descriptor. |
Definition at line 1218 of file CPPCode.cpp.
References argumentCount, CPPCode(), exportedMethods, and Interpreter::logicError().
Referenced by RexxMemory::createImage(), and RexxBehaviour::define().
|
virtual |
Run (or call) a CPPMethod.
activity | The activity we're running under. |
method | The method to run. |
receiver | The receiver object. |
messageName | The name used to invoke the message. |
argPtr | The actual arguments. |
count | The argument count. |
result | The returned result. |
Reimplemented from BaseCode.
Definition at line 119 of file CPPCode.cpp.
References A_COUNT, argumentCount, cppEntry, Error_Incorrect_method_maxarg, passNamedArguments, and reportException().
|
virtual |
Reimplemented from RexxVirtualBase.
Definition at line 97 of file CPPCode.cpp.
References cppEntry, exportedMethods, and methodIndex.
|
protected |
Definition at line 68 of file CPPCode.hpp.
Referenced by CPPCode(), resolveExportedMethod(), and run().
|
protected |
Definition at line 70 of file CPPCode.hpp.
Referenced by CPPCode(), liveGeneral(), run(), and unflatten().
|
static |
Definition at line 64 of file CPPCode.hpp.
Referenced by liveGeneral(), resolveExportedMethod(), and unflatten().
|
protected |
Definition at line 67 of file CPPCode.hpp.
Referenced by CPPCode(), liveGeneral(), and unflatten().
|
protected |
Definition at line 69 of file CPPCode.hpp.