Home

 

Using arithmetic

If the programming language does not support bit operations, perform the following steps using integer arithmetic:

  1. 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.

  2. Divide the Report field by A; call the result

    B.

  3. Divide

    B by 8; call the result C.

  4. Multiply

    C by 8 and subtract from B; call the result

    D.

  5. Multiply

    D by A; call the result E.

  6. 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*A

Use 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