StreamFilter

StreamFilter, as its name implies, is an abstract super class of filters in the Pipes-And-Filters architecture [Siemens]. StreamFilter either consumes a stream or converts one type of stream to another. HyperRenderer is an example of Filter that consumes the input stream. ImageFilter, CodeFilter, and HtmlParser are examples of StreamFilters that converts one type of stream to another type.

The StreamManager is responsible for setting up the pipes and filters in order to process the ExternalReadStream obtained by the LinkAccessor. Figure 1 shows the architecture used in NetFish. The box 'StreamFilters' represents one or more StreamFilters. Figure 2 shows a combination of Filters that can be used to process the stream of characters from a HTML document.

Figure 1. Pipes & Filters in NetFish

Figure 2. The Filters used in parsing a HTML document