ExtensionDirective Class Reference

#include <ExtensionDirective.hpp>

Inheritance diagram for ExtensionDirective:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 ExtensionDirective (RexxString *, RexxString *, RexxClause *)
 
 ExtensionDirective (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxStringgetName ()
 
void install (RexxSource *source, RexxActivation *activation)
 
void addInherits (RexxString *name)
 
void addMethod (RexxString *name, RexxMethod *method, bool classMethod)
 
void addConstantMethod (RexxString *name, RexxMethod *method)
 
bool checkDuplicateMethod (RexxString *name, bool classMethod)
 
- Public Member Functions inherited from RexxDirective
 RexxDirective ()
 
 RexxDirective (RexxClause *clause, int type)
 
- Public Member Functions inherited from RexxInstruction
void * operator new (size_t)
 
void * operator new (size_t size, void *objectPtr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxInstruction (RexxClause *clause, int type)
 
 RexxInstruction (RESTORETYPE restoreType)
 
 RexxInstruction ()
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
const SourceLocationgetLocation ()
 
void setLocation (SourceLocation &l)
 
virtual void execute (RexxActivation *, RexxExpressionStack *)
 
void setNext (RexxInstruction *next)
 
void setStart (size_t line, size_t off)
 
void setEnd (size_t line, size_t off)
 
void setType (size_t type)
 
size_t getType ()
 
bool isType (size_t type)
 
size_t getLineNumber ()
 
- 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 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 RexxTextmakeText ()
 
virtual void copyIntoTail (RexxCompoundTail *buffer)
 
virtual RexxStringprimitiveMakeString ()
 
virtual RexxTextprimitiveMakeText ()
 
virtual RexxArraymakeArray ()
 
virtual RexxStringstringValue ()
 
virtual RexxTexttextValue ()
 
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 *)
 
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 *)
 

Protected Member Functions

RexxTablegetClassMethods ()
 
RexxTablegetInstanceMethods ()
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Protected Attributes

RexxStringpublicName
 
RexxStringidName
 
RexxListinheritsClasses
 
RexxTableinstanceMethods
 
RexxTableclassMethods
 

Friends

class RexxSource
 

Additional Inherited Members

- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 
- Public Attributes inherited from RexxInstruction
uint16_t instructionType
 
uint16_t instructionFlags
 
SourceLocation instructionLocation
 
RexxInstructionnextInstruction
 
- Public Attributes inherited from RexxInternalObject
ObjectHeader header
 
RexxBehaviourbehaviour
 

Detailed Description

Definition at line 51 of file ExtensionDirective.hpp.

Constructor & Destructor Documentation

◆ ExtensionDirective() [1/2]

ExtensionDirective::ExtensionDirective ( RexxString n,
RexxString p,
RexxClause clause 
)

Construct an ExtensionDirective.

Parameters
nThe name of the requires target.
pThe public name of the requires target.
clauseThe source file clause containing the directive.

Definition at line 62 of file ExtensionDirective.cpp.

References idName, and publicName.

◆ ExtensionDirective() [2/2]

ExtensionDirective::ExtensionDirective ( RESTORETYPE  restoreType)
inline

Definition at line 61 of file ExtensionDirective.hpp.

Member Function Documentation

◆ addConstantMethod()

void ExtensionDirective::addConstantMethod ( RexxString name,
RexxMethod method 
)

Add a method to an extension definition.

Parameters
nameThe name to add.
methodThe method object that maps to this name.

Definition at line 292 of file ExtensionDirective.cpp.

References addMethod().

Referenced by RexxSource::createConstantGetterMethod().

◆ addInherits()

void ExtensionDirective::addInherits ( RexxString name)

Add an inherits class to the class definition.

Parameters
nameThe name of the inherited class.

Definition at line 202 of file ExtensionDirective.cpp.

References RexxList::append(), inheritsClasses, new_list(), OREF_NULL, and OrefSet.

◆ addMethod()

void ExtensionDirective::addMethod ( RexxString name,
RexxMethod method,
bool  classMethod 
)

Add a method to an extension definition.

Parameters
nameThe name to add.
methodThe method object that maps to this name.
classMethodIndicates whether this is a new class or instance method.

Definition at line 273 of file ExtensionDirective.cpp.

References getClassMethods(), getInstanceMethods(), and RexxHashTableCollection::put().

Referenced by addConstantMethod(), and RexxSource::addMethod().

◆ checkDuplicateMethod()

