RexxNativeActivation Class Reference

#include <RexxNativeActivation.hpp>

Inheritance diagram for RexxNativeActivation:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, void *)
 
void operator delete (void *)
 
 RexxNativeActivation (RESTORETYPE restoreType)
 
 RexxNativeActivation ()
 
 RexxNativeActivation (RexxActivity *_activity, RexxActivation *_activation)
 
 RexxNativeActivation (RexxActivity *_activity)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void run (RexxMethod *_method, RexxNativeMethod *_code, RexxObject *_receiver, RexxString *_msgname, RexxObject **_arglist, size_t _argcount, size_t _named_argcount, ProtectedObject &resultObj)
 
void run (ActivityDispatcher &dispatcher)
 
void run (CallbackDispatcher &dispatcher)
 
void run (TrappingDispatcher &dispatcher)
 
RexxVariableDictionarymethodVariables ()
 
bool isInteger (RexxObject *)
 
wholenumber_t signedIntegerValue (RexxObject *o, size_t position, wholenumber_t maxValue, wholenumber_t minValue)
 
stringsize_t unsignedIntegerValue (RexxObject *o, size_t position, stringsize_t maxValue)
 
int64_t int64Value (RexxObject *o, size_t position)
 
uint64_t unsignedInt64Value (RexxObject *o, size_t position)
 
const char * cstring (RexxObject *)
 
double getDoubleValue (RexxObject *, size_t position)
 
bool isDouble (RexxObject *)
 
void * cself ()
 
void * buffer ()
 
void * pointer (RexxObject *)
 
void * pointerString (RexxObject *object, size_t position)
 
RexxObjectdispatch ()
 
size_t digits ()
 
size_t fuzz ()
 
bool form ()
 
void setDigits (size_t)
 
void setFuzz (size_t)
 
void setForm (bool)
 
void guardOff ()
 
void guardOn ()
 
void enableVariablepool ()
 
void disableVariablepool ()
 
bool trap (RexxString *, RexxDirectory *)
 
void resetNext ()
 
bool fetchNext (RexxString **name, RexxObject **value)
 
void raiseCondition (RexxString *condition, RexxString *description, RexxObject *additional, RexxObject *result)
 
RexxArraygetPositionalArguments ()
 
RexxObjectgetPositionalArgument (size_t index)
 
RexxDirectorygetNamedArguments ()
 
RexxObjectgetSuper ()
 
RexxObjectgetScope ()
 
RexxStemresolveStemVariable (RexxObject *s)
 
RexxClassfindClass (RexxString *className)
 
RexxClassfindCallerClass (RexxString *className)
 
void termination ()
 
void accessCallerContext ()
 
bool getVpavailable ()
 
RexxStringgetMessageName ()
 
size_t nextVariable ()
 
RexxVariablenextStem ()
 
RexxObjectgetContextStem (RexxString *name)
 
RexxObjectgetContextVariable (const char *name)
 
void dropContextVariable (const char *name)
 
void setContextVariable (const char *name, RexxObject *value)
 
RexxObjectgetObjectVariable (const char *name)
 
void setObjectVariable (const char *name, RexxObject *value)
 
void dropObjectVariable (const char *name)
 
RexxDirectorygetAllContextVariables ()
 
void setConditionInfo (RexxDirectory *info)
 
RexxDirectorygetConditionInfo ()
 
void clearException ()
 
void checkConditions ()
 
RexxVariableDictionarynextCurrent ()
 
RexxCompoundElementcompoundElement ()
 
void setNextVariable (size_t value)
 
void setNextCurrent (RexxVariableDictionary *vdict)
 
void setNextStem (RexxVariable *stemVar)
 
void setCompoundElement (RexxCompoundElement *element)
 
RexxObjectgetSelf ()
 
RexxActivitygetActivity ()
 
virtual bool isStackBase ()
 
virtual RexxActivationgetRexxContext ()
 
BaseExecutablegetRexxContextExecutable ()
 
RexxObjectgetRexxContextObject ()
 
virtual RexxActivationfindRexxContext ()
 
virtual NumericSettingsgetNumericSettings ()
 
virtual RexxObjectgetReceiver ()
 
virtual SecurityManagergetSecurityManager ()
 
RexxSourcegetSourceObject ()
 
void setStackBase ()
 
void reportSignatureError ()
 
void reportStemError (size_t position, RexxObject *object)
 
void processArguments (size_t argcount, RexxObject **arglist, uint16_t *argumentTypes, ValueDescriptor *descriptors, size_t maximumArgumentCount)
 
RexxObjectvalueToObject (ValueDescriptor *value)
 
RexxArrayvaluesToObject (ValueDescriptor *value, size_t count)
 
bool objectToValue (RexxObject *o, ValueDescriptor *value)
 
void createLocalReference (RexxObject *objr)
 
void removeLocalReference (RexxObject *objr)
 
void callNativeRoutine (RoutineClass *routine, RexxNativeRoutine *code, RexxString *functionName, RexxObject **list, size_t count, size_t named_count, ProtectedObject &result)
 
void callRegisteredRoutine (RoutineClass *routine, RegisteredRoutine *code, RexxString *functionName, RexxObject **list, size_t count, size_t named_count, ProtectedObject &resultObj)
 
RexxReturnCode variablePoolInterface (PSHVBLOCK requests)
 
RexxVariableBasevariablePoolGetVariable (PSHVBLOCK pshvblock, bool symbolic)
 
void variablePoolFetchVariable (PSHVBLOCK pshvblock)
 
void variablePoolSetVariable (PSHVBLOCK pshvblock)
 
void variablePoolDropVariable (PSHVBLOCK pshvblock)
 
void variablePoolNextVariable (PSHVBLOCK pshvblock)
 
void variablePoolFetchPrivate (PSHVBLOCK pshvblock)
 
void variablePoolRequest (PSHVBLOCK pshvblock)
 
RexxReturnCode copyValue (RexxObject *value, RXSTRING *rxstring, size_t *length)
 
RexxReturnCode copyValue (RexxObject *value, CONSTRXSTRING *rxstring, size_t *length)
 
int stemSort (const char *stemname, int order, int type, size_t start, size_t end, size_t firstcol, size_t lastcol)
 
void enableConditionTrap ()
 
void forwardMessage (RexxObject *to, RexxString *msg, RexxClass *super, RexxArray *positionalArgs, RexxDirectory *namedArgs, ProtectedObject &result)
 
void enableConditionTraps ()
 
void disableConditionTraps ()
 
StackFrameClasscreateStackFrame ()
 
- Public Member Functions inherited from RexxActivationBase
 RexxActivationBase ()
 
 RexxActivationBase (RESTORETYPE restoreType)
 
virtual void setObjNotify (RexxMessage *)
 
virtual bool isForwarded ()
 
virtual bool isRexxContext ()
 
void setPreviousStackFrame (RexxActivationBase *p)
 
RexxActivationBasegetPreviousStackFrame ()
 
BaseExecutablegetExecutable ()
 
RexxObjectgetExecutableObject ()
 
- Public Member Functions inherited from RexxInternalObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t, size_t)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *p, void *ptr)
 
 RexxInternalObject ()
 
 RexxInternalObject (RESTORETYPE restoreType)
 
