Package org.rexxla.bsf.engines.rexx
Interface RexxExitHandler
- All Superinterfaces:
RexxHandler
- All Known Implementing Classes:
AbstractExitHandler
Interface class for Rexx exit handlers. Cf. ooRexx'
rexxpg.pdf documentation.
All final static fields that use ooRexx names also use the ooRexx constant values from
the ooRexx include file rexxapidefs.h, from which the descriptions and values
got copied from.
------------------------ Apache Version 2.0 license -------------------------
Copyright (C) 2012-2022 Rony G. Flatscher
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
----------------------------------------------------------------------------- - Since:
- 2022-08-22
- Version:
- 850.0
- Author:
- Rony G. Flatscher
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String[]Names of Rexx system exit function numbers between number 0 and 15.static final intProcess host commands.static final intCalls a named subcommand handler.static final intEnd of exit list.static final intscripting function callstatic final intProcesses calls to external functions.static final intExit handled exit eventstatic final intExit passes on exit eventstatic final intExit handler error occurredstatic final intProcess external functions.static final intProcesses calls to external functions.static final intHalt processing.static final intClear HALT indicatorstatic final intTest HALT indicatorstatic final intInitialization processing.static final intInitialization exit.static final intManipulate queue.static final intSet active queue namestatic final intPull a line from queuestatic final intPlace a line on queuestatic final intReturn num of lines on queuestatic final int1 + largest exit number.static final intNOVALUE exitstatic final intProcesses a Rexx NOVALUE condition.static final intProcess external functions using object values.static final intProcesses calls to external functions.static final intSession I/O.static final intDEBUG read from char streamstatic final intSAY a line to STDOUTstatic final intReturn linelength (n/a OS/2)static final intTrace outputstatic final intRead from char streamstatic final intTermination processing.static final intTermination exit.static final intTest ext trace indicator.static final intTests the external trace indicator.static final intVALUE function exitstatic final intProcesses an extended call to the VALUE() built-in function.static final StringVersion string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change. -
Method Summary
Modifier and TypeMethodDescriptioninthandleExit(Object slot, int exitNumber, int subFunction, Object[] parmBlock) Exit handler signature (called via native code) according to the ooRexx API documentation inrexxpg.pdf.Methods inherited from interface org.rexxla.bsf.engines.rexx.RexxHandler
checkCondition, clearCondition, dropContextVariable, getAllContextVariables, getCallerContext, getConditionInfo, getContextVariable, getGlobalEnvironment, getInterpreterVersion, getLanguageLevel, getLocalEnvironment, getNil, haltThread, newArray, newDirectory, newStem, newStringTable, raiseCondition, raiseException, raiseException0, raiseException1, raiseException2, setContextVariable, setContextVariableToNil, setThreadTrace
-
Field Details
-
version
Version string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change.- See Also:
-
RXEXIT_HANDLED
static final int RXEXIT_HANDLEDExit handled exit event- See Also:
-
RXEXIT_NOT_HANDLED
static final int RXEXIT_NOT_HANDLEDExit passes on exit event- See Also:
-
RXEXIT_RAISE_ERROR
static final int RXEXIT_RAISE_ERRORExit handler error occurred- See Also:
-
RXENDLST
static final int RXENDLSTEnd of exit list.- See Also:
-
RXFNC
static final int RXFNCProcess external functions.- See Also:
-
RXFNCCAL
static final int RXFNCCALProcesses calls to external functions.- See Also:
-
RXCMD
static final int RXCMDProcess host commands.- See Also:
-
RXCMDHST
static final int RXCMDHSTCalls a named subcommand handler.- See Also:
-
RXMSQ
static final int RXMSQManipulate queue.- See Also:
-
RXMSQPLL
static final int RXMSQPLLPull a line from queue- See Also:
-
RXMSQPSH
static final int RXMSQPSHPlace a line on queue- See Also:
-
RXMSQSIZ
static final int RXMSQSIZReturn num of lines on queue- See Also:
-
RXMSQNAM
static final int RXMSQNAMSet active queue name- See Also:
-
RXSIO
static final int RXSIOSession I/O.- See Also:
-
RXSIOSAY
static final int RXSIOSAYSAY a line to STDOUT- See Also:
-
RXSIOTRC
static final int RXSIOTRCTrace output- See Also:
-
RXSIOTRD
static final int RXSIOTRDRead from char stream- See Also:
-
RXSIODTR
static final int RXSIODTRDEBUG read from char stream- See Also:
-
RXSIOTLL
static final int RXSIOTLLReturn linelength (n/a OS/2)- See Also:
-
RXHLT
static final int RXHLTHalt processing.- See Also:
-
RXHLTCLR
static final int RXHLTCLRClear HALT indicator- See Also:
-
RXHLTTST
static final int RXHLTTSTTest HALT indicator- See Also:
-
RXTRC
static final int RXTRCTest ext trace indicator.- See Also:
-
RXTRCTST
static final int RXTRCTSTTests the external trace indicator.- See Also:
-
RXINI
static final int RXINIInitialization processing.- See Also:
-
RXINIEXT
static final int RXINIEXTInitialization exit.- See Also:
-
RXTER
static final int RXTERTermination processing.- See Also:
-
RXTEREXT
static final int RXTEREXTTermination exit.- See Also:
-
RXEXF
static final int RXEXFscripting function call- See Also:
-
RXEXFCAL
static final int RXEXFCALProcesses calls to external functions.- See Also:
-
RXNOVAL
static final int RXNOVALNOVALUE exit- See Also:
-
RXNOVALCALL
static final int RXNOVALCALLProcesses a Rexx NOVALUE condition.- See Also:
-
RXVALUE
static final int RXVALUEVALUE function exit- See Also:
-
RXVALUECALL
static final int RXVALUECALLProcesses an extended call to the VALUE() built-in function.- See Also:
-
RXOFNC
static final int RXOFNCProcess external functions using object values.- See Also:
-
RXOFNCCAL
static final int RXOFNCCALProcesses calls to external functions.- See Also:
-
RXNOOFEXITS
static final int RXNOOFEXITS1 + largest exit number.- See Also:
-
RX_EXIT_NAMES
Names of Rexx system exit function numbers between number 0 and 15. (As baseline is Java 1.4 enumerations cannot be used.)
-
-
Method Details
-
handleExit
Exit handler signature (called via native code) according to the ooRexx API documentation inrexxpg.pdf.The following documents briefly the
parmBlock-array that gets supplied to the Java exit handler, depending on the exit number and subfunction. Please refer also to the ooRexx documentation "rexxpg.pdf", section entitled "Context Exit Definitions" on which this implementation is based upon.Exit name/number subfunction name/number Description RXFNC/2RXFNCCAL/1Processes calls to external functions.
parmBlock:[0] rxfnc_flags, type:boolean[][0] rxfferr, settable ("invalid call to routine")[1] rxffnfnd, settable ("function not found")[2] rxffsub, iftruethen called as subroutine, else as function
[1] rxfnc_name, subroutine/function name, type:String[2] rxfnc_que, current queue name, type:String[3] rxfnc_argv, supplied arguments, type:Object[], can benull[4] rxfnc_retc, return value by handler, if any, type:StringRXCMD/3RXCMDHST/1Calls a named subcommand handler.
parmBlock:[0] rxfnc_flags, type:boolean[][0] rxffail, settable ("command failed (trap FAILURE condition)")[1] rxffcerr, settable ("command raises an error (trap ERROR condition)")
[1] rxcmd_address, address name, type:String[2] rxcmd_dll, DLL name, if handler is in a DLL, empty string else, type:String[3] rxcmd_command, command, type:String[4] rxcmd_retc, return value by handler, if any, type:StringRXMSQ/4RXMSQPLL/1Pulls a line from the external data queue.
parmBlock:[0] rxmsq_retc, return value by handler, if any, type:StringRXMSQPSH/2Places a line in the external data queue.
parmBlock:[0] rxfnc_flags, type:boolean[][0] rxfmlifo, if setLIFO (QUEUE), iffalse FIFO (PUSH)
[1] rxmsq_value, entry to be pushed/queued, type:StringRXMSQSIZ/3Returns the number of lines in the external data queue.
parmBlock:[0] rxmsq_size, number of lines in queue, type:StringRXMSQNAM/20Sets the name of the active external data queue.
parmBlock:[0] rxmsq_name, new external data queue name, type:StringRXSIO/5RXSIOSAY/1Writes a line to the standard output stream.
parmBlock:[0] rxsio_string, string to display, type:StringRXSIOTRC/2Writes trace and error message output to the standard error stream. parmBlock:[0] rxsio_string, trace line to display, type:StringRXSIOTRD/3Reads from standard input stream.
parmBlock:[0] rxsiotrd_retc, return value by handler, if any, type:StringRXSIODTR/4Interactive debug input.
parmBlock:[0] rxsiodtr_retc, return value by handler, if any, type:StringRXHLT/7RXHLTCLR/1Clears the HALT condition.
parmBlock:[0] rxhlt_flags, type:boolean[][0] rxfhhalt, settable, if set totrue, theHALTcondition will be cleared
RXHLTTST/2Tests the halt indicator.
parmBlock:[0] rxhlt_flags, type:boolean[][0] rxfhhalt, settable, if set totrue, theHALTcondition will be raised
RXTRC/8RXTRCTST/1Tests the external trace indicator.
parmBlock:[0] rxtrc_flags, type:boolean[][0] rxftrace, settable, if set totrue, then tracing will take place
RXINI/9RXINIEXT/1Initializing processing. RXTER/10RXTEREXT/1Termination processing. RXEXF/12RXEXFCAL/1Processes calls to external functions (ooRexx version), at end of search for an external routine.
parmBlock:[0] rxfnc_flags, type:boolean[][0] rxfferr, settable ("invalid call to routine")[1] rxffnfnd, settable ("function not found")[2] rxffsub, iftruethen called as subroutine, else as function
[1] rxfnc_name, subroutine/function name, type:String[2] rxfnc_argv, supplied arguments, type:Object[], can benull[3] rxfnc_retc, return value by handler, if any, type:ObjectRXNOVAL/13RXNOVALCALL/1Processes a Rexx NOVALUEcondition.
parmBlock:[0] variable_name, variable name, type:String[1] value, return value by handler, if any, type:ObjectRXVALUE/14RXVALUECALL/1Processes an extended call to the VALUE()built-in function ("BIF")parmBlock:[0] selector, the environment selector name, type:String[1] variable_name, variable name, type:String[2] value, return value by handler, if any, type:ObjectRXOFNC/15RXOFNCCAL/1Processes calls to external functions (ooRexx version), at beginning of the search for an external routine.
parmBlock:[0] rxfnc_flags, type:boolean[][0] rxfferr, settable ("invalid call to routine")[1] rxffnfnd, settable ("function not found")[2] rxffsub, iftruethen called as subroutine, else as function
[1] rxfnc_name, subroutine/function name, type:String[2] rxfnc_argv, supplied arguments, type:Object[], can benull[3] rxfnc_retc, return value by handler, if any, type:Object- Parameters:
slot- this is an opaqueObjectargument which must be supplied unchanged to the direct Rexx API methods inRexxHandlerexitNumber- the Rexx exit numbersubFunction- the Rexx exit subfunction numberparmBlock- anObject[]which is structured according to the ooRexx exit documentation inrexxpg.pdf; each structure is itself contained in anObject[]- Returns:
- RXEXIT_HANDLED (0), RXEXIT_NOT_HANDLED (1) or RXEXIT_RAISE_ERROR (-1)
-