• Skip to content
  • Skip to link menu
KDE 4.1 API Reference
  • KDE API Reference
  • KDE-PIM Libraries
  • Sitemap
  • Contact Us
 

Syndication Library

Syndication::Loader

Syndication::Loader Class Reference

#include <loader.h>

Inheritance diagram for Syndication::Loader:

Inheritance graph
[legend]

List of all members.


Detailed Description

This class is the preferred way of loading feed sources.

Usage is very straightforward:

 Loader *loader = Loader::create();
 connect(loader, SIGNAL(loadingComplete(Loader*, FeedPtr, ErrorCode)),
         this, SLOT(slotLoadingComplete(Loader*, FeedPtr, ErrorCode)));
 loader->loadFrom("http://www.blah.org/foobar.rdf");

This creates a Loader object, connects it's loadingComplete() signal to your custom slot and then makes it load the file 'http://www.blah.org/foobar.rdf'. You could've done something like this as well:

 // create the Loader, connect it's signal...
 loader->loadFrom("/home/myself/some-script.py", new OutputRetriever);

That'd make the Loader use a custom algorithm for retrieving the RSS data; 'OutputRetriever' will make it execute the script '/home/myself/some-script.py' and assume whatever that script prints to stdout is RSS/Azom markup. This is e.g. handy for conversion scripts, which download a HTML file and convert it's contents into RSS markup.

No matter what kind of retrieval algorithm you employ, your 'slotLoadingComplete' method might look like this:

 void MyClass::slotLoadingComplete(Loader* loader, FeedPtr feed, ErrorCode status)
 {
     // Note that Loader::~Loader() is private, so you cannot delete Loader instances.
     // You don't need to do that anyway since Loader instances delete themselves.

     if (status != Syndication::Success)
         return;

     QString title = feed->title();
     // do whatever you want with the information.
 }

Definition at line 75 of file loader.h.


Signals

void loadingComplete (Syndication::Loader *loader, Syndication::FeedPtr feed, Syndication::ErrorCode error)

Public Member Functions

void abort ()
KUrl discoveredFeedURL () const
ErrorCode errorCode () const
void loadFrom (const KUrl &url)
void loadFrom (const KUrl &url, DataRetriever *retriever)
int retrieverError () const

Static Public Member Functions

static Loader * create (QObject *object, const char *slot)
static Loader * create ()

Member Function Documentation

void Syndication::Loader::abort (  ) 

aborts the loading process

Definition at line 103 of file loader.cpp.

Loader * Syndication::Loader::create ( QObject *  object,
const char *  slot 
) [static]

Convenience method.

Does the same as the above method except that it also does the job of connecting the loadingComplete() signal to the given slot for you.

Parameters:
object A QObject which features the specified slot
slot Which slot to connect to.

Definition at line 56 of file loader.cpp.

Loader * Syndication::Loader::create (  )  [static]

Constructs a Loader instance.

This is pretty much what the default constructor would do, except that it ensures that all Loader instances have been allocated on the heap (this is required so that Loader's can delete themselves safely after they emitted the loadingComplete() signal.).

Returns:
A pointer to a new Loader instance.

Definition at line 51 of file loader.cpp.

KUrl Syndication::Loader::discoveredFeedURL (  )  const

returns the URL of a feed discovered in the feed source

Definition at line 116 of file loader.cpp.

Syndication::ErrorCode Syndication::Loader::errorCode (  )  const

Retrieves the error code of the last loading process (if any).

Definition at line 98 of file loader.cpp.

void Syndication::Loader::loadFrom ( const KUrl &  url  ) 

Convenience method.

Does the same as the above method, where FileRetriever is used as retriever implementation.

Parameters:
url A URL referencing the input file.

Definition at line 74 of file loader.cpp.

void Syndication::Loader::loadFrom ( const KUrl &  url,
DataRetriever *  retriever 
)

Loads the feed source referenced by the given URL using the specified retrieval algorithm.

Make sure that you connected to the loadingComplete() signal before calling this method so that you're guaranteed to get notified when the loading finished.

Note:
A Loader object cannot load from multiple URLs simultaneously; consequently, subsequent calls to loadFrom will be discarded silently, only the first loadFrom request will be executed.
Parameters:
url A URL referencing the input file.
retriever A subclass of DataRetriever which implements a specialized retrieval behaviour. Note that the ownership of the retriever is transferred to the Loader, i.e. the Loader will delete it when it doesn't need it anymore.
See also:
DataRetriever, Loader::loadingComplete()

Definition at line 79 of file loader.cpp.

void Syndication::Loader::loadingComplete ( Syndication::Loader *  loader,
Syndication::FeedPtr  feed,
Syndication::ErrorCode  error 
) [signal]

This signal gets emitted when the loading process triggered by calling loadFrom() finished.

Parameters:
loader A pointer pointing to the loader object which emitted this signal; this is handy in case you connect multiple loaders to a single slot.
feed In case errortus is Success, this parameter holds the parsed feed. If fetching/parsing failed, feed is NULL.
error An error code telling whether there were any problems while retrieving or parsing the data.
See also:
Feed, ErrorCode

int Syndication::Loader::retrieverError (  )  const

the error code returned from the retriever.

Use this if you use your custom retriever implementation and need the specific error, not covered by errorCode().

Definition at line 93 of file loader.cpp.


The documentation for this class was generated from the following files:
  • loader.h
  • loader.cpp

Syndication Library

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

KDE-PIM Libraries

Skip menu "KDE-PIM Libraries"
  • akonadi
  • kabc
  • kblog
  • kcal
  • kimap
  • kioslave
  •   imap4
  •   mbox
  • kldap
  • kmime
  • kpimidentities
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Generated for KDE-PIM Libraries by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal