Syndication::Loader

#include <loader.h>

Inheritance diagram for Syndication::Loader:

Signals

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

Public Member Functions

void abort ()
 
QUrl discoveredFeedURL () const
 
ErrorCode errorCode () const
 
void loadFrom (const QUrl &url, DataRetriever *retriever)
 
int retrieverError () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Static Public Member Functions

static Loadercreate ()
 
static Loadercreate (QObject *object, const char *slot)
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

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 72 of file loader.h.

Member Function Documentation

void Syndication::Loader::abort ( )

aborts the loading process

Definition at line 92 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 44 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
objectA QObject which features the specified slot
slotWhich slot to connect to.

Definition at line 49 of file loader.cpp.

QUrl Syndication::Loader::discoveredFeedURL ( ) const

returns the URL of a feed discovered in the feed source

Definition at line 104 of file loader.cpp.

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

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

Definition at line 87 of file loader.cpp.

void Syndication::Loader::loadFrom ( const QUrl 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
urlA URL referencing the input file.
retrieverA 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 67 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
loaderA pointer pointing to the loader object which emitted this signal; this is handy in case you connect multiple loaders to a single slot.
feedIn case errortus is Success, this parameter holds the parsed feed. If fetching/parsing failed, feed is NULL.
errorAn 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 82 of file loader.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Tue Jul 7 2020 23:00:50 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.