Syndication::ParserCollection
#include <parsercollection.h>
Public Member Functions | |
virtual | ~ParserCollection () |
virtual void | changeMapper (const QString &format, Mapper< T > *mapper)=0 |
virtual ErrorCode | lastError () const =0 |
virtual QSharedPointer< T > | parse (const DocumentSource &source, const QString &formatHint=QString())=0 |
virtual bool | registerParser (AbstractParser *parser, Mapper< T > *mapper)=0 |
Detailed Description
class Syndication::ParserCollection< T >
A collection of format-specific parser implementations.
To parse a feed source, pass it to the parse() method of this class. In most cases, you should use the global singleton instance Syndication::parserCollection(). When loading the source from the web, use Loader instead of using this class directly.
Example code:
The template parameter T is the abstraction class parsed documents should be mapped to. If you want to use your own abstraction MyFeed, implement ParserCollection<MyFeed> (Note that you have to provide mapper implementations for every feed format then).
Definition at line 57 of file parsercollection.h.
Constructor & Destructor Documentation
◆ ~ParserCollection()
|
inlinevirtual |
destructor
Definition at line 61 of file parsercollection.h.
Member Function Documentation
◆ changeMapper()
|
pure virtual |
Changes the specific format to abstraction mapping for a parser.
- Parameters
-
format the format string of the parser whose mapping should be changed. See AbstractParser::format. mapper Mapper implementation doing the mapping from the format specific representation to abstraction of type T.
◆ lastError()
|
pure virtual |
◆ parse()
|
pure virtual |
tries to parse a given source with the parsers registered.
The source is passed to the first parser that accepts it.
- Parameters
-
source The source to be parsed formatHint An optional hint which parser to test first. If there is a parser with the given hint as format string (e.g., "rss2", "atom", "rdf"...), it is asked first to accept the source. This can avoid unnecessary AbstractParser::accept() checks and speed up parsing. See also AbstractParser::format().
- Returns
- The feed document parsed from the source, or NULL if no parser accepted the source.
◆ registerParser()
|
pure virtual |
Adds a parser and corresponding mapper to the collection.
AbstractParser::format() must be unique in the collection. If there is already a parser with the same format string, the parser isn't added.
- Note
- ownership for both
parser
andmapper
is taken by the implementation, so don't delete them in your code!
- Parameters
-
parser The parser to be registered mapper the mapper that should be used for building the abstraction
- Returns
- whether the parser was successfully registered or not.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:09:18 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.