RexxVariableDictionary Class Reference

#include <RexxVariableDictionary.hpp>

Inheritance diagram for RexxVariableDictionary:
[legend]

Public Member Functions

void * operator new (size_t size, void *ptr)
 
void operator delete (void *)
 
void operator delete (void *, void *)
 
 RexxVariableDictionary (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *envelope)
 
RexxObject * copy ()
 
void copyValues ()
 
RexxObject * realValue (RexxString *name)
 
void add (RexxVariable *, RexxString *)
 
void put (RexxVariable *, RexxString *)
 
RexxStem * getStem (RexxString *stemName)
 
RexxVariable * createStemVariable (RexxString *stemName)
 
RexxVariable * createVariable (RexxString *stemName)
 
RexxVariable * resolveVariable (RexxString *name)
 
RexxVariable * getVariable (RexxString *name)
 
RexxVariable * getStemVariable (RexxString *stemName)
 
void setCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount, RexxObject *value)
 
void dropCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxDirectory * getAllVariables ()
 
void remove (RexxString *n)
 
RexxVariable * nextVariable (RexxNativeActivation *)
 
void set (RexxString *, RexxObject *)
 
void drop (RexxString *)
 
void dropStemVariable (RexxString *)
 
void reserve (RexxActivity *)
 
unsigned short getReserveCount ()
 
void release (RexxActivity *)
 
bool transfer (RexxActivity *)
 
RexxCompoundElement * getCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxObject * getCompoundVariableValue (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxObject * getCompoundVariableRealValue (RexxString *stem, RexxObject **tail, size_t tailCount)
 
RexxObject * realStemValue (RexxString *stemName)
 
bool isScope (RexxObject *otherScope)
 
RexxVariableDictionary * getNextDictionary ()
 
RexxActivity * getReservingActivity ()
 
void setNextDictionary (RexxVariableDictionary *next)
 
- 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 * 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 *)
 

Static Public Member Functions

static RexxVariableBase * getVariableRetriever (RexxString *variable)
 
static RexxVariableBase * getDirectVariableRetriever (RexxString *variable)
 
static RexxObject * buildCompoundVariable (RexxString *variable_name, bool direct)
 
static RexxVariableDictionary * newInstance (size_t)
 
static RexxVariableDictionary * newInstance (RexxObject *)
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Protected Attributes

RexxActivity * reservingActivity
 
RexxHashTable * contents
 
RexxList * waitingActivities
 
unsigned short flags
 
unsigned short reserveCount
 
RexxVariableDictionary * next
 
RexxObject * scope
 

Additional Inherited Members

- 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 55 of file RexxVariableDictionary.hpp.

Constructor & Destructor Documentation

◆ RexxVariableDictionary()

RexxVariableDictionary::RexxVariableDictionary ( RESTORETYPE  restoreType)
inline

Definition at line 61 of file RexxVariableDictionary.hpp.

Member Function Documentation

◆ add()

void RexxVariableDictionary::add ( RexxVariable *  variable,
RexxString *  name 
)

Definition at line 222 of file RexxVariableDictionary.cpp.

References contents, OREF_NULL, OrefSet, and RexxHashTable::stringAdd().

◆ buildCompoundVariable()

RexxObject * RexxVariableDictionary::buildCompoundVariable ( RexxString *  variable_name,
bool  direct 
)
static

◆ copy()

◆ copyValues()

◆ createStemVariable()

RexxVariable * RexxVariableDictionary::createStemVariable ( RexxString *  stemName)

◆ createVariable()

RexxVariable * RexxVariableDictionary::createVariable ( RexxString *  stemName)

Definition at line 280 of file RexxVariableDictionary.cpp.

References contents, new_variable(), OREF_NULL, OrefSet, and RexxHashTable::stringAdd().

Referenced by getVariable().

◆ drop()

void RexxVariableDictionary::drop ( RexxString *  name)

Drop the value of a named variable in the method dictionary.

Parameters
nameThe string name of the variable.

Definition at line 119 of file RexxVariableDictionary.cpp.

References RexxVariable::drop(), OREF_NULL, and resolveVariable().

