RexxMessage Class Reference

#include <MessageClass.hpp>

Inheritance diagram for RexxMessage:
[legend]

Public Member Functions

void * operator new (size_t)
 
void * operator new (size_t size, void *objectPtr)
 
 RexxMessage (RexxObject *, RexxString *, RexxObject *, RexxObject **, size_t, size_t)
 
 RexxMessage (RESTORETYPE restoreType)
 
void live (size_t)
 
void liveGeneral (int reason)
 
void flatten (RexxEnvelope *)
 
RexxObjectnotify (RexxMessage *)
 
RexxObjectresult ()
 
RexxObjectsend (RexxObject *)
 
RexxObjectstart (RexxObject *)
 
RexxObjectcompleted ()
 
void sendNotification ()
 
void error (RexxDirectory *)
 
RexxObjectmessageTarget ()
 
RexxStringmessageName ()
 
RexxArrayarguments ()
 
RexxObjecthasError ()
 
RexxObjecterrorCondition ()
 
RexxObjectnewRexx (RexxObject **, size_t, size_t)
 
RexxActivitygetActivity ()
 
bool resultReturned ()
 
bool raiseError ()
 
bool errorReported ()
 
bool allNotified ()
 
bool startPending ()
 
bool msgSent ()
 
void setResultReturned ()
 
void setRaiseError ()
 
void setErrorReported ()
 
void setAllNotified ()
 
void setStartPending ()
 
void setMsgSent ()
 
- 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 ()
 
RexxObjectcopy ()
 
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)
 
RexxArraymakeArray ()
 
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 RexxObjectmakeProxy (RexxEnvelope *)
 
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 ()
 
- Public Member Functions inherited from RexxVirtualBase
virtual RexxObjectunflatten (RexxEnvelope *)
 

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 RexxClassclassInstance = OREF_NULL
 
- Static Public Attributes inherited from RexxObject
static PCPPM operatorMethods []
 
static RexxClassclassInstance = OREF_NULL
 

Protected Attributes

RexxObjectreceiver
 
RexxObjecttarget
 
RexxStringmessage
 
RexxObjectstartscope
 
RexxObjectresultObject
 
RexxListinterestedParties
 
RexxDirectorycondition
 
RexxActivitystartActivity
 
RexxListwaitingActivities
 
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
 
RexxBehaviourbehaviour
 
- Protected Member Functions inherited from RexxVirtualBase
virtual ~RexxVirtualBase ()
 
virtual void baseVirtual ()
 

Detailed Description

Definition at line 54 of file MessageClass.hpp.

Constructor & Destructor Documentation

◆ RexxMessage() [1/2]

RexxMessage::RexxMessage ( RexxObject _target,
RexxString msgName,
RexxObject scope,
RexxObject **  _arglist,
size_t  _argcount,
size_t  _named_argcount 
)

Create a new message object.

Parameters
_targetThe receiver object.
messageNameThe invoked message name.
scopeThe starting scope (can be OREF_NULL).
_argsAn 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().

◆ RexxMessage() [2/2]

RexxMessage::RexxMessage ( RESTORETYPE  restoreType)
inline

Definition at line 60 of file MessageClass.hpp.

Member Function Documentation

◆ allNotified()

bool RexxMessage::allNotified ( )
inline

Definition at line 83 of file MessageClass.hpp.

References dataFlags, and flagAllNotified.

Referenced by notify().

◆ arguments()

RexxArray * RexxMessage::arguments ( )

Return a copy of the message argument array.

Returns
A copy of the message arguments array.

Definition at line 517 of file MessageClass.cpp.

References argcount, and arglist.

Referenced by RexxMemory::createImage().

◆ completed()

RexxObject * RexxMessage::completed ( void  )

Definition at line 428 of file MessageClass.cpp.

References raiseError(), resultReturned(), TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ createInstance()

void RexxMessage::createInstance ( )
static

Create initial class object at bootstrap time.

Definition at line 64 of file MessageClass.cpp.

References CLASS_CREATE.

Referenced by RexxMemory::createImage().

◆ error()

void RexxMessage::error ( RexxDirectory _condition)

◆ errorCondition()

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.

Returns
Any condition object from a terminating error, or .nil if there was no error or the message is still running.

Definition at line 473 of file MessageClass.cpp.

References condition, OREF_NULL, and TheNilObject.

Referenced by RexxMemory::createImage().

◆ errorReported()

bool RexxMessage::errorReported ( )
inline

Definition at line 82 of file MessageClass.hpp.

References dataFlags, and flagErrorReported.

◆ flatten()

void RexxMessage::flatten ( RexxEnvelope envelope)
virtual

Reimplemented from RexxObject.

Definition at line 152 of file MessageClass.cpp.

References argcount, arglist, cleanUpFlatten, flatten_reference, named_argcount, OREF_NULL, and setUpFlatten.

◆ getActivity()

RexxActivity* RexxMessage::getActivity ( )
inline

Definition at line 78 of file MessageClass.hpp.

References startActivity.

◆ hasError()

RexxObject * RexxMessage::hasError ( )

Check to see if a message has an error condition. Return false if the message has not completed yet.

Returns
True if the message has terminated with an error condition, false if it is still running or has completed without error.

Definition at line 453 of file MessageClass.cpp.

References raiseError(), TheFalseObject, and TheTrueObject.

Referenced by RexxMemory::createImage().

◆ live()

