A method for dynamic processing of unbounded data streams, the system being adapted to operate on a data processing system including a display panel, a database, and a non-volatile storage device, the method comprising the steps of:
- receiving an input stream of data elements from the database and designating said input stream as a source data stream;
- maintaining an insert list of data elements containing a first set of data elements not contained in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said insert list;
- maintaining a delete list of data elements containing a second set of data elements presently in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said delete list;
- maintaining a flagged list of data elements selected for further processing and containing a third list of data elements arranged in sequence according to a corresponding sequence value associated with each of said data elements in said flagged list;
- initializing a current source data stream pointer, a current insert list pointer, a current delete list pointer, and a current flagged list pointer to refer to a first element in said source data stream, said insert list, said delete list, and said flagged list, respectively;
- determining a data element to be returned to the display panel in response to a request for a current element in an apparent list of data elements including:
- filtering said source data stream through said insert list of data elements to obtain a candidate data element for the next element in said apparent list,
- filtering said candidate data element through said delete list of data elements to verify said candidate element has not been deleted,
- checking said candidate data element against said flagged list of data elements to determine if said candidate element has been flagged, and
- setting said candidate data element as the current data element in said apparent list and returning said current data element to the display panel.