• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.14.10 API Reference
  • KDE Home
  • Contact Us
 

Syndication Library

  • Syndication
  • ParserCollection
Public Member Functions | List of all members
Syndication::ParserCollection< T > Class Template Referenceabstract

#include <parsercollection.h>

Public Member Functions

virtual ~ParserCollection ()
 
virtual void changeMapper (const QString &format, Mapper< T > *mapper)=0
 
virtual ErrorCode lastError () const =0
 
virtual boost::shared_ptr< T > parse (const DocumentSource &source, const QString &formatHint=QString())=0
 
virtual bool registerParser (AbstractParser *parser, Mapper< T > *mapper)=0
 

Detailed Description

template<class T>
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:

...
QFile someFile(somePath);
...
DocumentSource src(someFile.readAll());
someFile.close();
FeedPtr feed = parserCollection()->parse(src);
if (feed)
{
QString title = feed->title();
QList<ItemPtr> items = feed->items();
...
}
Syndication::parserCollection
ParserCollection< Feed > * parserCollection()
The default ParserCollection instance parsing a DocumentSource into a Feed object.
Definition global.cpp:55

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).

Author
Frank Osterfeld

Definition at line 73 of file parsercollection.h.

Constructor & Destructor Documentation

◆ ~ParserCollection()

template<class T >
virtual Syndication::ParserCollection< T >::~ParserCollection ( )
inlinevirtual

destructor

Definition at line 78 of file parsercollection.h.

Member Function Documentation

◆ changeMapper()

template<class T >
virtual void Syndication::ParserCollection< T >::changeMapper ( const QString & format,
Mapper< T > * mapper )
pure virtual

Changes the specific format to abstraction mapping for a parser.

Parameters
formatthe format string of the parser whose mapping should be changed. See AbstractParser::format.
mapperMapper implementation doing the mapping from the format specific representation to abstraction of type T.

◆ lastError()

template<class T >
virtual ErrorCode Syndication::ParserCollection< T >::lastError ( ) const
pure virtual

returns the error code of the last parse() call.

Returns
the last error, or Success if parse() was successful or not yet called at all.

◆ parse()

template<class T >
virtual boost::shared_ptr< T > Syndication::ParserCollection< T >::parse ( const DocumentSource & source,
const QString & formatHint = QString() )
pure virtual

tries to parse a given source with the parsers registered.

The source is passed to the first parser that accepts it.

Parameters
sourceThe source to be parsed
formatHintAn 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()

template<class T >
virtual bool Syndication::ParserCollection< T >::registerParser ( AbstractParser * parser,
Mapper< T > * mapper )
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 and mapper is taken by the implementation, so don't delete them in your code!
Parameters
parserThe parser to be registered
mapperthe 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:
  • global.h
  • parsercollection.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Wed Jan 24 2024 00:00:00 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Syndication Library

Skip menu "Syndication Library"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Related Pages

kdepimlibs-4.14.10 API Reference

Skip menu "kdepimlibs-4.14.10 API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal