RexxIdentityTable Class Reference

#include <IdentityTableClass.hpp>

Inheritance diagram for RexxIdentityTable:
[legend]

Public Member Functions

void * operator new (size_t size, void *objectPtr)
 
 RexxIdentityTable (RESTORETYPE restoreType)
 
virtual RexxObjectremove (RexxObject *key)
 
virtual RexxObjectget (RexxObject *key)
 
virtual RexxObjectput (RexxObject *, RexxObject *)
 
virtual RexxObjectadd (RexxObject *, RexxObject *)
 
virtual RexxObjectremoveItem (RexxObject *value)
 
virtual RexxObjecthasItem (RexxObject *targetIndex)
 
virtual RexxObjectgetIndex (RexxObject *value)
 
RexxObjecthasItem (RexxObject *newValue, RexxObject *targetIndex)
 
RexxArrayallAt (RexxObject *key)
 
RexxObjectfindSuperScope (RexxObject *v)
 
RexxObjectnewRexx (RexxObject **, size_t, size_t)
 
- Public Member Functions inherited from RexxTable
 RexxTable ()
 
void * operator new (size_t size, void *objectPtr)
 
 RexxTable (RESTORETYPE restoreType)
 
RexxObjectitemsRexx ()
 
void reset ()
 
RexxObjectputNodupe (RexxObject *, RexxObject *)
 
RexxObjectstringPut (RexxObject *, RexxString *)
 
RexxObjectstringAdd (RexxObject *, RexxString *)
 
RexxObjectaddOffset (size_t, RexxObject *)
 
RexxObjectreplace (RexxObject *newValue, HashLink pos)
 
RexxArrayallAt (RexxObject *key)
 
void reHash ()
 
RexxArrayrequestArray ()
 
RexxArraystringGetAll (RexxString *key)
 
RexxObjectstringGet (RexxString *key)
 
RexxObjectnewRexx (RexxObject **, size_t, size_t)
 
- Public Member Functions inherited from RexxHashTableCollection
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectunflatten (RexxEnvelope *)
 
RexxObjectmakeProxy (RexxEnvelope *)
 
RexxObjectcopy ()
 
RexxArraymakeArray ()
 
virtual RexxObjectmergeItem (RexxObject *, RexxObject *)
 
RexxObjectcopyValues (int depth)
 
RexxObjectremoveRexx (RexxObject *)
 
RexxObjectgetRexx (RexxObject *)
 
RexxObjectputRexx (RexxObject *, RexxObject *)
 
RexxObjectaddRexx (RexxObject *, RexxObject *)
 
RexxObjecthasIndexRexx (RexxObject *)
 
RexxObjecthasItemRexx (RexxObject *)
 
RexxObjectremoveItemRexx (RexxObject *value)
 
RexxObjectallAt (RexxObject *)
 
RexxObjectindexRexx (RexxObject *value)
 
RexxSuppliersupplier ()
 
RexxObjectmerge (RexxHashTableCollection *)
 
RexxArrayallItems ()
 
RexxArrayallIndexes ()
 
RexxArrayuniqueIndexes ()
 
RexxObjectempty ()
 
RexxObjectisEmpty ()
 
HashLink items ()
 
HashLink first ()
 
HashLink next (HashLink pos)
 
RexxObjectvalue (HashLink pos)
 
RexxObjectindex (HashLink pos)
 
bool available (HashLink pos)
 
- 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 ()
 
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)
 
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 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 ()
 

Static Public Member Functions

static void createInstance ()
 
static RexxIdentityTablenewInstance (size_t size)
 
- Static Public Member Functions inherited from RexxTable
static RexxTablenewInstance ()
 
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 RexxTable
static RexxClassclassInstance = OREF_NULL
 
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
 
static RexxClassclassInstance = OREF_NULL
 

Additional Inherited Members

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

Detailed Description

Definition at line 49 of file IdentityTableClass.hpp.

Constructor & Destructor Documentation

◆ RexxIdentityTable()

RexxIdentityTable::RexxIdentityTable ( RESTORETYPE  restoreType)
inline

Definition at line 53 of file IdentityTableClass.hpp.

Member Function Documentation

◆ add()

RexxObject * RexxIdentityTable::add ( RexxObject _value,
RexxObject _index 
)
virtual

Override for the default hash collection add() method.

