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)  

RexxDirectory Class Reference

#include <DirectoryClass.hpp>

Inheritance diagram for RexxDirectory:
Collaboration diagram for RexxDirectory:

Public Member Functions

void * operator new (size_t size, void *objectPtr)
 RexxDirectory (RESTORETYPE restoreType)
void live (size_t)
void liveGeneral (int reason)
void flatten (RexxEnvelope *)
RexxObjectunflatten (RexxEnvelope *)
RexxObjectcopy ()
RexxArraymakeArray ()
RexxArrayrequestArray ()
RexxObjectmergeItem (RexxObject *, RexxObject *)
RexxObjectat (RexxString *)
RexxObjectfastAt (RexxString *name)
RexxObjectatRexx (RexxString *)
RexxObjectput (RexxObject *, RexxString *)
RexxObjectentry (RexxString *)
RexxObjectentryRexx (RexxString *)
RexxObjecthasEntry (RexxString *)
RexxObjecthasIndex (RexxString *)
size_t items ()
RexxObjectitemsRexx ()
RexxObjectremove (RexxString *)
RexxObjectremoveRexx (RexxString *)
RexxObjectsetEntry (RexxString *, RexxObject *)
RexxObjectsetMethod (RexxString *, RexxMethod *)
RexxObjectunknown (RexxString *, RexxArray *)
RexxSuppliersupplier ()
RexxArrayallItems ()
RexxArrayallIndexes ()
void reset ()
RexxObjectempty ()
RexxObjectisEmpty ()
RexxObjectindexRexx (RexxObject *)
RexxObjecthasItem (RexxObject *)
RexxObjectremoveItem (RexxObject *)
RexxObjectnewRexx (RexxObject **init_args, 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 RexxObjectremove (RexxObject *key)
virtual RexxObjectget (RexxObject *key)
virtual RexxObjectput (RexxObject *, RexxObject *)
virtual RexxObjectadd (RexxObject *, RexxObject *)
virtual RexxObjectgetIndex (RexxObject *value)
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 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 RexxDirectorynewInstance ()
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 ()

Public Attributes

- Public Attributes inherited from RexxHashTableCollection
- Public Attributes inherited from RexxInternalObject
ObjectHeader header

Static Public Attributes

static RexxClassclassInstance = OREF_NULL
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
static RexxClassclassInstance = OREF_NULL

Additional Inherited Members

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

Detailed Description

Definition at line 49 of file DirectoryClass.hpp.

Constructor & Destructor Documentation

◆ RexxDirectory()

RexxDirectory::RexxDirectory ( RESTORETYPE  restoreType)

Definition at line 52 of file DirectoryClass.hpp.

Member Function Documentation

◆ allIndexes()

RexxArray * RexxDirectory::allIndexes ( void  )

Create an array of all of the directory indices, including those of all the SETMETHOD methods.

An array containing all of the directory indices.

Definition at line 231 of file DirectoryClass.cpp.

References RexxHashTableCollection::available(), RexxHashTableCollection::contents, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTable::index(), RexxHashTableCollection::index(), items(), method_table, new_array(), RexxHashTable::next(), RexxHashTableCollection::next(), OREF_NULL, and RexxArray::put().

Referenced by RexxMemory::createImage(), and makeArray().

◆ allItems()

◆ at()

RexxObject * RexxDirectory::at ( RexxString _index)

◆ atRexx()

◆ copy()

◆ createInstance()

void RexxDirectory::createInstance ( )

Create initial class object at bootstrap time.

Definition at line 60 of file DirectoryClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ empty()

RexxObject * RexxDirectory::empty ( )

Empty a hash table collection.


Definition at line 680 of file DirectoryClass.cpp.

References OREF_NULL, and reset().

Referenced by RexxMemory::createImage().

◆ entry()

◆ entryRexx()

RexxObject * RexxDirectory::entryRexx ( RexxString entryName)

◆ fastAt()

◆ flatten()

void RexxDirectory::flatten ( RexxEnvelope envelope)

Reimplemented from RexxVirtualBase.

Definition at line 85 of file DirectoryClass.cpp.

References cleanUpFlatten, flatten_reference, and setUpFlatten.

◆ hasEntry()

◆ hasIndex()

◆ hasItem()

RexxObject * RexxDirectory::hasItem ( RexxObject target)

Test if a given item exists in the collection.

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

Reimplemented from RexxHashTableCollection.

Definition at line 749 of file DirectoryClass.cpp.

References ARG_ONE, indexRexx(), requiredArgument(), TheFalseObject, TheNilObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ indexRexx()

RexxObject * RexxDirectory::indexRexx ( RexxObject target)

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

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

Definition at line 708 of file DirectoryClass.cpp.

References ARG_ONE, RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxObject::equalValue(), RexxHashTableCollection::first(), RexxHashTable::getIndex(), RexxHashTableCollection::index(), method_table, RexxHashTableCollection::next(), OREF_NULL, requiredArgument(), RexxMethod::run(), TheNilObject, and RexxHashTableCollection::value().

Referenced by RexxMemory::createImage(), hasItem(), and removeItem().

◆ isEmpty()

RexxObject * RexxDirectory::isEmpty ( )

Test if a HashTableCollection is empty.


Definition at line 692 of file DirectoryClass.cpp.

References items(), TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ items()

◆ itemsRexx()

RexxObject * RexxDirectory::itemsRexx ( void  )

Definition at line 154 of file DirectoryClass.cpp.

References items(), and new_integer().

Referenced by RexxMemory::createImage().

◆ live()

void RexxDirectory::live ( size_t  liveMark)

Reimplemented from RexxVirtualBase.

Definition at line 65 of file DirectoryClass.cpp.

References RexxHashTableCollection::live(), memory_mark, method_table, and unknown_method.

◆ liveGeneral()

void RexxDirectory::liveGeneral ( int  reason)

◆ makeArray()

RexxArray * RexxDirectory::makeArray ( void  )

Reimplemented from RexxInternalObject.

Definition at line 215 of file DirectoryClass.cpp.

References allIndexes().

Referenced by requestArray().

◆ mergeItem()

RexxObject * RexxDirectory::mergeItem ( RexxObject _value,
RexxObject _index 

Reimplemented from RexxHashTableCollection.

Definition at line 556 of file DirectoryClass.cpp.

References put().

◆ newInstance()

RexxDirectory * RexxDirectory::newInstance ( )

Definition at line 802 of file DirectoryClass.cpp.

References RexxHashTable::DEFAULT_HASH_SIZE, new_hashCollection(), and T_Directory.

Referenced by new_directory().

◆ newRexx()

RexxObject * RexxDirectory::newRexx ( RexxObject **  init_args,
size_t  argCount 

◆ operator new()

void* RexxDirectory::operator new ( size_t  size,
void *  objectPtr 

Definition at line 51 of file DirectoryClass.hpp.

◆ put()

RexxObject * RexxDirectory::put ( RexxObject _value,
RexxString _index 

Definition at line 636 of file DirectoryClass.cpp.

References ARG_TWO, RexxHashTableCollection::contents, method_table, OREF_NULL, OrefSet, RexxHashTableCollection::remove(), stringArgument(), and RexxHashTable::stringPut().

Referenced by InterpreterInstance::addCommandHandler(), RexxSource::addLabel(), PackageManager::addPackageRoutine(), InterpreterInstance::addRequiresFile(), RexxSource::addStem(), RexxSource::addText(), RexxSource::addVariable(), SecurityManager::checkCommand(), SecurityManager::checkEnvironmentAccess(), SecurityManager::checkFunctionCall(), SecurityManager::checkLocalAccess(), SecurityManager::checkProtectedMethod(), SecurityManager::checkRequiresAccess(), SecurityManager::checkStreamAccess(), RexxSource::classDirective(), RexxActivation::command(), RexxSource::commonString(), RexxActivity::createConditionObject(), RexxActivity::createExceptionObject(), RexxMemory::createImage(), PackageManager::createRegisteredRoutine(), RexxSource::expose(), RexxActivity::generateProgramInformation(), RexxVariableDictionary::getAllVariables(), RexxMemory::getGlobalName(), PackageManager::getMacroSpaceRequires(), PackageManager::loadInternalPackage(), PackageManager::loadLibrary(), PackageManager::loadRequires(), LibraryPackage::loadRoutines(), mergeItem(), RexxActivation::raise(), RexxActivity::raiseException(), RexxActivity::raisePropagate(), RexxActivity::reraiseException(), InterpreterInstance::resolveCommandHandler(), LibraryPackage::resolveMethod(), RexxActivation::resolveStream(), RexxStem::toDirectory(), RexxActivation::trap(), and RexxActivation::trapOn().

◆ remove()

◆ removeItem()

RexxObject * RexxDirectory::removeItem ( RexxObject target)

Remove a given item from the collection.

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

Reimplemented from RexxHashTableCollection.

Definition at line 764 of file DirectoryClass.cpp.

References ARG_ONE, indexRexx(), remove(), requiredArgument(), and TheNilObject.

Referenced by RexxMemory::createImage().

◆ removeRexx()

RexxObject * RexxDirectory::removeRexx ( RexxString entryname)

ooRexx exported version of the directory remove method.

entrynameThe index name.
The removed item. Returns .nil if the item did not exist in the directory.

Definition at line 421 of file DirectoryClass.cpp.

References ARG_ONE, OREF_NULL, remove(), stringArgument(), and TheNilObject.

Referenced by RexxMemory::createImage().

◆ requestArray()

RexxArray * RexxDirectory::requestArray ( )

Definition at line 200 of file DirectoryClass.cpp.

References isOfClass, makeArray(), and RexxObject::sendMessage().

◆ reset()

void RexxDirectory::reset ( void  )

◆ setEntry()

◆ setMethod()

◆ supplier()

◆ unflatten()

RexxObject * RexxDirectory::unflatten ( RexxEnvelope envelope)

Reimplemented from RexxVirtualBase.

Definition at line 100 of file DirectoryClass.cpp.

References RexxEnvelope::addTable().

◆ unknown()

Member Data Documentation

◆ classInstance

RexxClass * RexxDirectory::classInstance = OREF_NULL

Definition at line 97 of file DirectoryClass.hpp.

◆ method_table

◆ unknown_method

RexxMethod* RexxDirectory::unknown_method

Definition at line 91 of file DirectoryClass.hpp.

Referenced by at(), live(), liveGeneral(), reset(), and setMethod().

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