virtual ~RexxInternalObject ()
 
 operator RexxObject * ()
 
size_t getObjectSize ()
 
void setObjectSize (size_t s)
 
size_t getObjectDataSize ()
 
void * getObjectDataSpace ()
 
void clearObject ()
 
void clearObject (size_t l)
 
void setVirtualFunctions (void *t)
 
void setInitHeader (size_t s, size_t markword)
 
void setInitHeader (size_t markword)
 
void setObjectLive (size_t markword)
 
void setHasReferences ()
 
void setHasNoReferences ()
 
bool hasReferences ()
 
bool hasNoReferences ()
 
void setPrimitive ()
 
void setNonPrimitive ()
 
bool isPrimitive ()
 
bool isNonPrimitive ()
 
bool isObjectMarked (size_t markword)
 
void setObjectMark (size_t markword)
 
void clearObjectMark ()
 
bool isObjectLive (size_t mark)
 
bool isObjectDead (size_t mark)
 
bool isOldSpace ()
 
bool isNewSpace ()
 
void setNewSpace ()
 
void setOldSpace ()
 
void makeProxiedObject ()
 
bool isProxyObject ()
 
bool isSubClassOrEnhanced ()
 
bool isBaseClass ()
 
size_t getObjectTypeNumber ()
 
RexxBehaviourgetObjectType ()
 
bool isObjectType (RexxBehaviour *b)
 
bool isObjectType (size_t t)
 
bool isSameType (RexxInternalObject *o)
 
void setBehaviour (RexxBehaviour *b)
 
virtual RexxObjectmakeProxy (RexxEnvelope *)
 
virtual RexxObjectcopy ()
 
virtual RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual void uninit ()
 
virtual HashCode hash ()
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual RexxStringmakeString ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
virtual RexxIntegerintegerValue (size_t)
 
virtual bool numberValue (wholenumber_t &result, size_t precision)
 
virtual bool numberValue (wholenumber_t &result)
 
virtual bool unsignedNumberValue (stringsize_t &result, size_t precision)
 
virtual bool unsignedNumberValue (stringsize_t &result)
 
virtual bool doubleValue (double &result)
 
virtual RexxNumberStringnumberString ()
 
virtual bool isEqual (RexxObject *)
 
virtual bool isInstanceOf (RexxClass *)
 
virtual RexxMethodinstanceMethod (RexxString *)
 
virtual RexxSupplierinstanceMethods (RexxClass *)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual void flatten (RexxEnvelope *)
 
virtual RexxObjectunflatten (RexxEnvelope *)
 

Protected Types

enum  ActivationType {
  PROGRAM_ACTIVATION , METHOD_ACTIVATION , FUNCTION_ACTIVATION , DISPATCHER_ACTIVATION ,
  CALLBACK_ACTIVATION , TRAPPING_ACTIVATION
}
 

Protected Attributes

RexxActivityactivity
 
RexxNativeCodecode
 
RexxObjectreceiver
 
RexxStringmsgname
 
RexxActivationactivation
 
RexxObject ** arglist
 
RexxArrayargArray
 
RexxDirectoryargDirectory
 
RexxIdentityTablesavelist
 
RexxObjectresult
 
ActivationType activationType
 
RexxDirectoryconditionObj
 
SecurityManagersecurityManager
 
RexxVariableDictionaryobjectVariables
 
size_t nextvariable
 
RexxVariableDictionarynextcurrent
 
RexxCompoundElementcompoundelement
 
RexxVariablenextstem
 
size_t argcount
 
size_t named_argcount
 
bool vpavailable
 
int object_scope
 
bool stackBase
 
bool trapErrors
 
bool trapConditions
 
- Protected Attributes inherited from RexxActivationBase
RexxActivationBaseprevious
 
BaseExecutableexecutable
 

Additional Inherited Members

- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 62 of file RexxNativeActivation.hpp.

Member Enumeration Documentation

◆ ActivationType

Enumerator
PROGRAM_ACTIVATION 
METHOD_ACTIVATION 
FUNCTION_ACTIVATION 
DISPATCHER_ACTIVATION 
CALLBACK_ACTIVATION 
TRAPPING_ACTIVATION 

Definition at line 188 of file RexxNativeActivation.hpp.

Constructor & Destructor Documentation

◆ RexxNativeActivation() [1/4]

RexxNativeActivation::RexxNativeActivation ( RESTORETYPE  restoreType)
inline

Definition at line 70 of file RexxNativeActivation.hpp.

◆ RexxNativeActivation() [2/4]

RexxNativeActivation::RexxNativeActivation ( )

Initialize an activation for direct caching in the activation cache. At this time, this is not an executable activation

Definition at line 80 of file RexxNativeActivation.cpp.

References RexxInternalObject::setHasNoReferences().

◆ RexxNativeActivation() [3/4]

RexxNativeActivation::RexxNativeActivation ( RexxActivity _activity,
RexxActivation _activation 
)

Constructor for a new native activation used to create a callback context for exit call outs.

Parameters
_activityThe activity we're running under.

Definition at line 92 of file RexxNativeActivation.cpp.

References activation, activity, and RexxInternalObject::clearObject().

◆ RexxNativeActivation() [4/4]

RexxNativeActivation::RexxNativeActivation ( RexxActivity _activity)

Constructor for a new native activation used to create a callback context for exit call outs.

Parameters
_activityThe activity we're running under.

Definition at line 106 of file RexxNativeActivation.cpp.

References activity, and RexxInternalObject::clearObject().

Member Function Documentation

◆ accessCallerContext()

void RexxNativeActivation::accessCallerContext ( )

Establish the caller's context for native activations that require access to the caller's context.

Definition at line 1744 of file RexxNativeActivation.cpp.

References activation, and RexxActivationBase::getPreviousStackFrame().

Referenced by callNativeRoutine(), and callRegisteredRoutine().

◆ buffer()

void* RexxNativeActivation::buffer ( )

◆ callNativeRoutine()

◆ callRegisteredRoutine()

void RexxNativeActivation::callRegisteredRoutine ( RoutineClass _routine,
RegisteredRoutine _code,
RexxString functionName,
RexxObject **  list,
size_t  count,
size_t  named_count,
ProtectedObject resultObj 
)

◆ checkConditions()

void RexxNativeActivation::checkConditions ( )

◆ clearException()

void RexxNativeActivation::clearException ( )
inline

Definition at line 135 of file RexxNativeActivation.hpp.

References conditionObj, and OREF_NULL.

Referenced by UninitDispatcher::handleError(), and ResolveStemVariable().

◆ compoundElement()

RexxCompoundElement* RexxNativeActivation::compoundElement ( )
inline

Definition at line 138 of file RexxNativeActivation.hpp.

References compoundelement.

Referenced by RexxStem::nextVariable().

◆ copyValue() [1/2]

RexxReturnCode RexxNativeActivation::copyValue ( RexxObject value,
CONSTRXSTRING rxstring,
size_t *  length 
)

Copy a value for a variable pool request, with checks for truncation.