bool ExtensionDirective::checkDuplicateMethod ( RexxString name,
bool  classMethod 
)

Check for a duplicate method defined om this class.

Parameters
nameThe method name.
classMethodIndicates whether we are checking for a class or instance method.
Returns
true if this is a duplicate of the method type.

Definition at line 251 of file ExtensionDirective.cpp.

References RexxHashTableCollection::get(), getClassMethods(), getInstanceMethods(), and OREF_NULL.

Referenced by RexxSource::checkDuplicateMethod().

◆ flatten()

void ExtensionDirective::flatten ( RexxEnvelope envelope)
virtual

Flatten the directive instance.

Parameters
envelopeThe envelope we're flattening into.

Reimplemented from RexxVirtualBase.

Definition at line 105 of file ExtensionDirective.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ getClassMethods()

RexxTable * ExtensionDirective::getClassMethods ( )
protected

Retrieve the class methods directory for this class.

Returns
The class methods directory.

Definition at line 217 of file ExtensionDirective.cpp.

References classMethods, new_table(), OREF_NULL, and OrefSet.

Referenced by addMethod(), and checkDuplicateMethod().

◆ getInstanceMethods()

RexxTable * ExtensionDirective::getInstanceMethods ( )
protected

Retrieve the instance methods directory for this class.

Returns
The instance methods directory.

Definition at line 232 of file ExtensionDirective.cpp.

References instanceMethods, new_table(), OREF_NULL, and OrefSet.

Referenced by addMethod(), and checkDuplicateMethod().

◆ getName()

RexxString* ExtensionDirective::getName ( )
inline

Definition at line 67 of file ExtensionDirective.hpp.

References publicName.

◆ install()

◆ live()

void ExtensionDirective::live ( size_t  liveMark)
virtual

Normal garbage collecting live mark.

Parameters
liveMarkThe current live object mark.

Reimplemented from RexxVirtualBase.

Definition at line 73 of file ExtensionDirective.cpp.

References classMethods, idName, inheritsClasses, instanceMethods, memory_mark, RexxInstruction::nextInstruction, and publicName.

◆ liveGeneral()

void ExtensionDirective::liveGeneral ( int  reason)
virtual

The generalized object marking routine.

Parameters
reasonThe processing faze we're running the mark on.

Reimplemented from RexxVirtualBase.

Definition at line 89 of file ExtensionDirective.cpp.

References classMethods, idName, inheritsClasses, instanceMethods, memory_mark_general, RexxInstruction::nextInstruction, and publicName.

◆ operator delete() [1/2]

void ExtensionDirective::operator delete ( void *  )
inline

Definition at line 57 of file ExtensionDirective.hpp.

◆ operator delete() [2/2]

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

Definition at line 58 of file ExtensionDirective.hpp.

◆ operator new() [1/2]

void* ExtensionDirective::operator new ( size_t  size,
void *  objectPtr 
)
inline

Definition at line 56 of file ExtensionDirective.hpp.

◆ operator new() [2/2]

void * ExtensionDirective::operator new ( size_t  size)

Allocate a new requires directive.

Parameters
sizeThe size of the object.
Returns
The memory for the new object.

Definition at line 129 of file ExtensionDirective.cpp.

References new_object(), and T_ExtensionDirective.

Friends And Related Function Documentation

◆ RexxSource

friend class RexxSource
friend

Definition at line 53 of file ExtensionDirective.hpp.

Member Data Documentation

◆ classMethods

RexxTable* ExtensionDirective::classMethods
protected

Definition at line 86 of file ExtensionDirective.hpp.

Referenced by getClassMethods(), install(), live(), and liveGeneral().

◆ idName

RexxString* ExtensionDirective::idName
protected

Definition at line 83 of file ExtensionDirective.hpp.

Referenced by ExtensionDirective(), install(), live(), and liveGeneral().

◆ inheritsClasses

RexxList* ExtensionDirective::inheritsClasses
protected

Definition at line 84 of file ExtensionDirective.hpp.

Referenced by addInherits(), install(), live(), and liveGeneral().

◆ instanceMethods

RexxTable* ExtensionDirective::instanceMethods
protected

Definition at line 85 of file ExtensionDirective.hpp.

Referenced by getInstanceMethods(), install(), live(), and liveGeneral().

◆ publicName

RexxString* ExtensionDirective::publicName
protected

Definition at line 82 of file ExtensionDirective.hpp.

Referenced by ExtensionDirective(), getName(), live(), and liveGeneral().


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