#include <DirectoryClass.hpp>
Static Public Member Functions | |
static RexxDirectory * | fromIndexItemArray (RexxObject **arglist, size_t count) |
static RexxDirectory * | newInstance () |
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 | |
RexxTable * | method_table |
RexxMethod * | unknown_method |
Public Attributes inherited from RexxHashTableCollection | |
RexxHashTable * | contents |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Static Public Attributes | |
static RexxClass * | classInstance = OREF_NULL |
Static Public Attributes inherited from RexxObject | |
static PCPPM | operatorMethods [] |
static RexxClass * | classInstance = OREF_NULL |
Additional Inherited Members | |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 49 of file DirectoryClass.hpp.
|
inline |
Definition at line 52 of file DirectoryClass.hpp.
RexxArray * RexxDirectory::allIndexes | ( | void | ) |
Create an array of all of the directory indices, including those of all the SETMETHOD methods.
Definition at line 232 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), items(), method_table, new_array(), RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, and RexxArray::put().
Referenced by RexxMemory::createImage(), and makeArray().
RexxArray * RexxDirectory::allIndexesItems | ( | void | ) |
Helper for named arguments. Create an array of all of the directory indices &items, including those of all the SETMETHOD methods.
Definition at line 863 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), items(), method_table, new_array(), RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, RexxArray::put(), RexxMethod::run(), RexxHashTableCollection::value(), and RexxHashTable::value().
RexxArray * RexxDirectory::allItems | ( | void | ) |
Definition at line 261 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), items(), method_table, new_array(), RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, RexxArray::put(), RexxMethod::run(), RexxHashTableCollection::value(), and RexxHashTable::value().
Referenced by RexxMemory::createImage().
size_t RexxDirectory::appendAllIndexesItemsTo | ( | RexxArray * | array, |
size_t | from | ||
) |
Helper for named arguments. Append to the array all the directory indices &items, including those of all the SETMETHOD methods: index1, item1, index2, item2, ...
from: at which position to start storing using the method array.put. CAREFUL! 1-based, so NEVER pass 0.
Definition at line 948 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), method_table, RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, RexxArray::put(), RexxMethod::run(), RexxHashTableCollection::value(), and RexxHashTable::value().
Referenced by RoutineClass::callWithRexx(), RexxInstructionForward::execute(), RexxNativeActivation::forwardMessage(), RexxObject::run(), RexxObject::sendMessage(), RexxObject::sendWith(), RexxActivation::setArguments(), RexxObject::startWith(), and RexxStem::unknown().
RexxObject * RexxDirectory::at | ( | RexxString * | _index | ) |
Definition at line 575 of file DirectoryClass.cpp.
References RexxHashTableCollection::contents, ActivityManager::currentActivity, method_table, OREF_NULL, RexxMethod::run(), RexxHashTable::stringGet(), RexxTable::stringGet(), and unknown_method.
Referenced by atRexx(), BUILTIN(), PackageManager::callNativeRoutine(), RexxNativeActivation::checkConditions(), RexxActivation::closeStreams(), RexxActivation::command(), Interpreter::decodeConditionData(), RexxActivity::display(), RexxActivity::displayCondition(), RexxActivity::displayDebug(), entry(), entryRexx(), RexxActivity::errorNumber(), RexxInstructionCall::execute(), RexxInstructionRaise::execute(), RexxMemory::getGlobalName(), PackageManager::getLoadedRoutine(), InterpreterInstance::getLocalEnvironment(), ContextCommandHandlerDispatcher::handleError(), RexxActivation::processTraps(), RexxActivation::raise(), RexxActivity::raiseCondition(), RexxActivity::raisePropagate(), PackageManager::registerPackage(), remove(), RexxActivity::reraiseException(), RexxExpressionFunction::resolve(), RexxInstructionCall::resolve(), RexxInstructionSignal::resolve(), InterpreterInstance::resolveCommandHandler(), LibraryPackage::resolveMethod(), PackageManager::resolveRoutine(), LibraryPackage::resolveRoutine(), RexxActivation::resolveStream(), RexxActivation::signalValue(), RexxActivation::trap(), RexxActivation::trapDelay(), RexxActivation::trapOff(), RexxActivation::trapState(), and RexxActivation::trapUndelay().
RexxObject * RexxDirectory::atRexx | ( | RexxString * | _index | ) |
Definition at line 614 of file DirectoryClass.cpp.
References ARG_ONE, at(), SecurityManager::checkLocalAccess(), ActivityManager::currentActivity, RexxActivity::getEffectiveSecurityManager(), ActivityManager::getLocal(), OREF_NULL, stringArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 109 of file DirectoryClass.cpp.
References RexxHashTableCollection::copy(), method_table, OREF_NULL, and OrefSet.
Referenced by BUILTIN(), RexxActivation::checkTrapTable(), PackageClass::getClasses(), PackageClass::getImportedClasses(), PackageClass::getImportedRoutines(), PackageClass::getMethods(), PackageClass::getPublicClasses(), PackageClass::getPublicRoutines(), PackageClass::getRoutines(), PackageManager::restore(), and PackageManager::unload().
|
static |
Create initial class object at bootstrap time.
Definition at line 60 of file DirectoryClass.cpp.
References CLASS_CREATE.
Referenced by RexxMemory::createImage().
RexxObject * RexxDirectory::empty | ( | ) |
Empty a hash table collection.
Definition at line 691 of file DirectoryClass.cpp.
References OREF_NULL, and reset().
Referenced by RexxMemory::createImage().
RexxObject * RexxDirectory::entry | ( | RexxString * | entryName | ) |
Definition at line 126 of file DirectoryClass.cpp.
References at(), and RexxString::upper().
Referenced by ClassDirective::checkDependency(), RexxSource::checkDuplicateMethod(), RexxSource::classDirective(), and RexxSource::routineDirective().
RexxObject * RexxDirectory::entryRexx | ( | RexxString * | entryName | ) |
Definition at line 299 of file DirectoryClass.cpp.
References ARG_ONE, at(), OREF_NULL, stringArgument(), TheNilObject, and RexxString::upper().
Referenced by RexxMemory::createImage(), and unknown().
|
inline |
Definition at line 64 of file DirectoryClass.hpp.
References RexxHashTableCollection::contents, and RexxHashTable::stringGet().
Referenced by RexxSource::addLabel(), RexxSource::addStem(), RexxSource::addText(), RexxSource::addVariable(), SecurityManager::checkCommand(), SecurityManager::checkEnvironmentAccess(), SecurityManager::checkFunctionCall(), SecurityManager::checkLocalAccess(), SecurityManager::checkProtectedMethod(), SecurityManager::checkRequiresAccess(), SecurityManager::checkStreamAccess(), RexxSource::commonString(), RexxSource::findInstalledClass(), RexxSource::findLabel(), RexxSource::findLocalRoutine(), RexxSource::findPublicClass(), and RexxSource::findPublicRoutine().
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 85 of file DirectoryClass.cpp.
References cleanUpFlatten, flatten_reference, and setUpFlatten.
|
static |
Helper for named arguments. Create a new directory from an array of(index1, item1, index2, item2, ...) When count = 0, no directory is created, returns OREF_NULL.
Definition at line 838 of file DirectoryClass.cpp.
References RexxHashTableCollection::index(), new_directory(), OREF_NULL, put(), and REQUEST_STRING().
Referenced by RexxContext::getNamedArgs(), RexxNativeActivation::getNamedArguments(), and RexxObject::processUnknown().
RexxObject * RexxDirectory::hasEntry | ( | RexxString * | entryName | ) |
Definition at line 351 of file DirectoryClass.cpp.
References ARG_ONE, RexxHashTableCollection::contents, method_table, OREF_NULL, stringArgument(), RexxHashTable::stringGet(), RexxTable::stringGet(), TheFalseObject, TheTrueObject, and RexxString::upper().
Referenced by RexxMemory::createImage().
RexxObject * RexxDirectory::hasIndex | ( | RexxString * | indexName | ) |
Definition at line 319 of file DirectoryClass.cpp.
References ARG_ONE, RexxHashTableCollection::contents, method_table, OREF_NULL, stringArgument(), RexxHashTable::stringGet(), RexxTable::stringGet(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
|
virtual |
Test if a given item exists in the collection.
target | The target object. |
Reimplemented from RexxHashTableCollection.
Definition at line 760 of file DirectoryClass.cpp.
References ARG_ONE, indexRexx(), requiredArgument(), TheFalseObject, TheNilObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
RexxObject * RexxDirectory::indexRexx | ( | RexxObject * | target | ) |
Retrieve an index for a given item. Which index is returned is indeterminate.
target | The target object. |
Definition at line 719 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().
RexxObject * RexxDirectory::isEmpty | ( | ) |
Test if a HashTableCollection is empty.
Definition at line 703 of file DirectoryClass.cpp.
References items(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
size_t RexxDirectory::items | ( | void | ) |
Definition at line 138 of file DirectoryClass.cpp.
References RexxHashTableCollection::contents, RexxHashTableCollection::items(), method_table, OREF_NULL, and RexxHashTable::totalEntries().
Referenced by allIndexes(), allIndexesItems(), allItems(), RoutineClass::callWithRexx(), RexxMemory::createImage(), isEmpty(), itemsRexx(), ClassDirective::removeDependency(), RexxSource::resolveDependencies(), RexxObject::run(), RexxObject::sendWith(), RexxObject::startWith(), RexxSource::translateBlock(), and RexxStem::unknown().
RexxObject * RexxDirectory::itemsRexx | ( | void | ) |
Definition at line 155 of file DirectoryClass.cpp.
References items(), and new_integer().
Referenced by RexxMemory::createImage().
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 65 of file DirectoryClass.cpp.
References RexxHashTableCollection::live(), memory_mark, method_table, and unknown_method.
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 75 of file DirectoryClass.cpp.
References RexxHashTableCollection::liveGeneral(), memory_mark_general, method_table, and unknown_method.
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 216 of file DirectoryClass.cpp.
References allIndexes().
Referenced by requestArray().
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 564 of file DirectoryClass.cpp.
References put().
|
static |
Definition at line 822 of file DirectoryClass.cpp.
References RexxHashTable::DEFAULT_HASH_SIZE, new_hashCollection(), and T_Directory.
Referenced by new_directory().
RexxObject * RexxDirectory::newRexx | ( | RexxObject ** | init_args, |
size_t | argCount, | ||
size_t | named_argCount | ||
) |
Definition at line 788 of file DirectoryClass.cpp.
References RexxClass::checkAbstract(), RexxClass::getInstanceBehaviour(), RexxInternalObject::hasUninit(), RexxClass::hasUninitDefined(), new_directory(), RexxObject::sendMessage(), and RexxInternalObject::setBehaviour().
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 51 of file DirectoryClass.hpp.
size_t RexxDirectory::pushAllIndexesItemsTo | ( | RexxExpressionStack * | stack | ) |
Helper for named arguments. Push on the stack all the directory indices &items, including those of all the SETMETHOD methods: index1, item1, index2, item2, ...
Definition at line 906 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), method_table, RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, RexxExpressionStack::push(), RexxMethod::run(), RexxHashTableCollection::value(), and RexxHashTable::value().
RexxObject * RexxDirectory::put | ( | RexxObject * | _value, |
RexxString * | _index | ||
) |
Definition at line 646 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(), fromIndexItemArray(), 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().
RexxObject * RexxDirectory::remove | ( | RexxString * | entryname | ) |
Definition at line 435 of file DirectoryClass.cpp.
References at(), RexxHashTableCollection::contents, method_table, OREF_NULL, RexxHashTableCollection::remove(), RexxHashTable::remove(), RexxHashTable::stringGet(), and RexxString::upper().
Referenced by PackageManager::checkRequiresCache(), PackageManager::dropRegisteredRoutine(), InterpreterInstance::getRequiresFile(), PackageManager::loadLibrary(), ClassDirective::removeDependency(), removeItem(), removeRexx(), RexxActivity::reraiseException(), setEntry(), and RexxActivation::trapOff().
|
virtual |
Remove a given item from the collection.
target | The target object. |
Reimplemented from RexxHashTableCollection.
Definition at line 775 of file DirectoryClass.cpp.
References ARG_ONE, indexRexx(), remove(), requiredArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
RexxObject * RexxDirectory::removeRexx | ( | RexxString * | entryname | ) |
ooRexx exported version of the directory remove method.
entryname | The index name. |
Definition at line 423 of file DirectoryClass.cpp.
References ARG_ONE, OREF_NULL, remove(), stringArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
RexxArray * RexxDirectory::requestArray | ( | ) |
Definition at line 201 of file DirectoryClass.cpp.
References isOfClass, makeArray(), and RexxObject::sendMessage().
void RexxDirectory::reset | ( | void | ) |
Definition at line 670 of file DirectoryClass.cpp.
References RexxHashTableCollection::contents, RexxHashTableCollection::empty(), RexxHashTable::empty(), method_table, OREF_NULL, OrefSet, and unknown_method.
Referenced by empty().
RexxObject * RexxDirectory::setEntry | ( | RexxString * | entryname, |
RexxObject * | entryobj | ||
) |
Definition at line 383 of file DirectoryClass.cpp.
References ARG_ONE, RexxHashTableCollection::contents, method_table, OREF_NULL, OrefSet, RexxHashTableCollection::remove(), remove(), stringArgument(), RexxHashTable::stringPut(), and RexxString::upper().
Referenced by RexxSource::addInstalledClass(), RexxSource::addInstalledRoutine(), RexxActivation::addLocalRoutine(), RexxSource::addMethod(), ClassDirective::checkDependency(), RexxMemory::createImage(), RexxSource::mergeRequired(), RexxSource::routineDirective(), and unknown().
RexxObject * RexxDirectory::setMethod | ( | RexxString * | entryname, |
RexxMethod * | methodobj | ||
) |
Definition at line 500 of file DirectoryClass.cpp.
References ARG_ONE, RexxHashTableCollection::contents, IntegerTwo, isOfClass, method_table, new_table(), RexxMethod::newMethodObject(), RexxMethod::newScope(), OREF_NULL, OrefSet, RexxHashTableCollection::remove(), RexxHashTable::remove(), RexxMethod::setScope(), RexxString::strCompare(), stringArgument(), RexxTable::stringPut(), unknown_method, and RexxString::upper().
Referenced by RexxMemory::createImage().
RexxSupplier * RexxDirectory::supplier | ( | void | ) |
Definition at line 164 of file DirectoryClass.cpp.
References RexxHashTableCollection::available(), RexxHashTableCollection::contents, ActivityManager::currentActivity, RexxHashTableCollection::first(), RexxHashTable::first(), RexxHashTableCollection::index(), RexxHashTable::index(), method_table, new_table(), RexxHashTableCollection::next(), RexxHashTable::next(), OREF_NULL, RexxHashTableCollection::put(), RexxMethod::run(), RexxHashTableCollection::supplier(), RexxHashTableCollection::value(), and RexxHashTable::value().
Referenced by RexxMemory::createImage().
|
virtual |
Reimplemented from RexxHashTableCollection.
Definition at line 100 of file DirectoryClass.cpp.
References RexxEnvelope::addTable().
|
virtual |
Reimplemented from RexxObject.
Definition at line 457 of file DirectoryClass.cpp.
References ARG_ONE, ARG_TWO, entryRexx(), Error_Incorrect_method_noarray, RexxString::extract(), RexxArray::get(), RexxString::getChar(), RexxArray::getDimension(), RexxString::getLength(), IntegerTwo, reportException(), REQUEST_ARRAY(), requiredArgument(), setEntry(), RexxArray::size(), stringArgument(), and TheNilObject.
Definition at line 103 of file DirectoryClass.hpp.
RexxTable* RexxDirectory::method_table |
Definition at line 90 of file DirectoryClass.hpp.
Referenced by allIndexes(), allIndexesItems(), allItems(), appendAllIndexesItemsTo(), at(), copy(), hasEntry(), hasIndex(), indexRexx(), items(), live(), liveGeneral(), pushAllIndexesItemsTo(), put(), remove(), reset(), setEntry(), setMethod(), and supplier().
RexxMethod* RexxDirectory::unknown_method |
Definition at line 91 of file DirectoryClass.hpp.
Referenced by at(), live(), liveGeneral(), reset(), and setMethod().