Parameters
_valueThe value to insert.
_indexThe index this will be stored under.
Returns
Always returns OREF_NULL.

Reimplemented from RexxHashTableCollection.

Definition at line 168 of file IdentityTableClass.cpp.

References RexxHashTableCollection::contents, OREF_NULL, OrefSet, and RexxHashTable::primitiveAdd().

Referenced by RexxBehaviour::addScope(), RexxClass::newRexx(), RexxMemory::saveObject(), RexxClass::setMetaClass(), and RexxClass::subclass().

◆ allAt()

◆ createInstance()

void RexxIdentityTable::createInstance ( )
static

Create initial class object at bootstrap time.

Definition at line 58 of file IdentityTableClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ findSuperScope()

RexxObject* RexxIdentityTable::findSuperScope ( RexxObject v)
inline

◆ get()

RexxObject * RexxIdentityTable::get ( RexxObject key)
virtual

Retrieve an object from the table using identity semantics. This is an override for the base collection get method.

Parameters
keyThe target index.
Returns
The retrieved object. Returns OREF_NULL if the key is not found.

Reimplemented from RexxHashTableCollection.

Definition at line 118 of file IdentityTableClass.cpp.

References RexxHashTableCollection::contents, and RexxHashTable::primitiveGet().

Referenced by RexxMemory::addUninitObject(), RexxBehaviour::checkScope(), RexxMemory::gutCheck(), RexxMemory::isPendingUninit(), RexxEnvelope::queryObj(), RexxMemory::setOref(), RexxClass::subclass(), and RexxBehaviour::superMethod().

◆ getIndex()

RexxObject * RexxIdentityTable::getIndex ( RexxObject target)
virtual

Retrieve an index for a given item. Which index is returned is indeterminate.

Parameters
targetThe target object.
Returns
The index for the target object, or .nil if no object was found.

Reimplemented from RexxHashTableCollection.

Definition at line 217 of file IdentityTableClass.cpp.

References RexxHashTableCollection::contents, and RexxHashTable::primitiveGetIndex().

◆ hasItem() [1/2]

RexxObject* RexxIdentityTable::hasItem ( RexxObject newValue,
RexxObject targetIndex 
)
inline

◆ hasItem() [2/2]

RexxObject * RexxIdentityTable::hasItem ( RexxObject target)
virtual

Test if a given item exists in the collection.

Parameters
targetThe target object.
Returns
.true if the object exists, .false otherwise.

Reimplemented from RexxHashTableCollection.

Definition at line 202 of file IdentityTableClass.cpp.

References RexxHashTableCollection::contents, and RexxHashTable::primitiveHasItem().

◆ newInstance()

RexxIdentityTable * RexxIdentityTable::newInstance ( size_t  size)
static

Create a new instance of an identity table.

Parameters
sizeThe initial table capacity.
Returns
The newly created table.

Definition at line 131 of file IdentityTableClass.cpp.

References new_hashCollection(), and T_IdentityTable.

◆ newRexx()

RexxObject * RexxIdentityTable::newRexx ( RexxObject **  args,
size_t  argCount,
size_t  named_argCount 
)

Create a new identity table instance.

Parameters
argsThe new arguments.
argCountThe count of new arguments.
Returns
The constructed instance.

Definition at line 72 of file IdentityTableClass.cpp.

References RexxClass::checkAbstract(), RexxClass::getInstanceBehaviour(), RexxInternalObject::hasUninit(), RexxClass::hasUninitDefined(), new_identity_table(), RexxObject::sendMessage(), and RexxInternalObject::setBehaviour().

Referenced by RexxMemory::createImage().

◆ operator new()

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

Definition at line 51 of file IdentityTableClass.hpp.

◆ put()

RexxObject * RexxIdentityTable::put ( RexxObject _value,
RexxObject _index 
)
virtual

◆ remove()

◆ removeItem()

RexxObject * RexxIdentityTable::removeItem ( RexxObject target)
virtual

Remove an item specified by value.

Parameters
targetThe target object.
Returns
The target object again.

Reimplemented from RexxHashTableCollection.

Definition at line 188 of file IdentityTableClass.cpp.

References RexxHashTableCollection::contents, and RexxHashTable::primitiveRemoveItem().

Member Data Documentation

◆ classInstance

RexxClass * RexxIdentityTable::classInstance = OREF_NULL
static

Definition at line 70 of file IdentityTableClass.hpp.


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