Parameters
valueThe value to copy.
rxstringThe target RXSTRING.
lengthThe max length we can copy.
Returns
A return code to be included in the composite return value.

Definition at line 3210 of file RexxNativeActivation.cpp.

References copyValue(), _RXSTRING::strlength, _CONSTRXSTRING::strlength, _RXSTRING::strptr, and _CONSTRXSTRING::strptr.

◆ copyValue() [2/2]

RexxReturnCode RexxNativeActivation::copyValue ( RexxObject value,
RXSTRING rxstring,
size_t *  length 
)

Copy a value for a variable pool request, with checks for truncation.

Parameters
valueThe value to copy.
rxstringThe target RXSTRING.
lengthThe max length we can copy.
Returns
A return code to be included in the composite return value.

Definition at line 3235 of file RexxNativeActivation.cpp.

References SystemInterpreter::allocateResultMemory(), RexxString::getBLength(), RexxString::getStringData(), RXSHV_MEMFL, RXSHV_TRUNC, size_v, RexxObject::stringValue(), _RXSTRING::strlength, and _RXSTRING::strptr.

Referenced by copyValue(), variablePoolFetchPrivate(), variablePoolFetchVariable(), and variablePoolNextVariable().

◆ createLocalReference()

void RexxNativeActivation::createLocalReference ( RexxObject objr)

Create a local reference for an object. The protects the object from GC until the environment terminates.

Parameters
objrThe object to protect.

Definition at line 1164 of file RexxNativeActivation.cpp.

References new_identity_table(), OREF_NULL, RexxIdentityTable::put(), and savelist.

Referenced by callRegisteredRoutine(), cstring(), getNamedArguments(), getPositionalArguments(), objectToValue(), processArguments(), and ApiContext::ret().

◆ createStackFrame()

◆ cself()

void * RexxNativeActivation::cself ( )

◆ cstring()

const char * RexxNativeActivation::cstring ( RexxObject object)

Definition at line 1931 of file RexxNativeActivation.cpp.

References createLocalReference(), and RexxObject::stringValue().

Referenced by objectToValue(), and processArguments().

◆ digits()

size_t RexxNativeActivation::digits ( )
virtual

Reimplemented from RexxActivationBase.

Definition at line 2042 of file RexxNativeActivation.cpp.

References activation, Numerics::DEFAULT_DIGITS, RexxActivation::digits(), and OREF_NULL.

Referenced by GetContextDigits(), and isInteger().

◆ disableConditionTraps()

void RexxNativeActivation::disableConditionTraps ( )
inline

Definition at line 183 of file RexxNativeActivation.hpp.

References trapErrors.

Referenced by ApiContext::~ApiContext().

◆ disableVariablepool()

void RexxNativeActivation::disableVariablepool ( )

Definition at line 2315 of file RexxNativeActivation.cpp.

References resetNext(), and vpavailable.

Referenced by callNativeRoutine(), and callRegisteredRoutine().

◆ dispatch()

RexxObject * RexxNativeActivation::dispatch ( )
virtual

◆ dropContextVariable()

void RexxNativeActivation::dropContextVariable ( const char *  name)

Drop a context variable for an API call.

Parameters
nameThe target variable name.

Definition at line 2670 of file RexxNativeActivation.cpp.

References activation, RexxVariableBase::drop(), RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, and resetNext().

Referenced by DropContextVariable(), and DropExitContextVariable().

◆ dropObjectVariable()

void RexxNativeActivation::dropObjectVariable ( const char *  name)

Drop an object variable in the current method scope.

Parameters
nameThe name of the variable.

Definition at line 2752 of file RexxNativeActivation.cpp.

References RexxVariableBase::drop(), RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), and OREF_NULL.

Referenced by DropObjectVariable().

◆ enableConditionTrap()

void RexxNativeActivation::enableConditionTrap ( )
inline

Definition at line 179 of file RexxNativeActivation.hpp.

References trapConditions.

Referenced by RaiseCondition().

◆ enableConditionTraps()

void RexxNativeActivation::enableConditionTraps ( )
inline

Definition at line 182 of file RexxNativeActivation.hpp.

References trapErrors.

Referenced by ApiContext::ApiContext().

◆ enableVariablepool()

void RexxNativeActivation::enableVariablepool ( )

◆ fetchNext()

◆ findCallerClass()

RexxClass * RexxNativeActivation::findCallerClass ( RexxString className)

Resolve a class in the context of the caller's execution context.

Parameters
classNameThe target class name.
Returns
The resolved class (if any).

Definition at line 2808 of file RexxNativeActivation.cpp.

References activation, Interpreter::findClass(), RexxActivation::findClass(), RexxObject::isInstanceOf(), OREF_NULL, and TheClassClass.

Referenced by FindCallContextClass().

◆ findClass()

RexxClass * RexxNativeActivation::findClass ( RexxString className)

Resolve a class in the context of the current execution context.

Parameters
classNameThe target class name.
Returns
The resolved class (if any).

Definition at line 2778 of file RexxNativeActivation.cpp.

References RexxActivationBase::executable, BaseExecutable::findClass(), Interpreter::findClass(), RexxObject::isInstanceOf(), OREF_NULL, and TheClassClass.

Referenced by FindClass(), FindContextClass(), and IsOfType().

◆ findRexxContext()

RexxActivation * RexxNativeActivation::findRexxContext ( )
virtual

Return the Rexx context this operates under. Depending on the context, this could be null.

Returns
The parent Rexx context.

Reimplemented from RexxActivationBase.

Definition at line 2218 of file RexxNativeActivation.cpp.

References activation, RexxActivationBase::findRexxContext(), OREF_NULL, and RexxActivationBase::previous.

◆ form()

bool RexxNativeActivation::form ( )
virtual

Reimplemented from RexxActivationBase.

Definition at line 2074 of file RexxNativeActivation.cpp.

References activation, Numerics::DEFAULT_FORM, RexxActivation::form(), and OREF_NULL.

Referenced by GetContextForm().

◆ forwardMessage()

void RexxNativeActivation::forwardMessage ( RexxObject to,
RexxString msg,
RexxClass super,
RexxArray positionalArgs,
RexxDirectory namedArgs,
ProtectedObject _result 
)

Implement the equivalent of a FORWARD CONTINUE instruction as an API call. All null arguments are filled in with the method context args.

Parameters
toThe target object. Defaults to SELF
msgThe target message name. Defaults to current message.
superAny superclass override. Defaults to none.
argsThe message positional arguments. Defaults to current argument set.
Returns
The message send result.

Definition at line 3341 of file RexxNativeActivation.cpp.

References RexxDirectory::appendAllIndexesItemsTo(), argcount, arglist, RexxArray::copy(), RexxArray::data(), getMessageName(), getNamedArguments(), getPositionalArguments(), getSelf(), RexxObject::messageSend(), named_argcount, OREF_NULL, and RexxArray::size().

Referenced by ForwardMessage().

◆ fuzz()

size_t RexxNativeActivation::fuzz ( )
virtual

Reimplemented from RexxActivationBase.

Definition at line 2058 of file RexxNativeActivation.cpp.

References activation, Numerics::DEFAULT_FUZZ, RexxActivation::fuzz(), and OREF_NULL.