void RexxMessage::live ( size_t  liveMark)
virtual

◆ liveGeneral()

void RexxMessage::liveGeneral ( int  reason)
virtual

◆ messageName()

RexxString * RexxMessage::messageName ( )

Return the name of the message.

Returns
The string name of the message.

Definition at line 506 of file MessageClass.cpp.

References message.

Referenced by RexxMemory::createImage().

◆ messageTarget()

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.

Returns
The current message target.

Definition at line 494 of file MessageClass.cpp.

References receiver.

Referenced by RexxMemory::createImage().

◆ msgSent()

bool RexxMessage::msgSent ( )
inline

Definition at line 85 of file MessageClass.hpp.

References dataFlags, and flagMsgSent.

Referenced by send(), and start().

◆ newRexx()

◆ notify()

◆ operator new() [1/2]

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

Definition at line 57 of file MessageClass.hpp.

◆ operator new() [2/2]

void * RexxMessage::operator new ( size_t  size)

Definition at line 524 of file MessageClass.cpp.

References new_object(), and T_Message.

◆ raiseError()

bool RexxMessage::raiseError ( )
inline

Definition at line 81 of file MessageClass.hpp.

References dataFlags, and flagRaiseError.

Referenced by completed(), hasError(), and result().

◆ result()

◆ resultReturned()

bool RexxMessage::resultReturned ( )
inline

Definition at line 80 of file MessageClass.hpp.

References dataFlags, and flagResultReturned.

Referenced by completed(), and result().

◆ send()

◆ sendNotification()

◆ setAllNotified()

void RexxMessage::setAllNotified ( )
inline

Definition at line 89 of file MessageClass.hpp.

References dataFlags, and flagAllNotified.

Referenced by sendNotification().

◆ setErrorReported()

void RexxMessage::setErrorReported ( )
inline

Definition at line 88 of file MessageClass.hpp.

References dataFlags, and flagErrorReported.

Referenced by result().

◆ setMsgSent()

void RexxMessage::setMsgSent ( )
inline

Definition at line 91 of file MessageClass.hpp.

References dataFlags, and flagMsgSent.

Referenced by send().

◆ setRaiseError()

void RexxMessage::setRaiseError ( )
inline

Definition at line 87 of file MessageClass.hpp.

References dataFlags, and flagRaiseError.

Referenced by error().

◆ setResultReturned()

void RexxMessage::setResultReturned ( )
inline

Definition at line 86 of file MessageClass.hpp.

References dataFlags, and flagResultReturned.

Referenced by send().

◆ setStartPending()

void RexxMessage::setStartPending ( )
inline

Definition at line 90 of file MessageClass.hpp.

References dataFlags, and flagStartPending.

Referenced by start().

◆ start()

◆ startPending()

bool RexxMessage::startPending ( )
inline

Definition at line 84 of file MessageClass.hpp.

References dataFlags, and flagStartPending.

Referenced by send(), and start().

Member Data Documentation

◆ argcount

size_t RexxMessage::argcount
protected

Definition at line 115 of file MessageClass.hpp.

Referenced by arguments(), flatten(), live(), liveGeneral(), RexxMessage(), and send().

◆ arglist

RexxObject** RexxMessage::arglist
protected

Definition at line 114 of file MessageClass.hpp.

Referenced by arguments(), flatten(), live(), liveGeneral(), RexxMessage(), and send().

◆ classInstance

RexxClass * RexxMessage::classInstance = OREF_NULL
static

Definition at line 94 of file MessageClass.hpp.

◆ condition

RexxDirectory* RexxMessage::condition
protected

Definition at line 105 of file MessageClass.hpp.

Referenced by error(), errorCondition(), live(), liveGeneral(), and result().

◆ dataFlags

◆ interestedParties

RexxList* RexxMessage::interestedParties
protected

Definition at line 104 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), notify(), RexxMessage(), and sendNotification().

◆ message

RexxString* RexxMessage::message
protected

Definition at line 100 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), messageName(), notify(), RexxMessage(), and send().

◆ named_argcount

size_t RexxMessage::named_argcount
protected

Definition at line 116 of file MessageClass.hpp.

Referenced by flatten(), live(), liveGeneral(), RexxMessage(), and send().

◆ NumWaiting

size_t RexxMessage::NumWaiting
protected

Definition at line 110 of file MessageClass.hpp.

◆ receiver

RexxObject* RexxMessage::receiver
protected

Definition at line 98 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), messageTarget(), RexxMessage(), send(), and start().

◆ resultObject

RexxObject* RexxMessage::resultObject
protected

Definition at line 103 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), result(), and send().

◆ startActivity

RexxActivity* RexxMessage::startActivity
protected

Definition at line 106 of file MessageClass.hpp.

Referenced by getActivity(), live(), liveGeneral(), result(), send(), and start().

◆ startscope

RexxObject* RexxMessage::startscope
protected

Definition at line 101 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), RexxMessage(), and send().

◆ target

RexxObject* RexxMessage::target
protected

Definition at line 99 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), and RexxMessage().

◆ waitingActivities

RexxList* RexxMessage::waitingActivities
protected

Definition at line 107 of file MessageClass.hpp.

Referenced by live(), liveGeneral(), result(), and sendNotification().

◆ waitResultSem

SysSemaphore RexxMessage::waitResultSem
protected

Definition at line 109 of file MessageClass.hpp.


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