#include <MessageClass.hpp>
Static Public Member Functions | |
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 RexxClass * | classInstance = OREF_NULL |
Static Public Attributes inherited from RexxObject | |
static PCPPM | operatorMethods [] |
static RexxClass * | classInstance = OREF_NULL |
Protected Attributes | |
RexxObject * | receiver |
RexxObject * | target |
RexxString * | message |
RexxObject * | startscope |
RexxObject * | resultObject |
RexxList * | interestedParties |
RexxDirectory * | condition |
RexxActivity * | startActivity |
RexxList * | waitingActivities |
size_t | dataFlags |
SysSemaphore | waitResultSem |
size_t | NumWaiting |
RexxObject ** | arglist |
size_t | argcount |
size_t | named_argcount |
Additional Inherited Members | |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 54 of file MessageClass.hpp.
RexxMessage::RexxMessage | ( | RexxObject * | _target, |
RexxString * | msgName, | ||
RexxObject * | scope, | ||
RexxObject ** | _arglist, | ||
size_t | _argcount, | ||
size_t | _named_argcount | ||
) |
Create a new message object.
_target | The receiver object. |
messageName | The invoked message name. |
scope | The starting scope (can be OREF_NULL). |
_args | An array of arguments to the message. |
Definition at line 79 of file MessageClass.cpp.
References argcount, arglist, interestedParties, message, named_argcount, OrefSet, receiver, startscope, and target.
Referenced by newRexx().
|
inline |
Definition at line 60 of file MessageClass.hpp.
|
inline |
Definition at line 83 of file MessageClass.hpp.
References dataFlags, and flagAllNotified.
Referenced by notify().
RexxArray * RexxMessage::arguments | ( | ) |
Return a copy of the message argument array.
Definition at line 517 of file MessageClass.cpp.
References argcount, and arglist.
Referenced by RexxMemory::createImage().
RexxObject * RexxMessage::completed | ( | void | ) |
Definition at line 428 of file MessageClass.cpp.
References raiseError(), resultReturned(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
|
static |
Create initial class object at bootstrap time.
Definition at line 64 of file MessageClass.cpp.
References CLASS_CREATE.
Referenced by RexxMemory::createImage().
void RexxMessage::error | ( | RexxDirectory * | _condition | ) |
Definition at line 414 of file MessageClass.cpp.
References condition, OrefSet, sendNotification(), and setRaiseError().
Referenced by MessageDispatcher::handleError(), and RexxActivation::trap().
RexxObject * RexxMessage::errorCondition | ( | ) |
Return any error condition information associated with the message. This method will not block until completion, and will return .nil if the message is still running.
Definition at line 473 of file MessageClass.cpp.
References condition, OREF_NULL, and TheNilObject.
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 82 of file MessageClass.hpp.
References dataFlags, and flagErrorReported.
|
virtual |
Reimplemented from RexxObject.
Definition at line 152 of file MessageClass.cpp.
References argcount, arglist, cleanUpFlatten, flatten_reference, named_argcount, OREF_NULL, and setUpFlatten.
|
inline |
Definition at line 78 of file MessageClass.hpp.
References startActivity.
RexxObject * RexxMessage::hasError | ( | ) |
Check to see if a message has an error condition. Return false if the message has not completed yet.
Definition at line 453 of file MessageClass.cpp.
References raiseError(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
|
virtual |
Reimplemented from RexxObject.
Definition at line 98 of file MessageClass.cpp.
References argcount, arglist, condition, interestedParties, memory_mark, message, named_argcount, OREF_NULL, receiver, resultObject, startActivity, startscope, target, and waitingActivities.
|
virtual |
Reimplemented from RexxObject.
Definition at line 125 of file MessageClass.cpp.
References argcount, arglist, condition, interestedParties, memory_mark_general, message, named_argcount, OREF_NULL, receiver, resultObject, startActivity, startscope, target, and waitingActivities.
RexxString * RexxMessage::messageName | ( | ) |
Return the name of the message.
Definition at line 506 of file MessageClass.cpp.
References message.
Referenced by RexxMemory::createImage().
RexxObject * RexxMessage::messageTarget | ( | ) |
Retrieve the target of the message object. This will be either the target object specified when the message object is created or a target override object specified on SEND or START.
Definition at line 494 of file MessageClass.cpp.
References receiver.
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 85 of file MessageClass.hpp.
References dataFlags, and flagMsgSent.
RexxObject * RexxMessage::newRexx | ( | RexxObject ** | msgArgs, |
size_t | argCount, | ||
size_t | named_argCount | ||
) |
Definition at line 533 of file MessageClass.cpp.
References ARG_ONE, ARG_THREE, ARG_TWO, RexxClass::checkAbstract(), RexxArray::data(), RexxObject::decodeMessageName(), Error_Incorrect_method_maxarg, Error_Incorrect_method_minarg, Error_Incorrect_method_noarg, Error_Incorrect_method_noarray, Error_Incorrect_method_option, RexxString::getChar(), RexxArray::getDimension(), RexxClass::getInstanceBehaviour(), IntegerFour, IntegerTwo, RexxInternalObject::isPrimitive(), OREF_NULL, reportException(), REQUEST_ARRAY(), requiredArgument(), RexxMessage(), RexxObject::sendMessage(), RexxInternalObject::setBehaviour(), RexxArray::size(), stringArgument(), TheNilObject, and TheNullArray.
Referenced by RexxMemory::createImage().
RexxObject * RexxMessage::notify | ( | RexxMessage * | _message | ) |
Definition at line 183 of file MessageClass.cpp.
References RexxList::addLast(), allNotified(), Error_Incorrect_method_noarg, Error_Incorrect_method_nomessage, IntegerOne, interestedParties, isOfClass, message, OREF_NULL, reportException(), and send().
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 57 of file MessageClass.hpp.
void * RexxMessage::operator new | ( | size_t | size | ) |
Definition at line 524 of file MessageClass.cpp.
References new_object(), and T_Message.
|
inline |
Definition at line 81 of file MessageClass.hpp.
References dataFlags, and flagRaiseError.
Referenced by completed(), hasError(), and result().
RexxObject * RexxMessage::result | ( | void | ) |
Definition at line 220 of file MessageClass.cpp.
References RexxList::addLast(), RexxActivity::checkDeadLock(), condition, ActivityManager::currentActivity, new_list(), OREF_NULL, OrefSet, raiseError(), RexxActivity::reraiseException(), resultObject, resultReturned(), setErrorReported(), startActivity, waitingActivities, and RexxActivity::waitReserve().
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 80 of file MessageClass.hpp.
References dataFlags, and flagResultReturned.
Referenced by completed(), and result().
RexxObject * RexxMessage::send | ( | RexxObject * | _receiver | ) |
Definition at line 270 of file MessageClass.cpp.
References argcount, arglist, RexxInternalObject::behaviour, RexxBehaviour::checkScope(), ActivityManager::currentActivity, Error_Execution_message_reuse, Error_Incorrect_method_array_noclass, RexxActivity::getTopStackFrame(), IntegerTwo, message, RexxObject::messageSend(), msgSent(), named_argcount, OREF_NULL, OrefSet, receiver, reportException(), resultObject, sendNotification(), setMsgSent(), RexxActivationBase::setObjNotify(), setResultReturned(), startActivity, startPending(), and startscope.
Referenced by RexxMemory::createImage(), notify(), and sendNotification().
void RexxMessage::sendNotification | ( | void | ) |
Definition at line 372 of file MessageClass.cpp.
References ActivityManager::currentActivity, RexxList::firstIndex(), RexxList::getSize(), RexxActivity::getTopStackFrame(), RexxList::getValue(), interestedParties, LIST_END, RexxList::nextIndex(), OREF_NULL, RexxActivity::postDispatch(), RexxList::removeFirst(), send(), setAllNotified(), RexxActivationBase::setObjNotify(), and waitingActivities.
|
inline |
Definition at line 89 of file MessageClass.hpp.
References dataFlags, and flagAllNotified.
Referenced by sendNotification().
|
inline |
Definition at line 88 of file MessageClass.hpp.
References dataFlags, and flagErrorReported.
Referenced by result().
|
inline |
Definition at line 91 of file MessageClass.hpp.
References dataFlags, and flagMsgSent.
Referenced by send().
|
inline |
Definition at line 87 of file MessageClass.hpp.
References dataFlags, and flagRaiseError.
Referenced by error().
|
inline |
Definition at line 86 of file MessageClass.hpp.
References dataFlags, and flagResultReturned.
Referenced by send().
|
inline |
Definition at line 90 of file MessageClass.hpp.
References dataFlags, and flagStartPending.
Referenced by start().
RexxObject * RexxMessage::start | ( | RexxObject * | _receiver | ) |
Definition at line 334 of file MessageClass.cpp.
References ActivityManager::currentActivity, Error_Execution_message_reuse, msgSent(), OREF_NULL, OrefSet, receiver, reportException(), RexxActivity::run(), setStartPending(), RexxActivity::spawnReply(), startActivity, and startPending().
Referenced by RexxMemory::createImage(), and RexxObject::startCommon().
|
inline |
Definition at line 84 of file MessageClass.hpp.
References dataFlags, and flagStartPending.
|
protected |
Definition at line 115 of file MessageClass.hpp.
Referenced by arguments(), flatten(), live(), liveGeneral(), RexxMessage(), and send().
|
protected |
Definition at line 114 of file MessageClass.hpp.
Referenced by arguments(), flatten(), live(), liveGeneral(), RexxMessage(), and send().
Definition at line 94 of file MessageClass.hpp.
|
protected |
Definition at line 105 of file MessageClass.hpp.
Referenced by error(), errorCondition(), live(), liveGeneral(), and result().
|
protected |
Definition at line 108 of file MessageClass.hpp.
Referenced by allNotified(), errorReported(), msgSent(), raiseError(), resultReturned(), setAllNotified(), setErrorReported(), setMsgSent(), setRaiseError(), setResultReturned(), setStartPending(), and startPending().
|
protected |
Definition at line 104 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), notify(), RexxMessage(), and sendNotification().
|
protected |
Definition at line 100 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), messageName(), notify(), RexxMessage(), and send().
|
protected |
Definition at line 116 of file MessageClass.hpp.
Referenced by flatten(), live(), liveGeneral(), RexxMessage(), and send().
|
protected |
Definition at line 110 of file MessageClass.hpp.
|
protected |
Definition at line 98 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), messageTarget(), RexxMessage(), send(), and start().
|
protected |
Definition at line 103 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), result(), and send().
|
protected |
Definition at line 106 of file MessageClass.hpp.
Referenced by getActivity(), live(), liveGeneral(), result(), send(), and start().
|
protected |
Definition at line 101 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), RexxMessage(), and send().
|
protected |
Definition at line 99 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), and RexxMessage().
|
protected |
Definition at line 107 of file MessageClass.hpp.
Referenced by live(), liveGeneral(), result(), and sendNotification().
|
protected |
Definition at line 109 of file MessageClass.hpp.