The basic pieces of a TimeWarp simulation object include an input queue, an output queue, and a state queue. The input queue holds events that the object needs to process (and possibly some that it has already processed). The output queue holds events that the object has generated and sent to other objects. In the event of a rollback, the object has a record of each message that it has sent during the simulation so it can send out negative messages (as mandated by the TimeWarp algorithm.) The state queue holds the old states necessary to perform a rollback to any time after GVT.
Each of the three queue classes, the InputQueue class, the OutputQueue class, and the StateQueue class, are derived from the SortedList template class. This is a utility class and is discussed in detail the appendix.