Referenced by GetContextFuzz().

◆ getActivity()

RexxActivity* RexxNativeActivation::getActivity ( )
inline

Definition at line 144 of file RexxNativeActivation.hpp.

References activity.

◆ getAllContextVariables()

RexxDirectory * RexxNativeActivation::getAllContextVariables ( )

◆ getConditionInfo()

RexxDirectory* RexxNativeActivation::getConditionInfo ( )
inline

Definition at line 134 of file RexxNativeActivation.hpp.

References conditionObj.

Referenced by CheckCondition(), DisplayCondition(), and GetConditionInfo().

◆ getContextStem()

◆ getContextVariable()

RexxObject * RexxNativeActivation::getContextVariable ( const char *  name)

Retrieve the value of a context variable via the API calls. Returns OREF_NULL if the variable does not exist.

Parameters
nameThe variable name.
Returns
The variable value, if any.

Definition at line 2620 of file RexxNativeActivation.cpp.

References activation, RexxInternalObject::getRealValue(), RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, and resetNext().

Referenced by GetContextVariable(), and GetExitContextVariable().

◆ getDoubleValue()

double RexxNativeActivation::getDoubleValue ( RexxObject object,
size_t  position 
)

◆ getMessageName()

RexxString* RexxNativeActivation::getMessageName ( )
inline

◆ getNamedArguments()

RexxDirectory * RexxNativeActivation::getNamedArguments ( )

Return the method context named arguments as a directory.

Returns
A directory containing the method named arguments.

Definition at line 2524 of file RexxNativeActivation.cpp.

References argcount, argDirectory, arglist, createLocalReference(), RexxDirectory::fromIndexItemArray(), named_argcount, new_directory(), and OREF_NULL.

Referenced by forwardMessage().

◆ getNumericSettings()

NumericSettings * RexxNativeActivation::getNumericSettings ( )
virtual

Get the numeric settings for this native activation. If we're running in the direct call context from a Rexx activation, then the settings are those inherited from the Rexx context. Otherwise, we just return the default numeric settings.

Returns
The current Numeric settings.

Reimplemented from RexxActivationBase.

Definition at line 2138 of file RexxNativeActivation.cpp.

References activation, Numerics::getDefaultSettings(), RexxActivation::getNumericSettings(), and OREF_NULL.

◆ getObjectVariable()

RexxObject * RexxNativeActivation::getObjectVariable ( const char *  name)

Get nn object variable in the current method scope. Returns a NULL object reference if the variable does not exist.

Parameters
nameThe variable name.
Returns
The variable value or OREF_NULL if the variable does not exist.

Definition at line 2705 of file RexxNativeActivation.cpp.

References RexxInternalObject::getRealValue(), RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), and OREF_NULL.

Referenced by GetObjectVariable().

◆ getPositionalArgument()

RexxObject * RexxNativeActivation::getPositionalArgument ( size_t  index)

Retrieve a specific positional argument from the method invocation context.

Parameters
indexThe positional argument of interest.
Returns
The object mapped to that argument. Returns OREF_NULL for omitted arguments.

Definition at line 2510 of file RexxNativeActivation.cpp.

References argcount, arglist, and OREF_NULL.

Referenced by GetCallArgument(), and GetMethodArgument().

◆ getPositionalArguments()

RexxArray * RexxNativeActivation::getPositionalArguments ( )

Return the method context positional arguments as an array.

Returns
An array containing the method positional arguments.

Definition at line 2488 of file RexxNativeActivation.cpp.

References argArray, argcount, arglist, createLocalReference(), and OREF_NULL.

Referenced by createStackFrame(), forwardMessage(), GetCallArguments(), GetMethodArguments(), and processArguments().

◆ getReceiver()

RexxObject * RexxNativeActivation::getReceiver ( )
virtual

Get the message receiver

Returns
The message receiver. Returns OREF_NULL if this is not a message activation.

Reimplemented from RexxActivationBase.

Definition at line 2242 of file RexxNativeActivation.cpp.

References receiver.

◆ getRexxContext()

RexxActivation * RexxNativeActivation::getRexxContext ( )
virtual

Return the Rexx context this operates under. Depending on the context, this could be null.

Returns
The parent Rexx context.

Reimplemented from RexxActivationBase.

Definition at line 2169 of file RexxNativeActivation.cpp.

References activation.

◆ getRexxContextExecutable()

BaseExecutable * RexxNativeActivation::getRexxContextExecutable ( )

Return the Rexx executable context that is our immediate caller. Depending on the context, this could be null.

Returns
The parent Rexx context.

Definition at line 2182 of file RexxNativeActivation.cpp.

References activation, RexxActivationBase::getExecutable(), and OREF_NULL.

◆ getRexxContextObject()

RexxObject * RexxNativeActivation::getRexxContextObject ( )

Return the Rexx context object for our immediate caller. Depending on the context, this could be null.

Returns
The parent Rexx context.

Definition at line 2200 of file RexxNativeActivation.cpp.

References activation, RexxActivation::getContextObject(), and OREF_NULL.

Referenced by GetCallerContext(), and GetExitCallerContext().

◆ getScope()

RexxObject * RexxNativeActivation::getScope ( )

Return the current method scope.

Returns
The current method scope object.

Definition at line 2559 of file RexxNativeActivation.cpp.

References RexxActivationBase::executable.

Referenced by createStackFrame(), cself(), GetScope(), getSuper(), guardOn(), and processArguments().

◆ getSecurityManager()

SecurityManager * RexxNativeActivation::getSecurityManager ( )
virtual

Get the security manager context

Returns
The security manager, if there is one.

Implements RexxActivationBase.

Definition at line 2253 of file RexxNativeActivation.cpp.

References RexxSource::getSecurityManager(), getSourceObject(), and OREF_NULL.

◆ getSelf()

RexxObject* RexxNativeActivation::getSelf ( )
inline

Definition at line 143 of file RexxNativeActivation.hpp.

References receiver.

Referenced by forwardMessage(), and GetSelf().

◆ getSourceObject()

RexxSource * RexxNativeActivation::getSourceObject ( )

Retrieve the source object for the current context, if there is one.

Returns
The source object associated with any Method or Routine currently being run.

Definition at line 2836 of file RexxNativeActivation.cpp.

References RexxActivationBase::executable, BaseExecutable::getSourceObject(), and OREF_NULL.

Referenced by getSecurityManager(), and NativeActivationFrame::getSource().

◆ getSuper()

RexxObject * RexxNativeActivation::getSuper ( )

Return the super class scope of the current method context.

Returns
The superclass scope object.

Definition at line 2549 of file RexxNativeActivation.cpp.

References RexxActivationBase::executable, getScope(), receiver, and RexxObject::superScope().

Referenced by GetSuper(), and processArguments().

◆ getVpavailable()

bool RexxNativeActivation::getVpavailable ( )
inline

Definition at line 121 of file RexxNativeActivation.hpp.

References vpavailable.

Referenced by variablePoolInterface().

◆ guardOff()

void RexxNativeActivation::guardOff ( )

◆ guardOn()

◆ int64Value()

int64_t RexxNativeActivation::int64Value ( RexxObject o,
size_t  position 
)

