-
All the possible data objects are created and reset.
-
Each frame is decoded, beginning with the first frame, and sequentially proceeding through each successive frame. Therefore, if a value is changed in your internal data object during the processing of a frame, you know that the value will be retained when the next frame calls your data object.
-
Just before the first time a data object is called in a frame, PUT_DATA_INTO_A_BYTE_ARRAY is called to get a copy of the beginning value of the data object (the data object puts data into a byte array for the frame compiler to read). Note that this is done for each frame.
-
All frame processing is done, including calls to methods that may use and/or change the data object.
-
The next protocol information is determined, possibly with the help of the data object.
-
All of the data objects are given a chance to change or replace the data that they supplied in step 3 through a call to OPTIMIZE_DATA.
-
The frame's protocol stack information and all the data objects are saved in a record in the FRM file.