◆ dropCompoundVariable()

void RexxVariableDictionary::dropCompoundVariable ( RexxString *  stemName,
RexxObject **  tail,
size_t  tailCount 
)

Drop a compound variable in the dictionary.

Parameters
stemNameThe name of the stem.
tailThe tail elements.
tailCountThe count of tail elements.
valueThe value to set.

Definition at line 576 of file RexxVariableDictionary.cpp.

References RexxStem::dropCompoundVariable(), and getStem().

Referenced by RexxCompoundVariable::drop().

◆ dropStemVariable()

void RexxVariableDictionary::dropStemVariable ( RexxString *  name)

Drop the value of a named variable in the method dictionary.

Parameters
nameThe string name of the variable.

Definition at line 135 of file RexxVariableDictionary.cpp.

References RexxVariable::drop(), OREF_NULL, resolveVariable(), and RexxVariable::set().

Referenced by RexxStemVariable::drop().

◆ flatten()

void RexxVariableDictionary::flatten ( RexxEnvelope *  envelope)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 491 of file RexxVariableDictionary.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ getAllVariables()

RexxDirectory * RexxVariableDictionary::getAllVariables ( )

Get all of the variables in the local context. This returns just the top-level variables (i.e., simple variables and stems).

Returns
A supplier for iterating the variable sset.

Definition at line 468 of file RexxVariableDictionary.cpp.

References contents, RexxHashTable::first(), RexxVariable::getName(), RexxVariable::getVariableValue(), new_directory(), OREF_NULL, RexxDirectory::put(), RexxHashTable::totalSlotsSize(), and RexxHashTable::value().

Referenced by RexxActivation::getAllLocalVariables().

◆ getCompoundVariable()

RexxCompoundElement * RexxVariableDictionary::getCompoundVariable ( RexxString *  stemName,
RexxObject **  tail,
size_t  tailCount 
)

Definition at line 148 of file RexxVariableDictionary.cpp.

References RexxStem::getCompoundVariable(), and getStem().

◆ getCompoundVariableRealValue()

RexxObject * RexxVariableDictionary::getCompoundVariableRealValue ( RexxString *  stem,
RexxObject **  tail,
size_t  tailCount 
)

Retrieve the "real" value of a compound variable. This return OREF_NULL for any situation where the compound variable name would be returned.

Parameters
stemThe name of the stem.
tailThe set of tails used for the lookup.
tailCountThe number of tail elements.
Returns
Either the variable value, or OREF_NULL for unassigned variables.

Definition at line 197 of file RexxVariableDictionary.cpp.

References RexxStem::getCompoundVariableRealValue(), and getStem().

Referenced by RexxCompoundVariable::getRealValue().

◆ getCompoundVariableValue()

RexxObject * RexxVariableDictionary::getCompoundVariableValue ( RexxString *  stemName,
RexxObject **  tail,
size_t  tailCount 
)

◆ getDirectVariableRetriever()

◆ getNextDictionary()

RexxVariableDictionary* RexxVariableDictionary::getNextDictionary ( )
inline

◆ getReserveCount()

unsigned short RexxVariableDictionary::getReserveCount ( )
inline

Definition at line 117 of file RexxVariableDictionary.hpp.

References reserveCount.

Referenced by RexxActivation::getReserveCount().

◆ getReservingActivity()

RexxActivity* RexxVariableDictionary::getReservingActivity ( )
inline

Definition at line 129 of file RexxVariableDictionary.hpp.

References reservingActivity.

◆ getStem()

◆ getStemVariable()

RexxVariable* RexxVariableDictionary::getStemVariable ( RexxString *  stemName)
inline

◆ getVariable()

◆ getVariableRetriever()

◆ isScope()

bool RexxVariableDictionary::isScope ( RexxObject *  otherScope)
inline

Definition at line 127 of file RexxVariableDictionary.hpp.

References scope.

Referenced by RexxObject::getObjectVariables().

◆ live()

void RexxVariableDictionary::live ( size_t  liveMark)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 437 of file RexxVariableDictionary.cpp.

References contents, memory_mark, next, reservingActivity, scope, and waitingActivities.