Convert a value to an int64_t value

Parameters
oThe object to convert.
positionThe argument position.
Returns
The converted number.

Definition at line 1897 of file RexxNativeActivation.cpp.

References Error_Invalid_argument_range, INT64_MAX, INT64_MIN, Numerics::int64ToObject(), new_array(), new_integer(), Numerics::objectToInt64(), and reportException().

Referenced by processArguments().

◆ isDouble()

bool RexxNativeActivation::isDouble ( RexxObject object)

Definition at line 1986 of file RexxNativeActivation.cpp.

◆ isInteger()

bool RexxNativeActivation::isInteger ( RexxObject object)

Definition at line 1833 of file RexxNativeActivation.cpp.

References digits().

◆ isStackBase()

bool RexxNativeActivation::isStackBase ( )
virtual

Indicate whether this activation represents the base of the call stack.

Returns
true if this is a base activation.

Reimplemented from RexxActivationBase.

Definition at line 2157 of file RexxNativeActivation.cpp.

References stackBase.

Referenced by checkConditions().

◆ live()

◆ liveGeneral()

◆ methodVariables()

◆ nextCurrent()

RexxVariableDictionary* RexxNativeActivation::nextCurrent ( )
inline

Definition at line 137 of file RexxNativeActivation.hpp.

References nextcurrent.

Referenced by fetchNext().

◆ nextStem()

RexxVariable* RexxNativeActivation::nextStem ( )
inline

Definition at line 124 of file RexxNativeActivation.hpp.

References nextstem.

Referenced by fetchNext().

◆ nextVariable()

size_t RexxNativeActivation::nextVariable ( )
inline

Definition at line 123 of file RexxNativeActivation.hpp.

References nextvariable.

Referenced by RexxVariableDictionary::nextVariable().

◆ objectToValue()

bool RexxNativeActivation::objectToValue ( RexxObject o,
ValueDescriptor value 
)

Convert a Rexx object into the requested value type, if possible.

Parameters
oThe source object.
valueThe receiving value structure, which also defines the type.
Returns
true if the value was convertable, false otherwise.

Definition at line 851 of file RexxNativeActivation.cpp.

References activationType, arrayArgument(), createLocalReference(), cstring(), RexxObject::doubleValue(), getContextStem(), RexxString::getStringData(), INT16_MAX, INT16_MIN, INT32_MAX, INT32_MIN, INT8_MAX, INT8_MIN, RexxObject::isInstanceOf(), isStem(), RexxObject::logicalValue(), Numerics::MAX_STRINGSIZE, Numerics::MAX_WHOLENUMBER, METHOD_ACTIVATION, Numerics::MIN_WHOLENUMBER, Numerics::objectToInt64(), Numerics::objectToIntptr(), Numerics::objectToSignedInteger(), Numerics::objectToStringSize(), Numerics::objectToUintptr(), Numerics::objectToUnsignedInt64(), Numerics::objectToUnsignedInteger(), Numerics::objectToWholeNumber(), OREF_NULL, pointer(), REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, SIZE_MAX, SSIZE_MAX, stringArgument(), RexxObject::stringValue(), TheClassClass, TheMutableBufferClass, ValueDescriptor::type, UINT16_MAX, UINT32_MAX, UINT8_MAX, ValueDescriptor::value, ValueDescriptor::value_CSTRING, ValueDescriptor::value_double, ValueDescriptor::value_float, ValueDescriptor::value_int, ValueDescriptor::value_int16_t, ValueDescriptor::value_int32_t, ValueDescriptor::value_int64_t, ValueDescriptor::value_int8_t, ValueDescriptor::value_intptr_t, ValueDescriptor::value_logical_t, ValueDescriptor::value_POINTER, ValueDescriptor::value_RexxArrayObject, ValueDescriptor::value_RexxClassObject, ValueDescriptor::value_RexxMutableBufferObject, ValueDescriptor::value_RexxObjectPtr, ValueDescriptor::value_RexxStemObject, ValueDescriptor::value_RexxStringObject, ValueDescriptor::value_size_t, ValueDescriptor::value_stringsize_t, ValueDescriptor::value_uint16_t, ValueDescriptor::value_uint32_t, ValueDescriptor::value_uint64_t, ValueDescriptor::value_uint8_t, ValueDescriptor::value_uintptr_t, and ValueDescriptor::value_wholenumber_t.

Referenced by ObjectToValue().

◆ operator delete() [1/2]

void RexxNativeActivation::operator delete ( void *  )
inline

Definition at line 68 of file RexxNativeActivation.hpp.

◆ operator delete() [2/2]

void RexxNativeActivation::operator delete ( void *  ,
void *   
)
inline

Definition at line 67 of file RexxNativeActivation.hpp.

◆ operator new() [1/2]

void* RexxNativeActivation::operator new ( size_t  size,
void *  ptr 
)
inline

Definition at line 66 of file RexxNativeActivation.hpp.

◆ operator new() [2/2]

void * RexxNativeActivation::operator new ( size_t  size)

Allocate a new native Activation.

Parameters
sizethe allocation size.
Returns
A pointer to the newly allocated object.

Definition at line 2853 of file RexxNativeActivation.cpp.

References RexxInternalObject::clearObject(), new_object(), and T_NativeActivation.

◆ pointer()

void * RexxNativeActivation::pointer ( RexxObject object)

Definition at line 2017 of file RexxNativeActivation.cpp.

References RexxObject::isInstanceOf(), and ThePointerClass.

Referenced by objectToValue(), and processArguments().

◆ pointerString()

void * RexxNativeActivation::pointerString ( RexxObject object,
size_t  position 
)

Convert a string in the format 0xnnnnnnnnn into a pointer value.

Parameters
objectThe object to convert.
Returns
The pointer value.

Definition at line 1955 of file RexxNativeActivation.cpp.

References Error_Invalid_argument_pointer, RexxString::getStringData(), reportException(), and RexxObject::stringValue().

Referenced by processArguments().

◆ processArguments()

void RexxNativeActivation::processArguments ( size_t  _argcount,
RexxObject **  _arglist,
uint16_t argumentTypes,
ValueDescriptor descriptors,
size_t  maximumArgumentCount 
)

Process the arguments for a typed function/method call.

Parameters
argcountThe count of arguments.
arglistThe original Rexx arguments.
argumentTypesThe type descriptor from the target.
descriptorsThe maximum argument count for the target.
maximumArgumentCount

Definition at line 221 of file RexxNativeActivation.cpp.

