ooRexx  4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax.
  Fossies Dox: ooRexx-4.2.0-source.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

RexxIdentityTable Class Reference

#include <IdentityTableClass.hpp>

Inheritance diagram for RexxIdentityTable:
[legend]
Collaboration 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)
 
- 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)
 
- 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)
 
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)
 
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)
 
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 ()
 
RexxStringprimitiveMakeString ()
 
void copyIntoTail (RexxCompoundTail *buffer)
 
RexxStringstringValue ()
 
RexxStringrequestString ()
 
RexxStringrequestStringNoNOSTRING ()
 
RexxIntegerrequestInteger (size_t)
 
bool requestNumber (wholenumber_t &, size_t)
 
bool requestUnsignedNumber (stringsize_t &, size_t)
 
RexxArrayrequestArray ()
 
RexxStringrequiredString (size_t)
 
RexxStringrequiredString (const char *)
 
RexxStringrequiredString ()
 
RexxIntegerrequiredInteger (size_t, size_t)
 
wholenumber_t requiredNumber (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredPositive (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
stringsize_t requiredNonNegative (size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
 
bool isEqual (RexxObject *)
 
bool isInstanceOf (RexxClass *)
 
RexxObjectisInstanceOfRexx (RexxClass *)
 
RexxMethodinstanceMethod (RexxString *)
 
RexxSupplierinstanceMethods (RexxClass *)
 
RexxMethodinstanceMethodRexx (RexxString *)
 
RexxSupplierinstanceMethodsRexx (RexxClass *)
 
RexxStringobjectName ()
 
RexxObjectobjectNameEquals (RexxObject *)
 
RexxClassclassObject ()
 
RexxObjectsetMethod (RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
 
RexxObjectunsetMethod (RexxString *)
 
RexxObjectrequestRexx (RexxString *)
 
RexxMessagestart (RexxObject **, size_t)
 
RexxMessagestartWith (RexxObject *, RexxArray *)
 
RexxObjectsend (RexxObject **, size_t)
 
RexxObjectsendWith (RexxObject *, RexxArray *)
 
RexxMessagestartCommon (RexxObject *message, RexxObject **arguments, size_t argCount)
 
RexxStringoref ()
 
RexxObjectpmdict ()
 
RexxObjectrun (RexxObject **, size_t)
 
void messageSend (RexxString *, RexxObject **, size_t, ProtectedObject &)
 
void messageSend (RexxString *, RexxObject **, size_t, RexxObject *, ProtectedObject &)
 
RexxMethodcheckPrivate (RexxMethod *)
 
void processUnknown (RexxString *, RexxObject **, size_t, ProtectedObject &)
 
void processProtectedMethod (RexxString *, RexxMethod *, RexxObject **, size_t, ProtectedObject &)
 
void sendMessage (RexxString *, RexxArray *, ProtectedObject &)
 
void sendMessage (RexxString *message, ProtectedObject &result)
 
void sendMessage (RexxString *message, RexxObject **args, size_t argCount, 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 *)
 
RexxObjectsendMessage (RexxString *message)
 
RexxObjectsendMessage (RexxString *message, RexxObject **args, size_t argCount)
 
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 *)
 
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)
 
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 RexxObjectevaluate (RexxActivation *, RexxExpressionStack *)
 
virtual RexxObjectgetValue (RexxActivation *)
 
virtual RexxObjectgetValue (RexxVariableDictionary *)
 
virtual RexxObjectgetRealValue (RexxActivation *)
 
virtual RexxObjectgetRealValue (RexxVariableDictionary *)
 
virtual HashCode getHashValue ()
 
HashCode identityHash ()
 
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 161 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 111 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 210 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 195 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 124 of file IdentityTableClass.cpp.

References new_hashCollection(), and T_IdentityTable.

◆ newRexx()

RexxObject * RexxIdentityTable::newRexx ( RexxObject **  args,
size_t  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 RexxInternalObject::hasUninit(), 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 181 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: