IUP ISI/MediaWiki-Silk/coding-style: Difference between revisions
No edit summary |
No edit summary |
||
Line 189: | Line 189: | ||
else if ( token == QXmlStreamReader::Invalid ) | else if ( token == QXmlStreamReader::Invalid ) | ||
emit onFinished( false ); | emit onFinished( false ); | ||
} | |||
} | |||
= Class type to return list = | |||
== list.h == | |||
/* | |||
* Copyright 2010 by XXXX XXXX <[email protected]> | |||
* | |||
* This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU Library General Public License as | |||
* published by the Free Software Foundation; either version 2, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details | |||
* | |||
* You should have received a copy of the GNU Library General Public | |||
* License along with this program; if not, write to the | |||
* Free Software Foundation, Inc., | |||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
<nowiki>#</nowiki>ifndef LIST_H | |||
<nowiki>#</nowiki>define LIST_H | |||
<nowiki>#</nowiki>include <QtCore/QObject> | |||
<nowiki>#</nowiki>include <kdemacros.h> | |||
class MediaWiki; | |||
class QNetworkReply; | |||
class KDE_EXPORT List : public QObject | |||
{ | |||
Q_OBJECT | |||
public: | |||
struct Result { | |||
/* Attribute result */ | |||
}; | |||
/** | |||
@brief Create an instance of List and send a request. | |||
@param media | |||
@param parent | |||
*/ | |||
explicit List( MediaWiki const & media, /*Put attributes here*/, QObject * parent = 0 ); | |||
/** | |||
@brief Destroy the ListPrivate pointer. | |||
*/ | |||
virtual ~List(); | |||
signals: | |||
/** | |||
@brief Emitted when a request has been completed. | |||
@param success true if the request was completed successfully. | |||
*/ | |||
void finished( QList<List::Result> list ); | |||
public slots: | |||
/** | |||
@brief Aborts the currently running request. | |||
*/ | |||
void abort(); | |||
private slots: | |||
/** | |||
@brief Reads the xml and build results | |||
@param reply | |||
*/ | |||
void onFinished( QNetworkReply *reply ); | |||
private: | |||
struct ListPrivate *const d; | |||
}; | |||
<nowiki>#</nowiki>endif // LIST_H | |||
== list.cpp == | |||
/* | |||
* Copyright 2010 by XXXX XXXX <[email protected]> | |||
* | |||
* This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU Library General Public License as | |||
* published by the Free Software Foundation; either version 2, or | |||
* (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details | |||
* | |||
* You should have received a copy of the GNU Library General Public | |||
* License along with this program; if not, write to the | |||
* Free Software Foundation, Inc., | |||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
<nowiki>#</nowiki>include <QtNetwork/QNetworkAccessManager> | |||
<nowiki>#</nowiki>include <QtNetwork/QNetworkRequest> | |||
<nowiki>#</nowiki>include <QtNetwork/QNetworkReply> | |||
<nowiki>#</nowiki>include <QtCore/QXmlStreamReader> | |||
<nowiki>#</nowiki>include <QtCore/QDebug> | |||
<nowiki>#</nowiki>include "list.h" | |||
struct ListPrivate | |||
{ | |||
QNetworkAccessManager *manager; | |||
QNetworkReply *reply; | |||
QUrl apiUrl; | |||
/*Put attributes here*/ | |||
}; | |||
Attribute::Attribute( MediaWiki const & media, /*Put attributes here*/, QObject * parent ) | |||
: QObject( parent ) | |||
, d( new ListPrivate ) | |||
{ | |||
d->apiUrl = media.url(); | |||
QUrl url = d->apiUrl; | |||
url.addQueryItem( QString("action"), QString("query") ); | |||
// Set the request | |||
QNetworkRequest request( url ); | |||
request.setRawHeader( "User-Agent", "mediawiki-silk" ); | |||
// Send the request | |||
d->manager = new QNetworkAccessManager( this ); | |||
connect( d->manager, SIGNAL( onFinished( QNetworkReply* ) ), this, SLOT( onFinished( QNetworkReply * ) ) ); | |||
d->reply = d->manager->get( request ); | |||
} | |||
List::~List() | |||
{ | |||
delete d; | |||
} | |||
void List::abort() | |||
{ | |||
qDebug() << "abort"; | |||
if ( !d->reply ) | |||
return; | |||
d->reply->abort(); | |||
d->reply = 0; | |||
} | |||
void List::onFinished( QNetworkReply *reply ) | |||
{ | |||
if ( reply->error() == QNetworkReply::NoError ) | |||
{ | |||
// Parse xml | |||
emit finished( list ); | |||
} | } | ||
} | } |
Revision as of 20:04, 25 October 2010
Class type to return attributes
attribute.h
/*
* Copyright 2010 by XXXX XXXX <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef ATTRIBUTE_H
#define ATTRIBUTE_H
#include <QtCore/QObject>
#include <kdemacros.h>
class MediaWiki; class QNetworkReply;
class KDE_EXPORT Attribute : public QObject {
Q_OBJECT
public:
/** @brief Create an instance of Attribute and send a request. @param media @param parent */ explicit Attribute( MediaWiki const & media, /*Put attributes here*/ QObject * parent = 0 );
/** @brief Destroy the AttributePrivate pointer. */ virtual ~Attribute();
signals:
/** @brief Emitted when a request has been completed. @param success true if the request was completed successfully. */ void finished( bool );
public slots:
/** @brief Aborts the currently running request. */ void abort();
private slots:
/** @brief Reads the xml and build results @param reply */ void onFinished( QNetworkReply *reply );
private:
struct AttributePrivate * const d;
};
#endif // ATTRIBUTE_H
attribute.cpp
/*
* Copyright 2010 by XXXX XXXX <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QXmlStreamReader>
#include <QtCore/QTimer>
#include <QtCore/QDebug>
#include "attribute.h"
struct AttributePrivate {
QNetworkAccessManager *manager; QNetworkReply *reply; QUrl apiUrl; /*Put attributes here*/
};
Attribute::Attribute( MediaWiki const & media, /*Put attributes here*/, QObject * parent )
: QObject( parent ) , d( new AttributePrivate )
{
d->apiUrl = media.url(); QUrl url = d->apiUrl;
url.addQueryItem( QString("action"), QString("query") );
// Set the request QNetworkRequest request( url ); request.setRawHeader( "User-Agent", "mediawiki-silk" ); // Send the request d->manager = new QNetworkAccessManager( this );
connect( d->manager, SIGNAL( onFinished( QNetworkReply* ) ), this, SLOT( onFinished( QNetworkReply * ) ) ); d->reply = d->manager->get( request ); QTimer::singleShot( 30 * 1000, this, SLOT( abort() ) );
}
Attribute::~Attribute() {
delete d;
}
void Attribute::abort() {
qDebug() << "abort"; if ( !d->reply ) return;
d->reply->abort(); d->reply = 0;
}
void Attribute::onFinished( QNetworkReply *reply ) {
if ( reply->error() != QNetworkReply::NoError ) { qDebug() << "Request failed, " << reply->errorString(); emit onFinished( false ); return; }
QXmlStreamReader reader( reply );
while ( !reader.atEnd() && !reader.hasError() ) { QXmlStreamReader::TokenType token = reader.readNext(); if ( token == QXmlStreamReader::StartElement ) { if ( reader.name() == QString( "goodName" ) ) { QXmlStreamAttributes attrs = reader.attributes(); if ( attrs.value( QString( "result" ) ).toString() == "goodResult" ) { qDebug() << "Request succed, " << reply->errorString(); d->lgtoken = attrs.value( QString( "result" ) ).toString() ; emit onFinished( true ); } } } else if ( token == QXmlStreamReader::Invalid ) emit onFinished( false ); }
}
Class type to return list
list.h
/*
* Copyright 2010 by XXXX XXXX <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef LIST_H
#define LIST_H
#include <QtCore/QObject>
#include <kdemacros.h>
class MediaWiki; class QNetworkReply;
class KDE_EXPORT List : public QObject {
Q_OBJECT
public:
struct Result { /* Attribute result */ }; /** @brief Create an instance of List and send a request. @param media @param parent */ explicit List( MediaWiki const & media, /*Put attributes here*/, QObject * parent = 0 );
/** @brief Destroy the ListPrivate pointer. */ virtual ~List();
signals:
/** @brief Emitted when a request has been completed. @param success true if the request was completed successfully. */ void finished( QList<List::Result> list );
public slots:
/** @brief Aborts the currently running request. */ void abort();
private slots:
/** @brief Reads the xml and build results @param reply */ void onFinished( QNetworkReply *reply );
private:
struct ListPrivate *const d;
};
#endif // LIST_H
list.cpp
/*
* Copyright 2010 by XXXX XXXX <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QXmlStreamReader>
#include <QtCore/QDebug>
#include "list.h"
struct ListPrivate {
QNetworkAccessManager *manager; QNetworkReply *reply; QUrl apiUrl; /*Put attributes here*/
};
Attribute::Attribute( MediaWiki const & media, /*Put attributes here*/, QObject * parent )
: QObject( parent ) , d( new ListPrivate )
{
d->apiUrl = media.url(); QUrl url = d->apiUrl;
url.addQueryItem( QString("action"), QString("query") );
// Set the request QNetworkRequest request( url ); request.setRawHeader( "User-Agent", "mediawiki-silk" ); // Send the request d->manager = new QNetworkAccessManager( this );
connect( d->manager, SIGNAL( onFinished( QNetworkReply* ) ), this, SLOT( onFinished( QNetworkReply * ) ) ); d->reply = d->manager->get( request );
}
List::~List() {
delete d;
}
void List::abort() {
qDebug() << "abort"; if ( !d->reply ) return;
d->reply->abort(); d->reply = 0;
}
void List::onFinished( QNetworkReply *reply ) {
if ( reply->error() == QNetworkReply::NoError ) { // Parse xml emit finished( list ); }
}