From: <bi...@us...> - 2007-03-18 12:57:32
|
Revision: 157 http://svn.sourceforge.net/oorexx/?rev=157&view=rev Author: bigrixx Date: 2007-03-17 16:35:23 -0700 (Sat, 17 Mar 2007) Log Message: ----------- [ 1682637 ] MESSAGE: access to target and arguments Modified Paths: -------------- interpreter-3.x/trunk/kernel/classes/MessageClass.cpp interpreter-3.x/trunk/kernel/classes/MessageClass.hpp interpreter-3.x/trunk/kernel/runtime/RexxConstants.hpp interpreter-3.x/trunk/kernel/runtime/Setup.cpp Modified: interpreter-3.x/trunk/kernel/classes/MessageClass.cpp =================================================================== --- interpreter-3.x/trunk/kernel/classes/MessageClass.cpp 2007-03-12 14:37:12 UTC (rev 156) +++ interpreter-3.x/trunk/kernel/classes/MessageClass.cpp 2007-03-17 23:35:23 UTC (rev 157) @@ -450,6 +450,42 @@ } +/** + * 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. + * + * @return The current message target. + */ +RexxObject *RexxMessage::messageTarget() +{ + return receiver; + +} + + +/** + * Return the name of the message. + * + * @return The string name of the message. + */ +RexxString *RexxMessage::messageName() +{ + return message; +} + + +/** + * Return a copy of the message argument array. + * + * @return A copy of the message arguments array. + */ +RexxArray *RexxMessage::arguments() +{ + return (RexxArray *)args->copy(); +} + + void *RexxMessage::operator new(size_t size) /******************************************************************************/ /* Function: Construct a new message object */ @@ -463,6 +499,7 @@ return newMessage; /* return the new message object */ } + RexxObject *RexxMessage::newRexx( RexxObject **arguments, /* message argument array */ size_t argCount) /* the number of arguments */ Modified: interpreter-3.x/trunk/kernel/classes/MessageClass.hpp =================================================================== --- interpreter-3.x/trunk/kernel/classes/MessageClass.hpp 2007-03-12 14:37:12 UTC (rev 156) +++ interpreter-3.x/trunk/kernel/classes/MessageClass.hpp 2007-03-17 23:35:23 UTC (rev 157) @@ -69,6 +69,9 @@ RexxObject *completed(); void sendNotification(); void error(RexxDirectory *); + RexxObject *messageTarget(); + RexxString *messageName(); + RexxArray *arguments(); RexxObject *hasError(); RexxObject *errorCondition(); RexxObject *newRexx(RexxObject **, size_t); Modified: interpreter-3.x/trunk/kernel/runtime/RexxConstants.hpp =================================================================== --- interpreter-3.x/trunk/kernel/runtime/RexxConstants.hpp 2007-03-12 14:37:12 UTC (rev 156) +++ interpreter-3.x/trunk/kernel/runtime/RexxConstants.hpp 2007-03-17 23:35:23 UTC (rev 157) @@ -182,6 +182,7 @@ CHARCONSTANT(MEMORY, "MEMORY"); CHARCONSTANT(MERGE, "MERGE"); CHARCONSTANT(MESSAGE, "MESSAGE"); +CHARCONSTANT(MESSAGENAME, "MESSAGENAME"); CHARCONSTANT(METACLASS, "METACLASS"); CHARCONSTANT(METHOD, "METHOD"); CHARCONSTANT(METHODNAME, "METHOD"); @@ -330,6 +331,7 @@ CHARCONSTANT(SYSEXTERNALFUNCTION, "SYSEXTERNALFUNCTION"); CHARCONSTANT(SYSTEM, "SYSTEM"); CHARCONSTANT(TABLE, "TABLE"); +CHARCONSTANT(TARGET, "TARGET"); CHARCONSTANT(TOKENIZE_ONLY, "//T"); CHARCONSTANT(TRACEBACK, "TRACEBACK"); CHARCONSTANT(TRANSLATE, "TRANSLATE"); Modified: interpreter-3.x/trunk/kernel/runtime/Setup.cpp =================================================================== --- interpreter-3.x/trunk/kernel/runtime/Setup.cpp 2007-03-12 14:37:12 UTC (rev 156) +++ interpreter-3.x/trunk/kernel/runtime/Setup.cpp 2007-03-17 23:35:23 UTC (rev 157) @@ -230,6 +230,9 @@ CPPMSG(RexxMessage::completed), CPPMSG(RexxMessage::hasError), CPPMSG(RexxMessage::errorCondition), +CPPMSG(RexxMessage::messageTarget), +CPPMSG(RexxMessage::messageName), +CPPMSG(RexxMessage::arguments), CPPMSG(RexxMessage::newRexx), @@ -929,6 +932,9 @@ defineKernelMethod(CHAR_HASERROR, TheMessageBehaviour, CPPMSG(RexxMessage::hasError), 0); defineKernelMethod(CHAR_NOTIFY , TheMessageBehaviour, CPPMSG(RexxMessage::notify), 1); defineKernelMethod(CHAR_RESULT , TheMessageBehaviour, CPPMSG(RexxMessage::result), 0); + defineKernelMethod(CHAR_TARGET , TheMessageBehaviour, CPPMSG(RexxMessage::messageTarget), 0); + defineKernelMethod(CHAR_MESSAGENAME , TheMessageBehaviour, CPPMSG(RexxMessage::messageName), 0); + defineKernelMethod(CHAR_ARGUMENTS , TheMessageBehaviour, CPPMSG(RexxMessage::arguments), 0); defineKernelMethod(CHAR_ERRORCONDITION , TheMessageBehaviour, CPPMSG(RexxMessage::errorCondition), 0); defineKernelMethod(CHAR_SEND , TheMessageBehaviour, CPPMSG(RexxMessage::send), 1); defineKernelMethod(CHAR_START , TheMessageBehaviour, CPPMSG(RexxMessage::start), 1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |