/**
@mainpage Stream Analyzers

At the heart of Strigi Desktop Search are the stream analyzers.
The system of having multiple analyzers indexing the same file
at the same time is one of the reasons Strigi is be so fast.
Also, Strigi has the ability to load analyzers at run time,
allowing external packages to provide their own analyzers.

The two main types of analyzer are through analyzers (implemented
by subclassing Strigi::StreamThroughAnalyzer) and end
analyzers (subclasses of Strigi::StreamEndAnalyzer).  For each
file, one end analyzer is run together with all the through
analyzers.

The end analyzer drives the process, reading data from the file.
The through analyzers can either ignore this process entirely,
or pick up the data as it is read and act on it.  The mechanisms
used to do this are described below in the section about
@ref throughanalyzer "through analyzers".

Also covered in that section are several convenience interfaces
for analyzing XML files and text files.

@section endanalyzer End Analyzers

An end analyzer has two important functions.  Firstly, since
only one end analyzer can be run on any file, Strigi needs
a way of working out which one to choose.  This is done, in the
first instance, by StreamEndAnalyzer::checkHeader().



*/
