From: <bi...@us...> - 2007-02-13 19:59:35
|
Revision: 115 http://svn.sourceforge.net/oorexx/?rev=115&view=rev Author: bigrixx Date: 2007-02-13 11:59:32 -0800 (Tue, 13 Feb 2007) Log Message: ----------- Add new methods to message class. Modified Paths: -------------- interpreter/trunk/kernel/classes/MessageClass.cpp interpreter/trunk/kernel/classes/MessageClass.hpp interpreter/trunk/kernel/runtime/GlobalData.cpp interpreter/trunk/kernel/runtime/RexxConstants.hpp interpreter/trunk/kernel/runtime/Setup.cpp Modified: interpreter/trunk/kernel/classes/MessageClass.cpp =================================================================== --- interpreter/trunk/kernel/classes/MessageClass.cpp 2007-02-08 15:19:56 UTC (rev 114) +++ interpreter/trunk/kernel/classes/MessageClass.cpp 2007-02-13 19:59:32 UTC (rev 115) @@ -414,6 +414,47 @@ return (RexxObject *)TheFalseObject;/* nope return false. */ } + +/** + * Check to see if a message has an error condition. Return false + * if the message has not completed yet. + * + * @return True if the message has terminated with an error condition, + * false if it is still running or has completed without error. + */ +RexxObject *RexxMessage::hasError() +{ + if (this->raiseError()) + { + return TheTrueObject; + } + else + { + return TheFalseObject; + } +} + +/** + * 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. + * + * @return Any condition object from a terminating error, or .nil if + * there was no error or the message is still running. + */ +RexxObject *RexxMessage::errorCondition() +{ + if (this->condition == OREF_NULL) + { + return TheNilObject; + } + else + { + return this->condition; + } + +} + void *RexxMessage::operator new(size_t size) /******************************************************************************/ /* Function: Construct a new message object */ Modified: interpreter/trunk/kernel/classes/MessageClass.hpp =================================================================== --- interpreter/trunk/kernel/classes/MessageClass.hpp 2007-02-08 15:19:56 UTC (rev 114) +++ interpreter/trunk/kernel/classes/MessageClass.hpp 2007-02-13 19:59:32 UTC (rev 115) @@ -69,6 +69,8 @@ RexxObject *send(RexxObject *); RexxObject *start(RexxObject *); RexxObject *completed(); + RexxObject *hasError(); + RexxObject *errorCondition(); void sendNotification(); void error(RexxDirectory *); RexxObject *newRexx(RexxObject **, size_t); Modified: interpreter/trunk/kernel/runtime/GlobalData.cpp =================================================================== --- interpreter/trunk/kernel/runtime/GlobalData.cpp 2007-02-08 15:19:56 UTC (rev 114) +++ interpreter/trunk/kernel/runtime/GlobalData.cpp 2007-02-13 19:59:32 UTC (rev 115) @@ -210,6 +210,8 @@ CPPM(RexxMessage::send), CPPM(RexxMessage::start), CPPM(RexxMessage::completed), +CPPM(RexxMessage::hasError), +CPPM(RexxMessage::errorCondition), CPPM(RexxMessage::newRexx), Modified: interpreter/trunk/kernel/runtime/RexxConstants.hpp =================================================================== --- interpreter/trunk/kernel/runtime/RexxConstants.hpp 2007-02-08 15:19:56 UTC (rev 114) +++ interpreter/trunk/kernel/runtime/RexxConstants.hpp 2007-02-13 19:59:32 UTC (rev 115) @@ -125,6 +125,7 @@ CHARCONSTANT(ERROR, "EQUALS"); CHARCONSTANT(ERROR, "EQUALSCASELESS"); CHARCONSTANT(ERROR, "ERROR"); +CHARCONSTANT(ERRORCONDITION, "ERRORCONDITION"); CHARCONSTANT(ERRORTEXT, "ERRORTEXT"); CHARCONSTANT(EXIT, "EXIT"); CHARCONSTANT(EXMODE, "EXMODE"); @@ -146,6 +147,7 @@ CHARCONSTANT(GLOBAL_STRINGS, "GLOBAL_STRINGS"); CHARCONSTANT(HALT, "HALT"); CHARCONSTANT(HASENTRY, "HASENTRY"); +CHARCONSTANT(HASERROR, "HASERROR"); CHARCONSTANT(HASINDEX, "HASINDEX"); CHARCONSTANT(HASITEM, "HASITEM"); CHARCONSTANT(HASMETHOD, "HASMETHOD"); Modified: interpreter/trunk/kernel/runtime/Setup.cpp =================================================================== --- interpreter/trunk/kernel/runtime/Setup.cpp 2007-02-08 15:19:56 UTC (rev 114) +++ interpreter/trunk/kernel/runtime/Setup.cpp 2007-02-13 19:59:32 UTC (rev 115) @@ -421,8 +421,10 @@ /* instance behaviour mdict */ defineKernelMethod(CHAR_COMPLETED, TheMessageBehaviour, CPPM(RexxMessage::completed), 0); + defineKernelMethod(CHAR_HASERROR, TheMessageBehaviour, CPPMSG(RexxMessage::hasError), 0); defineKernelMethod(CHAR_NOTIFY , TheMessageBehaviour, CPPM(RexxMessage::notify), 1); defineKernelMethod(CHAR_RESULT , TheMessageBehaviour, CPPM(RexxMessage::result), 0); + defineKernelMethod(CHAR_ERRORCONDITION , TheMessageBehaviour, CPPMSG(RexxMessage::errorCondition), 0); defineKernelMethod(CHAR_SEND , TheMessageBehaviour, CPPM(RexxMessage::send), 1); defineKernelMethod(CHAR_START , TheMessageBehaviour, CPPM(RexxMessage::start), 1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |