RexxMethod Class Reference

#include <MethodClass.hpp>

Inheritance diagram for RexxMethod:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *ptr)
 
 RexxMethod (RexxString *name, BaseCode *_code)
 
 RexxMethod (RexxString *name, RexxSource *source)
 
 RexxMethod (RexxString *name)
 
 RexxMethod (RexxString *name, RexxBuffer *source)
 
 RexxMethod (RexxString *name, const char *data, size_t length)
 
 RexxMethod (RexxString *name, RexxArray *source)
 
 RexxMethod (RESTORETYPE restoreType)
 
void execute (RexxObject *, RexxObject *)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
void run (RexxActivity *, RexxObject *, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
 
RexxMethodnewScope (RexxClass *)
 
void setScope (RexxClass *)
 
RexxSmartBuffersaveMethod ()
 
RexxObjectsetUnguardedRexx ()
 
RexxObjectsetGuardedRexx ()
 
RexxObjectsetPrivateRexx ()
 
RexxObjectsetProtectedRexx ()
 
RexxObjectsetSecurityManager (RexxObject *)
 
RexxObjectisGuardedRexx ()
 
RexxObjectisPrivateRexx ()
 
RexxObjectisPackageRexx ()
 
RexxObjectisProtectedRexx ()
 
RexxObjectisAbstractRexx ()
 
RexxObjectisConstantRexx ()
 
RexxObjectisAttributeRexx ()
 
bool isGuarded ()
 
bool isPrivate ()
 
bool isProtected ()
 
bool isPackageScope ()
 
bool isSpecial ()
 
bool isConstant ()
 
bool isAttribute ()
 
bool isAbstract ()
 
void setUnguarded ()
 
void setGuarded ()
 
void setPrivate ()
 
void setPackageScope ()
 
void setProtected ()
 
void setConstant ()
 
void setAttribute ()
 
void clearAttribute ()
 
void setAbstract ()
 
void setAttribute (bool v)
 
void setAttributes (AccessFlag access, ProtectedFlag _protected, GuardFlag _guarded)
 
RexxClassgetScope ()
 
RexxStringgetScopeName ()
 
RexxObjectgetScopeRexx ()
 
BaseCodegetCode ()
 
RexxMethodnewRexx (RexxObject **, size_t, size_t)
 
RexxMethodnewFileRexx (RexxString *)
 
RexxMethodloadExternalMethod (RexxString *name, RexxString *descriptor)
 
bool isSamePackage (PackageClass *p)
 
- Public Member Functions inherited from BaseExecutable
RexxSourcegetSourceObject ()
 
BaseCodegetCode ()
 
RexxArraygetSource ()
 
PackageClassgetPackage ()
 
RexxArraysource ()
 
RexxClassfindClass (RexxString *className)
 
BaseExecutablesetSourceObject (RexxSource *s)
 
RexxStringgetName ()
 
void setName (RexxString *name)
 
- Public Member Functions inherited from RexxObject
void * operator new (size_t, RexxClass *)
 
void * operator new (size_t, RexxClass *, RexxObject **, size_t, size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *, void *)
 
void operator delete (void *)
 
void operator delete (void *, RexxClass *)
 
void operator delete (void *, RexxClass *, RexxObject **, size_t)
 
RexxObjectnewRexx (RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxObjectnewObject ()
 
 operator RexxInternalObject * ()
 
 RexxObject ()
 
 RexxObject (RESTORETYPE restoreType)
 
void initializeNewObject (size_t size, size_t mark, void *vft, RexxBehaviour *b)
 
void initializeNewObject (size_t mark, void *vft, RexxBehaviour *b)
 
virtual ~RexxObject ()
 
virtual RexxObjectdefMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
virtual RexxStringdefaultName ()
 
virtual RexxObjectunknown (RexxString *msg, RexxArray *args, RexxDirectory *named_args)
 
virtual RexxIntegerhasMethod (RexxString *msg)
 
bool hasUninitMethod ()
 
RexxObjectinit ()
 
void uninit ()
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectcopy ()
 
HashCode hash ()
 
bool truthValue (int)
 
virtual bool logicalValue (logical_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)
 
RexxNumberStringnumberString ()
 
RexxIntegerintegerValue (size_t)
 
RexxStringmakeString ()
 
RexxTextmakeText ()
 
void copyIntoTail (RexxCompoundTail *buffer)
 
RexxArraymakeArray ()
 
RexxStringstringValue ()
 
RexxTexttextValue ()
 
RexxStringrequestString ()
 
RexxStringrequestStringNoNOSTRING ()
 
RexxTextrequestText ()
 
RexxIntegerrequestInteger (size_t)
 
bool requestNumber (wholenumber_t &, size_t)
 
bool requestUnsignedNumber (stringsize_t &, size_t)
 
RexxArrayrequestArray ()
 
RexxDirectoryrequestDirectory ()
 
RexxStringrequiredString (RexxString *kind, size_t)
 
RexxStringrequiredString (RexxString *kind, const char *)
 
RexxStringrequiredString ()
 
RexxIntegerrequiredInteger (RexxString *kind, size_t, size_t)
 
wholenumber_t requiredNumber (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredPositive (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredNonNegative (RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
bool isEqual (RexxObject *)
 
bool isInstanceOf (RexxClass *)
 
RexxObjectisInstanceOfRexx (RexxClass *)
 
RexxObjectisNilRexx ()
 
RexxMethodinstanceMethod (RexxString *)
 
RexxSupplierinstanceMethods (RexxClass *)
 
RexxMethodinstanceMethodRexx (RexxString *)
 
RexxSupplierinstanceMethodsRexx (RexxClass *)
 
RexxObjectdynamicTargetRexx (RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxStringobjectName ()
 
RexxObjectobjectNameEquals (RexxObject *)
 
RexxClassclassObject ()
 
RexxObjectsetMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
RexxObjectunsetMethod (RexxString *)
 
RexxObjectrequestRexx (RexxString *)
 
RexxMessagestart (RexxObject **, size_t, size_t)
 
RexxMessagestartWith (RexxObject *, RexxArray *, RexxObject **, size_t)
 
RexxObjectsend (RexxObject **, size_t, size_t)
 
RexxObjectsendWith (RexxObject *, RexxArray *, RexxObject **, size_t)
 
RexxMessagestartCommon (RexxObject *message, RexxObject **arguments, size_t argCount, size_t named_argCount)
 
RexxStringoref ()
 
RexxObjectpmdict ()
 
RexxObjectrun (RexxObject **, size_t, size_t)
 
bool messageSend (RexxString *, RexxObject **, size_t, size_t, ProtectedObject &, bool processUnknown=true, bool dynamicTarget=true)
 
bool messageSend (RexxString *, RexxObject **, size_t, size_t, RexxObject *, ProtectedObject &, bool processUnknown=true, bool dynamicTarget=true)
 
RexxMethodcheckPrivate (RexxMethod *, RexxErrorCodes &)
 
RexxMethodcheckPackage (RexxMethod *, RexxErrorCodes &)
 
void processUnknown (RexxErrorCodes, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
 
void processProtectedMethod (RexxString *, RexxMethod *, RexxObject **, size_t, size_t, ProtectedObject &)
 
void sendMessage (RexxString *, RexxArray *, RexxDirectory *, ProtectedObject &)
 
void sendMessage (RexxString *message, RexxObject **args, size_t argCount, size_t named_argCount, ProtectedObject &result)
 
void sendMessage (RexxString *message, ProtectedObject &result)
 
void sendMessage (RexxString *message, RexxObject *argument1, ProtectedObject &result)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
void sendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, ProtectedObject &)
 
RexxObjectsendMessage (RexxString *, RexxArray *, RexxDirectory *=OREF_NULL)
 
RexxObjectsendMessage (RexxString *message, RexxObject **args, size_t argCount, size_t named_argCount)
 
RexxObjectsendMessage (RexxString *message)
 
RexxObjectsendMessage (RexxString *message, RexxObject *argument1)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectsendMessage (RexxString *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
 
RexxObjectdefMethods (RexxDirectory *)
 
void setObjectVariable (RexxString *, RexxObject *, RexxObject *)
 
RexxObjectgetObjectVariable (RexxString *)
 
RexxObjectgetObjectVariable (RexxString *, RexxObject *)
 
void addObjectVariables (RexxVariableDictionary *)
 
void copyObjectVariables (RexxObject *newObject)
 
RexxObjectsuperScope (RexxObject *)
 
RexxMethodsuperMethod (RexxString *, RexxObject *)
 
RexxObjectmdict ()
 
RexxObjectsetMdict (RexxObject *)
 
RexxBehaviourbehaviourObject ()
 
const char * idString ()
 
RexxStringid ()
 
RexxMethodmethodLookup (RexxString *name)
 
RexxVariableDictionarygetObjectVariables (RexxObject *)
 
void guardOn (RexxActivity *activity, RexxObject *scope)
 
void guardOff (RexxActivity *activity, RexxObject *scope)
 
RexxObjectequal (RexxObject *)
 
RexxObjectnotEqual (RexxObject *other)
 
RexxObjectstrictEqual (RexxObject *)
 
RexxObjectstrictNotEqual (RexxObject *other)
 
RexxIntegeridentityHashRexx ()
 
RexxObjecthashCode ()
 
RexxStringstringRexx ()
 
RexxStringconcatRexx (RexxObject *)
 
RexxStringconcatBlank (RexxObject *)
 
RexxObjectmakeStringRexx ()
 
RexxObjectmakeArrayRexx ()
 
RexxStringdefaultNameRexx ()
 
RexxObjectcopyRexx ()
 
RexxObjectunknownRexx (RexxString *, RexxArray *, RexxObject **, size_t)
 
RexxObjecthasMethodRexx (RexxString *)
 
void * getCSelf ()
 
void * getCSelf (RexxObject *scope)
 
bool equalValue (RexxObject *other)
 
virtual wholenumber_t compareTo (RexxObject *)
 
 koper (operator_plus) koper(operator_minus) koper(operator_multiply) koper(operator_divide) koper(operator_integerDivide) koper(operator_remainder) koper(operator_power) koper(operator_abuttal) koper(operator_concat) koper(operator_concatBlank) koper(operator_equal) koper(operator_notEqual) koper(operator_isGreaterThan) koper(operator_isBackslashGreaterThan) koper(operator_isLessThan) koper(operator_isBackslashLessThan) koper(operator_isGreaterOrEqual) koper(operator_isLessOrEqual) koper(operator_strictEqual) koper(operator_strictNotEqual) koper(operator_strictGreaterThan) koper(operator_strictBackslashGreaterThan) koper(operator_strictLessThan) koper(operator_strictBackslashLessThan) koper(operator_strictGreaterOrEqual) koper(operator_strictLessOrEqual) koper(operator_lessThanGreaterThan) koper(operator_greaterThanLessThan) koper(operator_and) koper(operator_or) koper(operator_xor) koper(operator_not) RexxVariableDictionary *objectVariables
 
- 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 ()
 
void setInRexxPackage ()
 
bool isInRexxPackage ()
 
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 RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxTextprimitiveMakeText ()
 
virtual RexxObjectdynamicTarget (RexxObject **arguments, size_t count, size_t named_count)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObjectclone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static RexxMethodnewMethodObject (RexxString *, RexxObject *, RexxObject *, RexxSource *a, bool isBlock=false)
 
static RexxMethodrestore (RexxBuffer *, char *, size_t length)
 
static void createInstance ()
 
- Static Public Member Functions inherited from RexxObject
static void decodeMessageName (RexxObject *target, RexxObject *message, RexxString *&messageName, RexxObject *&startScope)
 
static void createInstance ()
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Static Public Attributes

static RexxClassclassInstance = OREF_NULL
 
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
 
static RexxClassclassInstance = OREF_NULL
 

Protected Types

enum  {
  PRIVATE_FLAG = 0x01 , UNGUARDED_FLAG = 0x02 , PROTECTED_FLAG = 0x04 , ATTRIBUTE_METHOD = 0x08 ,
  CONSTANT_METHOD = 0x10 , ABSTRACT_METHOD = 0x20 , PACKAGE_FLAG = 0x40
}
 

Protected Attributes

size_t methodFlags
 
RexxClassscope
 
- Protected Attributes inherited from BaseExecutable
RexxStringexecutableName
 
BaseCodecode
 

Additional Inherited Members

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

Detailed Description

Definition at line 126 of file MethodClass.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
PRIVATE_FLAG 
UNGUARDED_FLAG 
PROTECTED_FLAG 
ATTRIBUTE_METHOD 
CONSTANT_METHOD 
ABSTRACT_METHOD 
PACKAGE_FLAG 

Definition at line 200 of file MethodClass.hpp.

Constructor & Destructor Documentation

◆ RexxMethod() [1/7]

RexxMethod::RexxMethod ( RexxString name,
BaseCode codeObj 
)

Initialize a Routine object from a generated code object. Generally used for routines generated from ::METHOD directives.

Parameters
nameThe routine name.
codeObjThe associated code object.

Definition at line 183 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, and OrefSet.

◆ RexxMethod() [2/7]

RexxMethod::RexxMethod ( RexxString name,
RexxSource _source 
)

Generate a method directly from a source object.

Parameters
sourceThe source object.

Definition at line 162 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, RexxSource::generateCode(), and OrefSet.

◆ RexxMethod() [3/7]

RexxMethod::RexxMethod ( RexxString name)

Initialize a RexxMethod object from a file source.

Parameters
nameThe routine name (and the resolved name of the file).

Definition at line 195 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, RexxSource::generateCode(), and OrefSet.

◆ RexxMethod() [4/7]

RexxMethod::RexxMethod ( RexxString name,
RexxBuffer buf 
)

Initialize a Routine object using a buffered source.

Parameters
nameThe name of the routine.
sourcethe source buffer.

Definition at line 217 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, RexxSource::generateCode(), and OrefSet.

◆ RexxMethod() [5/7]

RexxMethod::RexxMethod ( RexxString name,
const char *  data,
size_t  length 
)

Initialize a Routine object using directly provided source.

Parameters
nameThe name of the routine.
dataThe source data buffer pointer.
lengththe length of the source buffer.

Definition at line 240 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, RexxSource::generateCode(), and OrefSet.

◆ RexxMethod() [6/7]

RexxMethod::RexxMethod ( RexxString name,
RexxArray s 
)

Initialize a Routine object using an array source.

Parameters
nameThe name of the routine.
sourcethe source buffer.

Definition at line 262 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, RexxSource::generateCode(), and OrefSet.

◆ RexxMethod() [7/7]

RexxMethod::RexxMethod ( RESTORETYPE  restoreType)
inline

Definition at line 137 of file MethodClass.hpp.

Member Function Documentation

◆ clearAttribute()

void RexxMethod::clearAttribute ( )
inline

Definition at line 179 of file MethodClass.hpp.

References ATTRIBUTE_METHOD, and methodFlags.

Referenced by setAttribute().

◆ createInstance()

void RexxMethod::createInstance ( )
static

Create initial class object at bootstrap time.

Definition at line 74 of file MethodClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ execute()

void RexxMethod::execute ( RexxObject ,
RexxObject  
)

◆ flatten()

void RexxMethod::flatten ( RexxEnvelope envelope)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 299 of file MethodClass.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ getCode()

BaseCode* RexxMethod::getCode ( )
inline

Definition at line 187 of file MethodClass.hpp.

References BaseExecutable::code.

◆ getScope()

◆ getScopeName()

RexxString * RexxMethod::getScopeName ( )

Retrieve a string name for the method scope. If the scope is .nil, then ".NIL" is returned, otherwise the class name is used.

Returns
A string name for the scope.

Definition at line 509 of file MethodClass.cpp.

References TheNilObject.

◆ getScopeRexx()

RexxObject * RexxMethod::getScopeRexx ( )

Returns the defining class scope for a method. Returns .nil for any method not defined by a class scope.

Returns
The scope class or .nil.

Definition at line 497 of file MethodClass.cpp.

References resultOrNil().

Referenced by RexxMemory::createImage().

◆ isAbstract()

bool RexxMethod::isAbstract ( )
inline

Definition at line 169 of file MethodClass.hpp.

References ABSTRACT_METHOD, and methodFlags.

◆ isAbstractRexx()

RexxObject * RexxMethod::isAbstractRexx ( )

Indicate if this is an abstract method

Returns
.true if the method is abstract. .false otherwise.

Definition at line 459 of file MethodClass.cpp.

References booleanObject().

Referenced by RexxMemory::createImage().

◆ isAttribute()

bool RexxMethod::isAttribute ( )
inline

Definition at line 168 of file MethodClass.hpp.

References ATTRIBUTE_METHOD, and methodFlags.

◆ isAttributeRexx()

RexxObject * RexxMethod::isAttributeRexx ( )

Indicate if this method was defined as an attribute method (using ::attribute or ::method attribute)

Returns
.true if the method is defined as an attribute. .false otherwise.

Definition at line 472 of file MethodClass.cpp.

References booleanObject().

Referenced by RexxMemory::createImage().

◆ isConstant()

bool RexxMethod::isConstant ( )
inline

Definition at line 167 of file MethodClass.hpp.

References CONSTANT_METHOD, and methodFlags.

◆ isConstantRexx()

RexxObject * RexxMethod::isConstantRexx ( )

Indicate if this method was defined as a constant method (using ::constant)

Returns
.true if the method is defined as an attribute. .false otherwise.

Definition at line 485 of file MethodClass.cpp.

References booleanObject().

Referenced by RexxMemory::createImage().

◆ isGuarded()

bool RexxMethod::isGuarded ( )
inline

◆ isGuardedRexx()

RexxObject * RexxMethod::isGuardedRexx ( )

Return the Guarded setting for a method object.

Returns
.true if the method is guarded. .false otherwise.

Definition at line 416 of file MethodClass.cpp.

References TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ isPackageRexx()

RexxObject * RexxMethod::isPackageRexx ( )

Return the Package setting for a method object.

Returns
.true if the method is package scope. .false otherwise.

Definition at line 437 of file MethodClass.cpp.

References booleanObject().

Referenced by RexxMemory::createImage().

◆ isPackageScope()

bool RexxMethod::isPackageScope ( )
inline

Definition at line 165 of file MethodClass.hpp.

References methodFlags, and PACKAGE_FLAG.

Referenced by RexxObject::messageSend().

◆ isPrivate()

bool RexxMethod::isPrivate ( )
inline

Definition at line 163 of file MethodClass.hpp.

References methodFlags, and PRIVATE_FLAG.

Referenced by RexxObject::messageSend().

◆ isPrivateRexx()

RexxObject * RexxMethod::isPrivateRexx ( )

Return the Private setting for a method object.

Returns
.true if the method is private. .false otherwise.

Definition at line 426 of file MethodClass.cpp.

References TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ isProtected()

bool RexxMethod::isProtected ( )
inline

Definition at line 164 of file MethodClass.hpp.

References methodFlags, and PROTECTED_FLAG.

Referenced by RexxObject::messageSend().

◆ isProtectedRexx()

RexxObject * RexxMethod::isProtectedRexx ( )

Return the Protected setting for a method object.

Returns
.true if the method is protected. .false otherwise.

Definition at line 448 of file MethodClass.cpp.

References TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ isSamePackage()

bool RexxMethod::isSamePackage ( PackageClass p)
inline

Definition at line 191 of file MethodClass.hpp.

References BaseExecutable::code, and BaseCode::isSamePackage().

Referenced by RexxObject::checkPackage().

◆ isSpecial()

bool RexxMethod::isSpecial ( )
inline

Definition at line 166 of file MethodClass.hpp.

References methodFlags, PACKAGE_FLAG, PRIVATE_FLAG, and PROTECTED_FLAG.

Referenced by RexxObject::messageSend().

◆ live()

void RexxMethod::live ( size_t  liveMark)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 277 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, and memory_mark.

◆ liveGeneral()

void RexxMethod::liveGeneral ( int  reason)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 288 of file MethodClass.cpp.

References BaseExecutable::code, BaseExecutable::executableName, and memory_mark_general.

◆ loadExternalMethod()

RexxMethod * RexxMethod::loadExternalMethod ( RexxString name,
RexxString descriptor 
)

Create a method from an external library source.

Parameters
nameThe method name.
Returns
The resolved method object, or OREF_NULL if unable to load the routine.

Definition at line 974 of file MethodClass.cpp.

References Error_Translation_bad_external, RexxArray::get(), RexxString::getLength(), RexxString::getStringData(), PackageManager::loadMethod(), OREF_NULL, reportException(), RexxArray::size(), stringArgument(), TheNilObject, and StringUtil::words().

Referenced by RexxMemory::createImage().

◆ newFileRexx()

◆ newMethodObject()

RexxMethod * RexxMethod::newMethodObject ( RexxString pgmname,
RexxObject source,
RexxObject position,
RexxSource parentSource,
bool  isBlock = false 
)
static

Static method used for constructing new method objects in various contexts (such as the define method on the Class class).

Parameters
pgmnameThe name of the method we're creating.
sourceThe method source (either a string or an array).
positionThe position used for reporting errors. This is the position of the source argument for the calling method context.
parentScopeThe parent code we inherit routine scope from. This overrides anything that might be defined in single method code.
Returns
The constructed method object.

Definition at line 593 of file MethodClass.cpp.

References ActivityManager::currentActivity, Error_Incorrect_method_no_method, Error_Incorrect_method_noarray, Error_Incorrect_method_nostring_inarray, RexxArray::get(), RexxActivity::getCurrentRexxFrame(), RexxArray::getDimension(), BaseExecutable::getSourceObject(), RexxActivation::getSourceObject(), RexxSource::inheritSourceContext(), IntegerTwo, RexxObject::makeString(), RexxArray::makeString(), new_array(), OREF_NULL, RexxArray::put(), reportException(), RexxObject::requestArray(), RexxSource::setIsBlock(), RexxArray::size(), BaseExecutable::source(), and TheNilObject.

Referenced by RexxClass::defineMethod(), RexxClass::methodDictionaryCreate(), newRexx(), RexxObject::run(), RexxDirectory::setMethod(), and RexxObject::setMethod().

◆ newRexx()

◆ newScope()

◆ operator new() [1/2]

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

Definition at line 130 of file MethodClass.hpp.

◆ operator new() [2/2]

void * RexxMethod::operator new ( size_t  size)

Definition at line 568 of file MethodClass.cpp.

References new_object(), and T_Method.

◆ restore()

RexxMethod * RexxMethod::restore ( RexxBuffer buffer,
char *  startPointer,
size_t  length 
)
static

Definition at line 791 of file MethodClass.cpp.

References RexxEnvelope::getReceiver(), and RexxEnvelope::puff().

◆ run()

◆ saveMethod()

RexxSmartBuffer * RexxMethod::saveMethod ( )

Definition at line 553 of file MethodClass.cpp.

References RexxEnvelope::getBuffer(), and RexxEnvelope::pack().

◆ setAbstract()

void RexxMethod::setAbstract ( )
inline

Definition at line 180 of file MethodClass.hpp.

References ABSTRACT_METHOD, and methodFlags.

Referenced by RexxSource::createAbstractMethod(), and RexxSource::methodDirective().

◆ setAttribute() [1/2]

◆ setAttribute() [2/2]

void RexxMethod::setAttribute ( bool  v)
inline

Definition at line 181 of file MethodClass.hpp.

References clearAttribute(), and setAttribute().

Referenced by setAttribute().

◆ setAttributes()

void RexxMethod::setAttributes ( AccessFlag  _access,
ProtectedFlag  _protected,
GuardFlag  _guarded 
)

Set the entire set of method attributes with one call. Used during source compilation.

Parameters
_accessThe access setting.
_protectedThe protected setting.
_guardedThe guarded setting.

Definition at line 523 of file MethodClass.cpp.

References PACKAGE_SCOPE, PRIVATE_SCOPE, PROTECTED_METHOD, and UNGUARDED_METHOD.

Referenced by RexxSource::attributeDirective(), RexxSource::createAbstractMethod(), RexxSource::createAttributeGetterMethod(), RexxSource::createAttributeSetterMethod(), RexxSource::createMethod(), and RexxSource::methodDirective().

◆ setConstant()

void RexxMethod::setConstant ( )
inline

Definition at line 177 of file MethodClass.hpp.

References CONSTANT_METHOD, and methodFlags.

Referenced by RexxSource::createConstantGetterMethod().

◆ setGuarded()

void RexxMethod::setGuarded ( )
inline

Definition at line 172 of file MethodClass.hpp.

References methodFlags, and UNGUARDED_FLAG.

◆ setGuardedRexx()

RexxObject * RexxMethod::setGuardedRexx ( )

Definition at line 384 of file MethodClass.cpp.

References OREF_NULL.

Referenced by RexxMemory::createImage().

◆ setPackageScope()

void RexxMethod::setPackageScope ( )
inline

Definition at line 175 of file MethodClass.hpp.

References methodFlags, and PACKAGE_FLAG.

◆ setPrivate()

void RexxMethod::setPrivate ( )
inline

Definition at line 174 of file MethodClass.hpp.

References methodFlags, and PRIVATE_FLAG.

Referenced by RexxMemory::definePrivateKernelMethod().

◆ setPrivateRexx()

RexxObject * RexxMethod::setPrivateRexx ( )

Definition at line 393 of file MethodClass.cpp.

References OREF_NULL.

Referenced by RexxMemory::createImage().

◆ setProtected()

void RexxMethod::setProtected ( )
inline

Definition at line 176 of file MethodClass.hpp.

References methodFlags, and PROTECTED_FLAG.

Referenced by RexxMemory::defineProtectedKernelMethod().

◆ setProtectedRexx()

RexxObject * RexxMethod::setProtectedRexx ( )

Definition at line 402 of file MethodClass.cpp.

References OREF_NULL.

Referenced by RexxMemory::createImage().

◆ setScope()

void RexxMethod::setScope ( RexxClass _scope)

◆ setSecurityManager()

RexxObject * RexxMethod::setSecurityManager ( RexxObject manager)

Definition at line 356 of file MethodClass.cpp.

References BaseExecutable::code, and BaseCode::setSecurityManager().

Referenced by RexxMemory::createImage().

◆ setUnguarded()

void RexxMethod::setUnguarded ( )
inline

Definition at line 171 of file MethodClass.hpp.

References methodFlags, and UNGUARDED_FLAG.

Referenced by RexxSource::createConstantGetterMethod().

◆ setUnguardedRexx()

RexxObject * RexxMethod::setUnguardedRexx ( )

Definition at line 375 of file MethodClass.cpp.

References OREF_NULL.

Referenced by RexxMemory::createImage().

Member Data Documentation

◆ classInstance

RexxClass * RexxMethod::classInstance = OREF_NULL
static

Definition at line 197 of file MethodClass.hpp.

◆ methodFlags

◆ scope

RexxClass* RexxMethod::scope
protected

Definition at line 212 of file MethodClass.hpp.

Referenced by getScope(), and newScope().


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