Home
Using arithmetic
If the programming language does not support bit operations, perform the following steps using integer arithmetic:
- Select one of the following values, according to the type of report to be checked:
- MQRO_COA for COA report
- MQRO_COD for COD report
- MQRO_EXCEPTION for exception report
- MQRO_EXPIRATION for expiration report
Call the value
A.
- Divide the Report field by A; call the result
B.
- Divide
B by 8; call the result C.
- Multiply
C by 8 and subtract from B; call the result
D.
- Multiply
D by A; call the result E.
- Test
E for equality with each value that is possible for that type of report.
For example, if
A is MQRO_EXCEPTION, test E for equality with each of the following to determine what was specified by the sender of the message:
- MQRO_NONE
- MQRO_EXCEPTION
- MQRO_EXCEPTION_WITH_DATA
- MQRO_EXCEPTION_WITH_FULL_DATA
The tests can be performed in whatever order is most convenient for the application logic.
The following pseudocode illustrates this technique for exception report messages:
A = MQRO_EXCEPTION B = Report/A C = B/8 D = B - C*8 E = D*AUse a similar method to test for the MQRO_PASS_MSG_ID or MQRO_PASS_CORREL_ID options; select as the value
A whichever of these two constants is appropriate, and then proceed as described above, but replacing the value
8 in the steps above by the value 2.
Home