/*************************************************************************** * Copyright (C) 2003 by Sylvain Joyeux * * sylvain.joyeux@m4x.org * * * * 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) any later version. * ***************************************************************************/ #ifndef PARSERS_H #define PARSERS_H #include namespace KIO { class SlaveBase; } class QHtmlStream; class AptProtocol; /** Here are defined the functional objects that takes the tokens * sent by AptCache and PackageManager objects, and produces HTML */ namespace Parsers { class Parser { protected: int m_result_count; static void attribute_begin(QHtmlStream& stream, const QString& text); static void attribute_end(QHtmlStream& stream); public: Parser(); virtual ~Parser(); int result_count() const { return m_result_count; } virtual void operator () (AptProtocol* slave, const QString& tag, const QString& value) = 0; }; class Search : public Parser { public: void operator () (AptProtocol* slave, const QString& tag, const QString& value); }; class List : public Parser { bool m_links; public: List(bool show_links); void operator () (AptProtocol* slave, const QString& tag, const QString& value); }; class FileSearch : public Parser { public: void operator () (AptProtocol* slave, const QString& tag, const QString& value); }; class Show : public Parser { QString m_package, m_installed; bool m_act; public: Show(const QString& package, const QString& installed, bool act); void operator () (AptProtocol* slave, const QString& tag, const QString& value); }; class Policy : public Parser { QString m_package, m_installed; bool m_has_adept_batch; bool m_act; public: Policy(const QString& package, bool act); QString getInstalled() const { return m_installed; } void operator () (AptProtocol* slave, const QString& tag, const QString& value); }; void operator << (KIO::SlaveBase& slave, const QCString& string); void operator << (KIO::SlaveBase& slave, const QString& string); void operator << (KIO::SlaveBase& slave, const char* string); QString mangle_version(QString version); } #endif