◆ liveGeneral()

void RexxVariableDictionary::liveGeneral ( int  reason)
virtual

Reimplemented from RexxVirtualBase.

Definition at line 449 of file RexxVariableDictionary.cpp.

References contents, memory_mark_general, next, reservingActivity, scope, and waitingActivities.

◆ newInstance() [1/2]

RexxVariableDictionary * RexxVariableDictionary::newInstance ( RexxObject *  scope)
static

◆ newInstance() [2/2]

RexxVariableDictionary * RexxVariableDictionary::newInstance ( size_t  looksize)
static

◆ nextVariable()

◆ operator delete() [1/2]

void RexxVariableDictionary::operator delete ( void *  )
inline

Definition at line 58 of file RexxVariableDictionary.hpp.

◆ operator delete() [2/2]

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

Definition at line 59 of file RexxVariableDictionary.hpp.

◆ operator new()

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

Definition at line 57 of file RexxVariableDictionary.hpp.

◆ put()

void RexxVariableDictionary::put ( RexxVariable *  variable,
RexxString *  name 
)

◆ realStemValue()

RexxObject * RexxVariableDictionary::realStemValue ( RexxString *  stemName)

Definition at line 210 of file RexxVariableDictionary.cpp.

References getStem().

◆ realValue()

RexxObject * RexxVariableDictionary::realValue ( RexxString *  name)

◆ release()

◆ remove()

void RexxVariableDictionary::remove ( RexxString *  n)
inline

Definition at line 110 of file RexxVariableDictionary.hpp.

References contents, and RexxHashTable::remove().

◆ reserve()

◆ resolveVariable()

RexxVariable* RexxVariableDictionary::resolveVariable ( RexxString *  name)
inline

◆ set()

void RexxVariableDictionary::set ( RexxString *  name,
RexxObject *  value 
)

Definition at line 330 of file RexxVariableDictionary.cpp.

References getVariable(), and RexxVariable::set().

Referenced by RexxObject::setObjectVariable().

◆ setCompoundVariable()

void RexxVariableDictionary::setCompoundVariable ( RexxString *  stemName,
RexxObject **  tail,
size_t  tailCount,
RexxObject *  value 
)

Set a compound variable in the dictionary.

Parameters
stemNameThe name of the stem.
tailThe tail elements.
tailCountThe count of tail elements.
valueThe value to set.

Definition at line 557 of file RexxVariableDictionary.cpp.

References getStem(), and RexxStem::setCompoundVariable().

Referenced by RexxCompoundVariable::set().

◆ setNextDictionary()

void RexxVariableDictionary::setNextDictionary ( RexxVariableDictionary *  next)

Definition at line 429 of file RexxVariableDictionary.cpp.

References next, and OrefSet.

Referenced by RexxObject::addObjectVariables(), and RexxObject::getObjectVariables().

◆ transfer()

bool RexxVariableDictionary::transfer ( RexxActivity *  activity)

Definition at line 409 of file RexxVariableDictionary.cpp.

References OrefSet, release(), reserveCount, and reservingActivity.

Referenced by RexxActivation::run().

Member Data Documentation

◆ contents

◆ flags

unsigned short RexxVariableDictionary::flags
protected

Definition at line 145 of file RexxVariableDictionary.hpp.

◆ next

RexxVariableDictionary* RexxVariableDictionary::next
protected

◆ reserveCount

unsigned short RexxVariableDictionary::reserveCount
protected

Definition at line 146 of file RexxVariableDictionary.hpp.

Referenced by getReserveCount(), release(), reserve(), and transfer().

◆ reservingActivity

RexxActivity* RexxVariableDictionary::reservingActivity
protected

◆ scope

RexxObject* RexxVariableDictionary::scope
protected

Definition at line 148 of file RexxVariableDictionary.hpp.

Referenced by copy(), isScope(), live(), liveGeneral(), and newInstance().

◆ waitingActivities

RexxList* RexxVariableDictionary::waitingActivities
protected

Definition at line 144 of file RexxVariableDictionary.hpp.

Referenced by live(), liveGeneral(), release(), and reserve().


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