References activationType, ARGUMENT_EXISTS, ARGUMENT_TYPE, arrayArgument(), createLocalReference(), cself(), cstring(), Error_Invalid_argument_maxarg, Error_Invalid_argument_noarg, Error_Invalid_argument_noclass, Error_Logical_value_method, ValueDescriptor::flags, getContextStem(), getDoubleValue(), getPositionalArguments(), getScope(), RexxString::getStringData(), getSuper(), INT16_MAX, INT16_MIN, INT32_MAX, INT32_MIN, int64Value(), INT8_MAX, INT8_MIN, INTPTR_MAX, INTPTR_MIN, IS_OPTIONAL_ARGUMENT, RexxObject::isInstanceOf(), isStem(), Numerics::MAX_STRINGSIZE, Numerics::MAX_WHOLENUMBER, METHOD_ACTIVATION, Numerics::MIN_WHOLENUMBER, msgname, OREF_NULL, pointer(), pointerString(), receiver, reportException(), reportSignatureError(), reportStemError(), RexxObject::requestString(), REXX_ARGUMENT_TERMINATOR, REXX_VALUE_ARGLIST, REXX_VALUE_CSELF, REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_NAME, REXX_VALUE_OSELF, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_SCOPE, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_SUPER, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, signedIntegerValue(), SIZE_MAX, SPECIAL_ARGUMENT, SSIZE_MAX, stringArgument(), TheClassClass, TheMutableBufferClass, TheNilObject, ThePointerClass, RexxObject::truthValue(), ValueDescriptor::type, type, UINT16_MAX, UINT32_MAX, UINT8_MAX, UINTPTR_MAX, unsignedInt64Value(), unsignedIntegerValue(), ValueDescriptor::value, ValueDescriptor::value_CSTRING, ValueDescriptor::value_double, ValueDescriptor::value_float, ValueDescriptor::value_int, ValueDescriptor::value_int16_t, ValueDescriptor::value_int32_t, ValueDescriptor::value_int64_t, ValueDescriptor::value_int8_t, ValueDescriptor::value_intptr_t, ValueDescriptor::value_logical_t, ValueDescriptor::value_POINTER, ValueDescriptor::value_POINTERSTRING, ValueDescriptor::value_RexxArrayObject, ValueDescriptor::value_RexxClassObject, ValueDescriptor::value_RexxMutableBufferObject, ValueDescriptor::value_RexxObjectPtr, ValueDescriptor::value_RexxStemObject, ValueDescriptor::value_RexxStringObject, ValueDescriptor::value_size_t, ValueDescriptor::value_ssize_t, ValueDescriptor::value_stringsize_t, ValueDescriptor::value_uint16_t, ValueDescriptor::value_uint32_t, ValueDescriptor::value_uint64_t, ValueDescriptor::value_uint8_t, ValueDescriptor::value_uintptr_t, and ValueDescriptor::value_wholenumber_t.

Referenced by callNativeRoutine(), and run().

◆ raiseCondition()

void RexxNativeActivation::raiseCondition ( RexxString condition,
RexxString description,
RexxObject additional,
RexxObject _result 
)

Raise a condition on behalf of a native method. This method does not return.

Parameters
conditionThe condition type to raise.
descriptionThe condition description string.
additionalThe additional information associated with this condition.
resultThe result object.

Definition at line 2471 of file RexxNativeActivation.cpp.

References activity, OREF_NULL, RexxActivity::raiseCondition(), and result.

◆ removeLocalReference()

void RexxNativeActivation::removeLocalReference ( RexxObject objr)

Remove an object from the local reference table.

Parameters
objrThe object to remove.

Definition at line 1187 of file RexxNativeActivation.cpp.

References OREF_NULL, RexxIdentityTable::remove(), and savelist.

Referenced by ReleaseLocalReference().

◆ reportSignatureError()

void RexxNativeActivation::reportSignatureError ( )

◆ reportStemError()

void RexxNativeActivation::reportStemError ( size_t  position,
RexxObject object 
)

◆ resetNext()

◆ resolveStemVariable()

RexxStem * RexxNativeActivation::resolveStemVariable ( RexxObject s)

Resolve an argument object into a stem object. The argument object may already be a stem, or may the a variable name used to resolve a stem.

Parameters
sThe source object used for the resolution.
Returns
A resolved stem object. Returns a NULLOBJECT if there is a resolution problem.

Definition at line 2574 of file RexxNativeActivation.cpp.

References getContextStem(), isStem(), and stringArgument().

Referenced by ResolveStemVariable().

◆ run() [1/4]

void RexxNativeActivation::run ( ActivityDispatcher dispatcher)

◆ run() [2/4]

void RexxNativeActivation::run ( CallbackDispatcher dispatcher)

Run a callback under the scope of a native actvation. This is generally a call out, such as a system exit, argument callback, etc.

Parameters
dispatcherThe dispatcher instance we're going to run.

Definition at line 1649 of file RexxNativeActivation.cpp.

References activationType, activity, CALLBACK_ACTIVATION, conditionObj, ActivityManager::currentActivity, RexxActivity::getActivationLevel(), RexxActivity::getInstanceSecurityManager(), CallbackDispatcher::handleError(), OREF_NULL, RexxActivity::releaseAccess(), RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), CallbackDispatcher::run(), securityManager, CallbackDispatcher::setContext(), and trapErrors.

◆ run() [3/4]

void RexxNativeActivation::run ( RexxMethod _method,
RexxNativeMethod _code,
RexxObject _receiver,
RexxString _msgname,
RexxObject **  _arglist,
size_t  _argcount,
size_t  _named_argcount,
ProtectedObject resultObj 
)

◆ run() [4/4]

void RexxNativeActivation::run ( TrappingDispatcher dispatcher)

Run a some type of activity using a fresh activation stack. This generally us a method call such as an uninit method where we wish to run the method and ignore errors. This runs without releasing the kernel lock.

Parameters
dispatcherThe dispatcher instance we're going to run.

Definition at line 1700 of file RexxNativeActivation.cpp.

References activationType, activity, conditionObj, ActivityManager::currentActivity, RexxActivity::getActivationLevel(), TrappingDispatcher::handleError(), OREF_NULL, RexxActivity::requestAccess(), RexxActivity::restoreActivationLevel(), TrappingDispatcher::run(), TrappingDispatcher::setContext(), trapErrors, and TRAPPING_ACTIVATION.

◆ setCompoundElement()

void RexxNativeActivation::setCompoundElement ( RexxCompoundElement element)
inline

Definition at line 142 of file RexxNativeActivation.hpp.

References compoundelement.

Referenced by fetchNext(), and RexxStem::nextVariable().

◆ setConditionInfo()

void RexxNativeActivation::setConditionInfo ( RexxDirectory info)
inline

◆ setContextVariable()

void RexxNativeActivation::setContextVariable ( const char *  name,
RexxObject value 
)

Set a context variable on behalf of an API call.

Parameters
nameThe name of the variable.
valueThe variable value.

Definition at line 2649 of file RexxNativeActivation.cpp.

References activation, RexxVariableDictionary::getVariableRetriever(), isString(), new_string(), OREF_NULL, resetNext(), and RexxVariableBase::set().

Referenced by SetContextVariable(), and SetExitContextVariable().

◆ setDigits()

void RexxNativeActivation::setDigits ( size_t  _digits)
virtual

Reimplemented from RexxActivationBase.

Definition at line 2090 of file RexxNativeActivation.cpp.

References activation, OREF_NULL, and RexxActivation::setDigits().

◆ setForm()

void RexxNativeActivation::setForm ( bool  _form)
virtual

Reimplemented from RexxActivationBase.

Definition at line 2116 of file RexxNativeActivation.cpp.

References activation, OREF_NULL, and RexxActivation::setForm().

◆ setFuzz()

