An entity receives events and advances its simulation time by providing an implementation of the handleEvents() method.
Time handleEvents(EventList el, Time t)
The incoming events are passed in the sorted event list, and the method should should advance the entity's time to at least t and return the time actually advanced to. This may be later than t, as long as the state can be rewound back to t and no new events are generated after t.
The kernel will also call this method to advance the time of an entity even when there are now incoming events to process.