RexxNativeCode Class Reference

#include <RexxNativeCode.hpp>

Inheritance diagram for RexxNativeCode:
[legend]

Public Member Functions

 RexxNativeCode ()
 
 RexxNativeCode (RexxString *p, RexxString *n)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *envelope)
 
virtual RexxSource * getSourceObject ()
 
virtual RexxClass * findClass (RexxString *className)
 
virtual BaseCode * setSourceObject (RexxSource *s)
 
SecurityManager * getSecurityManager ()
 
- Public Member Functions inherited from BaseCode
virtual void run (RexxActivity *, RexxMethod *, RexxObject *, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
 
virtual void call (RexxActivity *, RoutineClass *, RexxString *, RexxObject **, size_t, size_t, RexxString *, RexxString *, int, ProtectedObject &)
 
virtual void call (RexxActivity *, RoutineClass *, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
 
virtual RexxArray * getSource ()
 
virtual RexxObject * setSecurityManager (RexxObject *manager)
 
virtual PackageClass * getPackage ()
 
bool isSamePackage (PackageClass *p)
 
- 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 ()
 
RexxBehaviour * getObjectType ()
 
bool isObjectType (RexxBehaviour *b)
 
bool isObjectType (size_t t)
 
bool isSameType (RexxInternalObject *o)
 
void setBehaviour (RexxBehaviour *b)
 
virtual RexxObject * makeProxy (RexxEnvelope *)
 
virtual RexxObject * copy ()
 
virtual RexxObject * evaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObject * getValue (RexxActivation *)
 
virtual RexxObject * getValue (RexxVariableDictionary *)
 
virtual RexxObject * getRealValue (RexxActivation *)
 
virtual RexxObject * getRealValue (RexxVariableDictionary *)
 
virtual void uninit ()
 
virtual HashCode hash ()
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
virtual bool truthValue (int)
 
virtual bool logicalValue (logical_t &)
 
virtual RexxString * makeString ()
 
virtual RexxText * makeText ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxString * primitiveMakeString ()
 
virtual RexxText * primitiveMakeText ()
 
virtual RexxArray * makeArray ()
 
virtual RexxString * stringValue ()
 
virtual RexxText * textValue ()
 
virtual RexxInteger * integerValue (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 RexxNumberString * numberString ()
 
virtual bool isEqual (RexxObject *)
 
virtual bool isInstanceOf (RexxClass *)
 
virtual RexxMethod * instanceMethod (RexxString *)
 
virtual RexxSupplier * instanceMethods (RexxClass *)
 
virtual RexxObject * dynamicTarget (RexxObject **arguments, size_t count, size_t named_count)
 
void hasUninit ()
 
void removedUninit ()
 
void printObject ()
 
RexxObject * clone ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObject * unflatten (RexxEnvelope *)
 

Protected Attributes

RexxString * package
 
RexxString * name
 
RexxSource * source
 

Additional Inherited Members

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

Detailed Description

Definition at line 50 of file RexxNativeCode.hpp.

Constructor & Destructor Documentation

◆ RexxNativeCode() [1/2]

RexxNativeCode::RexxNativeCode ( )
inline

Definition at line 54 of file RexxNativeCode.hpp.

◆ RexxNativeCode() [2/2]

RexxNativeCode::RexxNativeCode ( RexxString *  p,
RexxString *  n 
)

Definition at line 56 of file RexxNativeCode.cpp.

References name, OREF_NULL, OrefSet, package, and source.

Member Function Documentation

◆ findClass()

RexxClass * RexxNativeCode::findClass ( RexxString *  className)
virtual

Resolve a class in the context of this code object.

Parameters
classNameThe name of the desired class.
Returns
The returned class.

Reimplemented from BaseCode.

Definition at line 114 of file RexxNativeCode.cpp.

References RexxSource::findClass(), BaseCode::findClass(), OREF_NULL, and source.

◆ flatten()

void RexxNativeCode::flatten ( RexxEnvelope *  envelope)
virtual

◆ getSecurityManager()

SecurityManager * RexxNativeCode::getSecurityManager ( )

Get the security manager associated with native code. Generally, only native methods and routines defined with directives will have an associated security manager.

Returns
The source security manager.

Definition at line 170 of file RexxNativeCode.cpp.

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

Referenced by RexxNativeActivation::callNativeRoutine(), and RexxNativeActivation::run().

◆ getSourceObject()

RexxSource * RexxNativeCode::getSourceObject ( )
virtual

Get the source object backing this code instance. If created from a directive, this will be the source package containing the directive.

Returns
The parent source instance.

Reimplemented from BaseCode.

Definition at line 157 of file RexxNativeCode.cpp.

References source.

◆ live()

void RexxNativeCode::live ( size_t  liveMark)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 67 of file RexxNativeCode.cpp.

References memory_mark, name, package, and source.

◆ liveGeneral()

void RexxNativeCode::liveGeneral ( int  reason)
virtual

◆ setSourceObject()

BaseCode * RexxNativeCode::setSourceObject ( RexxSource *  s)
virtual

Set a source object into a native code context. If the object is already set, then this returns a copy of the code object.

Parameters
sThe new source object.
Returns
Either the same object, or a new copy of the code object.

Reimplemented from BaseCode.

Definition at line 134 of file RexxNativeCode.cpp.

References RexxInternalObject::copy(), OREF_NULL, OrefSet, and source.

Referenced by RexxSource::createNativeMethod().

Member Data Documentation

◆ name

RexxString* RexxNativeCode::name
protected

◆ package

RexxString* RexxNativeCode::package
protected

◆ source

RexxSource* RexxNativeCode::source
protected

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