void RexxNativeActivation::setFuzz ( size_t  _fuzz)
virtual

Reimplemented from RexxActivationBase.

Definition at line 2103 of file RexxNativeActivation.cpp.

References activation, OREF_NULL, and RexxActivation::setFuzz().

◆ setNextCurrent()

void RexxNativeActivation::setNextCurrent ( RexxVariableDictionary vdict)
inline

Definition at line 140 of file RexxNativeActivation.hpp.

References nextcurrent.

Referenced by fetchNext().

◆ setNextStem()

void RexxNativeActivation::setNextStem ( RexxVariable stemVar)
inline

Definition at line 141 of file RexxNativeActivation.hpp.

References nextstem.

Referenced by fetchNext(), and RexxStem::nextVariable().

◆ setNextVariable()

void RexxNativeActivation::setNextVariable ( size_t  value)
inline

Definition at line 139 of file RexxNativeActivation.hpp.

References nextvariable.

Referenced by fetchNext(), and RexxVariableDictionary::nextVariable().

◆ setObjectVariable()

void RexxNativeActivation::setObjectVariable ( const char *  name,
RexxObject value 
)

The an object variable to a new value.

Parameters
nameThe name of the variable.
valueThe new variable value.

Definition at line 2729 of file RexxNativeActivation.cpp.

References RexxVariableDictionary::getVariableRetriever(), isOfClassType, isString(), methodVariables(), new_string(), OREF_NULL, and RexxVariableBase::set().

Referenced by SetObjectVariable().

◆ setStackBase()

void RexxNativeActivation::setStackBase ( )
inline

Definition at line 154 of file RexxNativeActivation.hpp.

References stackBase.

Referenced by RexxActivity::createNewActivationStack().

◆ signedIntegerValue()

wholenumber_t RexxNativeActivation::signedIntegerValue ( RexxObject o,
size_t  position,
wholenumber_t  maxValue,
wholenumber_t  minValue 
)

Convert a value to a wholenumber value.

Parameters
oThe object to convert.
positionThe argument position.
maxValueThe maximum value allowed in the range.
minValueThe minimum range value.
Returns
The converted number.

Definition at line 1853 of file RexxNativeActivation.cpp.

References Error_Invalid_argument_range, new_array(), new_integer(), Numerics::objectToSignedInteger(), reportException(), and Numerics::wholenumberToObject().

Referenced by processArguments().

◆ stemSort()

int RexxNativeActivation::stemSort ( const char *  stemname,
int  order,
int  type,
size_t  start,
size_t  end,
size_t  firstcol,
size_t  lastcol 
)

◆ termination()

void RexxNativeActivation::termination ( )
inlinevirtual

Reimplemented from RexxActivationBase.

Definition at line 118 of file RexxNativeActivation.hpp.

References guardOff().

◆ trap()

bool RexxNativeActivation::trap ( RexxString condition,
RexxDirectory exception_object 
)
virtual

Trap a condition at this level of the activation stack.

Parameters
conditionThe name of the condition.
exception_objectThe exception object containing the specifics of the condition.
Returns
false if this activation takes a pass on the condition. Does not return at all if the condition is handled.

Reimplemented from RexxActivationBase.

Definition at line 2424 of file RexxNativeActivation.cpp.

References RexxString::isEqual(), setConditionInfo(), trapConditions, and trapErrors.

◆ unsignedInt64Value()

uint64_t RexxNativeActivation::unsignedInt64Value ( RexxObject o,
size_t  position 
)

Convert a value to a uint64_t value

Parameters
oThe object to convert.
positionThe argument position.
Returns
The converted number.

Definition at line 1918 of file RexxNativeActivation.cpp.

References Error_Invalid_argument_range, INT64_MAX, Numerics::int64ToObject(), IntegerZero, new_array(), new_integer(), Numerics::objectToUnsignedInt64(), and reportException().

Referenced by processArguments().

◆ unsignedIntegerValue()

size_t RexxNativeActivation::unsignedIntegerValue ( RexxObject o,
size_t  position,
stringsize_t  maxValue 
)

Convert a value to a size_t value.

Parameters
oThe object to convert.
positionThe argument position.
maxValueThe maximum value allowed in the range.
Returns
The converted number.

Definition at line 1876 of file RexxNativeActivation.cpp.

References Error_Invalid_argument_range, IntegerZero, new_array(), new_integer(), Numerics::objectToUnsignedInteger(), reportException(), and Numerics::stringsizeToObject().

Referenced by processArguments().

◆ valuesToObject()

RexxArray * RexxNativeActivation::valuesToObject ( ValueDescriptor value,
size_t  count 
)

Convert an collection of value descriptors into a Rexx array object. This is useful for creating arrays of arguments for the various call APIs.

Parameters
valueThe self-describing value descriptors.
countThe number of descriptors in the list.
Returns
The described value converted to an appropriate Rexx object.

Definition at line 678 of file RexxNativeActivation.cpp.

References new_array(), RexxArray::put(), and valueToObject().

Referenced by ValuesToObject().

◆ valueToObject()

RexxObject * RexxNativeActivation::valueToObject ( ValueDescriptor value)

Convert an API value descriptor into a Rexx object.

Parameters
valueThe self-describing value descriptor.
Returns
The described value converted to an appropriate Rexx object.

Definition at line 699 of file RexxNativeActivation.cpp.

References Numerics::int64ToObject(), new_pointer(), new_string(), OREF_NULL, Numerics::pointerToString(), reportSignatureError(), REXX_VALUE_CSTRING, REXX_VALUE_double, REXX_VALUE_float, REXX_VALUE_int, REXX_VALUE_int16_t, REXX_VALUE_int32_t, REXX_VALUE_int64_t, REXX_VALUE_int8_t, REXX_VALUE_intptr_t, REXX_VALUE_logical_t, REXX_VALUE_POINTER, REXX_VALUE_POINTERSTRING, REXX_VALUE_RexxArrayObject, REXX_VALUE_RexxClassObject, REXX_VALUE_RexxMutableBufferObject, REXX_VALUE_RexxObjectPtr, REXX_VALUE_RexxStemObject, REXX_VALUE_RexxStringObject, REXX_VALUE_size_t, REXX_VALUE_ssize_t, REXX_VALUE_stringsize_t, REXX_VALUE_uint16_t, REXX_VALUE_uint32_t, REXX_VALUE_uint64_t, REXX_VALUE_uint8_t, REXX_VALUE_uintptr_t, REXX_VALUE_wholenumber_t, Numerics::stringsizeToObject(), TheFalseObject, TheTrueObject, ValueDescriptor::type, Numerics::uint64ToObject(), ValueDescriptor::value, ValueDescriptor::value_CSTRING, ValueDescriptor::value_double, ValueDescriptor::value_float, ValueDescriptor::value_int, ValueDescriptor::value_int16_t, ValueDescriptor::value_int32_t, ValueDescriptor::value_int64_t, ValueDescriptor::value_int8_t, ValueDescriptor::value_intptr_t, ValueDescriptor::value_logical_t, ValueDescriptor::value_POINTER, ValueDescriptor::value_RexxObjectPtr, ValueDescriptor::value_size_t, ValueDescriptor::value_stringsize_t, ValueDescriptor::value_uint16_t, ValueDescriptor::value_uint32_t, ValueDescriptor::value_uint64_t, ValueDescriptor::value_uint8_t, ValueDescriptor::value_uintptr_t, ValueDescriptor::value_wholenumber_t, and Numerics::wholenumberToObject().

