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)
 
RexxObjectcopy ()
 
void copyValues ()
 
RexxObjectrealValue (RexxString *name)
 
void add (RexxVariable *, RexxString *)
 
void put (RexxVariable *, RexxString *)
 
RexxStemgetStem (RexxString *stemName)
 
RexxVariablecreateStemVariable (RexxString *stemName)
 
RexxVariablecreateVariable (RexxString *stemName)
 
RexxVariableresolveVariable (RexxString *name)
 
RexxVariablegetVariable (RexxString *name)
 
RexxVariablegetStemVariable (RexxString *stemName)
 
void setCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount, RexxObject *value)
 
void dropCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxDirectorygetAllVariables ()
 
void remove (RexxString *n)
 
RexxVariablenextVariable (RexxNativeActivation *)
 
void set (RexxString *, RexxObject *)
 
void drop (RexxString *)
 
void dropStemVariable (RexxString *)
 
void reserve (RexxActivity *)
 
unsigned short getReserveCount ()
 
void release (RexxActivity *)
 
bool transfer (RexxActivity *)
 
RexxCompoundElementgetCompoundVariable (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxObjectgetCompoundVariableValue (RexxString *stemName, RexxObject **tail, size_t tailCount)
 
RexxObjectgetCompoundVariableRealValue (RexxString *stem, RexxObject **tail, size_t tailCount)
 
RexxObjectrealStemValue (RexxString *stemName)
 
bool isScope (RexxObject *otherScope)
 
RexxVariableDictionarygetNextDictionary ()
 
RexxActivitygetReservingActivity ()
 
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 ()
 
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 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 RexxObjectunflatten (RexxEnvelope *)
 

Static Public Member Functions

static RexxVariableBasegetVariableRetriever (RexxString *variable)
 
static RexxVariableBasegetDirectVariableRetriever (RexxString *variable)
 
static RexxObjectbuildCompoundVariable (RexxString *variable_name, bool direct)
 
static RexxVariableDictionarynewInstance (size_t)
 
static RexxVariableDictionarynewInstance (RexxObject *)
 
- Static Public Member Functions inherited from RexxInternalObject
static size_t getObjectHeaderSize ()
 

Protected Attributes

RexxActivityreservingActivity
 
RexxHashTablecontents
 
RexxListwaitingActivities
 
unsigned short flags
 
unsigned short reserveCount
 
RexxVariableDictionarynext
 
RexxObjectscope
 

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 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: