diff options
author | megabigbug <megabigbug@yahoo.fr> | 2010-10-04 08:32:21 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2010-10-30 11:38:06 +0200 |
commit | 72af78494652e97cf2caaf05a4ac1613359400f6 (patch) | |
tree | a3968f159fd075a10c20ad2165ecef66b14b9eef /src/opensearch/suggestionparser.h | |
parent | Added CtestConfig.cmake (diff) | |
download | rekonq-72af78494652e97cf2caaf05a4ac1613359400f6.tar.xz |
add an xml parser to the opensearch engine.
Diffstat (limited to 'src/opensearch/suggestionparser.h')
-rw-r--r-- | src/opensearch/suggestionparser.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/opensearch/suggestionparser.h b/src/opensearch/suggestionparser.h new file mode 100644 index 00000000..7de54654 --- /dev/null +++ b/src/opensearch/suggestionparser.h @@ -0,0 +1,95 @@ +/* ============================================================ + * + * This file is a part of the rekonq project + * + * Copyright (C) 2010 by Lionel Chauvin <megabigbug@yahoo.fr> + * Copyright (C) 2010 by Andrea Diamantini <adjam7 at gmail dot com> + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License or (at your option) version 3 or any later version + * accepted by the membership of KDE e.V. (or its successor approved + * by the membership of KDE e.V.), which shall act as a proxy + * defined in Section 14 of version 3 of the license. + * + * 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 General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * ============================================================ */ + +#ifndef SUGGESTIONPARSER_H +#define SUGGESTIONPARSER_H + +// Self Includes + +// Local Includes + + +// Qt Includes +#include <QList> +#include <QtScript/QScriptEngine> +#include <QtCore/QXmlStreamReader> + + +class Response +{ +public: + QString url; + QString title; + QString description; + + Response(const Response &item) : url(item.url), + title(item.title), + description(item.description) + {}; + + Response() : url(QString()), + title(QString()), + description(QString()) + {}; + + Response(const QString &_url, + const QString &_title = QString(), + const QString &description = QString()) : url(_url), + title(_title), + description(description) + {}; +}; + +typedef QList <Response> ResponseList; + + +class SuggestionParser +{ +public: + virtual ~SuggestionParser(); + virtual ResponseList parse(const QByteArray &resp); +}; + + +class XMLParser : public SuggestionParser +{ +protected: + QXmlStreamReader m_reader; + +public: + ResponseList parse(const QByteArray &resp); +}; + +class JSONParser : public SuggestionParser +{ +private: + QScriptEngine m_reader; + +public: + ResponseList parse(const QByteArray &resp); +}; + +#endif //SUGGESTIONPARSER_H
\ No newline at end of file |