Referenced by callNativeRoutine(), run(), valuesToObject(), and ValueToObject().

◆ variablePoolDropVariable()

void RexxNativeActivation::variablePoolDropVariable ( PSHVBLOCK  pshvblock)

Perform a variable pool drop operation.

Parameters
pshvblockThe operation shared variable block.

Definition at line 3023 of file RexxNativeActivation.cpp.

References activation, isString(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYDRO, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, and variablePoolGetVariable().

Referenced by variablePoolRequest().

◆ variablePoolFetchPrivate()

void RexxNativeActivation::variablePoolFetchPrivate ( PSHVBLOCK  pshvblock)

◆ variablePoolFetchVariable()

void RexxNativeActivation::variablePoolFetchVariable ( PSHVBLOCK  pshvblock)

Perform a variable pool fetch operation.

Parameters
pshvblockThe operation shared variable block.

Definition at line 2950 of file RexxNativeActivation.cpp.

References activation, copyValue(), RexxInternalObject::getValue(), isString(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYFET, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, _SHVBLOCK::shvvaluelen, and variablePoolGetVariable().

Referenced by variablePoolRequest().

◆ variablePoolGetVariable()

RexxVariableBase * RexxNativeActivation::variablePoolGetVariable ( PSHVBLOCK  pshvblock,
bool  symbolic 
)

Get a variable retriever for the target variable.

Parameters
pshvblockThe variable pool request block.
symbolicThe symbolic vs. direct indicator.
Returns
A variable retriever for the variable. Returns OREF_NULL if the variable is not resolvable from the name.

Definition at line 2910 of file RexxNativeActivation.cpp.

References RexxVariableDictionary::getDirectVariableRetriever(), RexxVariableDictionary::getVariableRetriever(), new_string(), OREF_NULL, resetNext(), RXSHV_BADN, _SHVBLOCK::shvname, and _SHVBLOCK::shvret.

Referenced by variablePoolDropVariable(), variablePoolFetchVariable(), and variablePoolSetVariable().

◆ variablePoolInterface()

RexxReturnCode RexxNativeActivation::variablePoolInterface ( PSHVBLOCK  pshvblock)

Handle a request chain for the variable pool interface API.

Parameters
pshvblockThe shared variable block for the request.
Returns
The composit return code for the chain of requests.

Definition at line 2869 of file RexxNativeActivation.cpp.

References getVpavailable(), RXSHV_MEMFL, RXSHV_NOAVL, _SHVBLOCK::shvnext, _SHVBLOCK::shvret, and variablePoolRequest().

Referenced by RexxVariablePool().

◆ variablePoolNextVariable()

void RexxNativeActivation::variablePoolNextVariable ( PSHVBLOCK  pshvblock)

Perform a variable pool fetch next operation.

Parameters
pshvblockThe operation shared variable block.

Definition at line 3055 of file RexxNativeActivation.cpp.

References copyValue(), fetchNext(), RXSHV_LVAR, _SHVBLOCK::shvname, _SHVBLOCK::shvnamelen, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, and _SHVBLOCK::shvvaluelen.

Referenced by variablePoolRequest().

◆ variablePoolRequest()

void RexxNativeActivation::variablePoolRequest ( PSHVBLOCK  pshvblock)

◆ variablePoolSetVariable()

void RexxNativeActivation::variablePoolSetVariable ( PSHVBLOCK  pshvblock)

Perform a variable pool set operation.

Parameters
pshvblockThe operation shared variable block.

Definition at line 2991 of file RexxNativeActivation.cpp.

References activation, isString(), new_string(), OREF_NULL, RXSHV_BADN, RXSHV_NEWV, RXSHV_SYSET, _SHVBLOCK::shvcode, _SHVBLOCK::shvret, _SHVBLOCK::shvvalue, and variablePoolGetVariable().

Referenced by variablePoolRequest().

Member Data Documentation

◆ activation

◆ activationType

ActivationType RexxNativeActivation::activationType
protected

◆ activity

◆ argArray

RexxArray* RexxNativeActivation::argArray
protected

Definition at line 208 of file RexxNativeActivation.hpp.

Referenced by getPositionalArguments(), live(), and liveGeneral().

◆ argcount

◆ argDirectory

RexxDirectory* RexxNativeActivation::argDirectory
protected

Definition at line 209 of file RexxNativeActivation.hpp.

Referenced by getNamedArguments(), live(), and liveGeneral().

◆ arglist

◆ code

RexxNativeCode* RexxNativeActivation::code
protected

Definition at line 199 of file RexxNativeActivation.hpp.

Referenced by dispatch().

◆ compoundelement

RexxCompoundElement* RexxNativeActivation::compoundelement
protected

◆ conditionObj

RexxDirectory* RexxNativeActivation::conditionObj
protected

◆ msgname

RexxString* RexxNativeActivation::msgname
protected

◆ named_argcount

size_t RexxNativeActivation::named_argcount
protected

◆ nextcurrent

RexxVariableDictionary* RexxNativeActivation::nextcurrent
protected

Definition at line 219 of file RexxNativeActivation.hpp.

Referenced by live(), liveGeneral(), nextCurrent(), resetNext(), and setNextCurrent().

◆ nextstem

RexxVariable* RexxNativeActivation::nextstem
protected

Definition at line 221 of file RexxNativeActivation.hpp.

Referenced by live(), liveGeneral(), nextStem(), resetNext(), and setNextStem().

◆ nextvariable

size_t RexxNativeActivation::nextvariable
protected

Definition at line 218 of file RexxNativeActivation.hpp.

Referenced by nextVariable(), resetNext(), and setNextVariable().

◆ object_scope

int RexxNativeActivation::object_scope
protected

Definition at line 225 of file RexxNativeActivation.hpp.

Referenced by guardOff(), guardOn(), and methodVariables().

◆ objectVariables

RexxVariableDictionary* RexxNativeActivation::objectVariables
protected

Definition at line 217 of file RexxNativeActivation.hpp.

Referenced by guardOff(), guardOn(), live(), liveGeneral(), and methodVariables().

◆ receiver

◆ result

RexxObject* RexxNativeActivation::result
protected

◆ savelist

RexxIdentityTable* RexxNativeActivation::savelist
protected

◆ securityManager

SecurityManager* RexxNativeActivation::securityManager
protected

◆ stackBase

bool RexxNativeActivation::stackBase
protected

Definition at line 226 of file RexxNativeActivation.hpp.

Referenced by isStackBase(), and setStackBase().

◆ trapConditions

bool RexxNativeActivation::trapConditions
protected

Definition at line 228 of file RexxNativeActivation.hpp.

Referenced by enableConditionTrap(), and trap().

◆ trapErrors

bool RexxNativeActivation::trapErrors
protected

◆ vpavailable

bool RexxNativeActivation::vpavailable
protected

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