kde-workspace/drkonqi/parser/backtraceparser.h
Ivailo Monev 81838c02f6 drkonqi: remove unused parsers methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-16 06:50:11 +03:00

86 lines
3.3 KiB
C++

/*
Copyright (C) 2009-2010 George Kiagiadakis <kiagiadakis.george@gmail.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) 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 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 BACKTRACEPARSER_H
#define BACKTRACEPARSER_H
#include "backtraceline.h"
#include <QtCore/QObject>
#include <QtCore/QStringList>
#include <QtCore/QMetaType>
#include <QtCore/QSet>
class BacktraceParserPrivate;
class BacktraceParser : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(BacktraceParser)
Q_ENUMS(Usefulness)
public:
enum Usefulness { InvalidUsefulness, Useless, ProbablyUseless, MayBeUseful, ReallyUseful };
static BacktraceParser *newParser(const QString & debuggerName, QObject *parent = 0);
virtual ~BacktraceParser();
/*! Connects the parser to the backtrace generator.
* Any QObject that defines the starting() and newLine(QString) signals will do.
*/
void connectToGenerator(QObject *generator);
/*! Returns the parsed backtrace. Any garbage that should not be shown to the user is removed. */
virtual QString parsedBacktrace() const;
/*! Same as parsedBacktrace(), but the backtrace here is returned as a list of
* BacktraceLine objects, which provide extra information on each line.
*/
virtual QList<BacktraceLine> parsedBacktraceLines() const;
/*! Returns a value that indicates how much useful is the backtrace that we got */
virtual Usefulness backtraceUsefulness() const;
/*! Returns a list of libraries/executables that are missing debug symbols. */
virtual QSet<QString> librariesWithMissingDebugSymbols() const;
private Q_SLOTS:
void resetState();
protected Q_SLOTS:
/*! Called every time there is a new line from the generator. Subclasses should parse
* the line here and insert it in the m_linesList field of BacktraceParserPrivate.
* If the line is useful for rating as well, it should also be inserted in the m_linesToRate
* field, so that calculateRatingData() can use it.
*/
virtual void newLine(const QString & lineStr) = 0;
protected:
explicit BacktraceParser(QObject *parent = 0);
/*! Subclasses should override to provide their own BacktraceParserPrivate instance */
virtual BacktraceParserPrivate *constructPrivate() const;
/*! This method should fill the m_usefulness and m_librariesWithMissingDebugSymbols members of
* the BacktraceParserPrivate instance. The default implementation uses the lines inserted in
* m_linesToRate and applies a generic algorithm that should work for many debuggers.
*/
virtual void calculateRatingData();
BacktraceParserPrivate *d_ptr;
};
Q_DECLARE_METATYPE(BacktraceParser::Usefulness)
#endif // BACKTRACEPARSER_H