kcachegrind
loader.h
Go to the documentation of this file.00001 /* This file is part of KCachegrind. 00002 Copyright (C) 2002 - 2007 Josef Weidendorfer <Josef.Weidendorfer@gmx.de> 00003 00004 KCachegrind is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU General Public 00006 License as published by the Free Software Foundation, version 2. 00007 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with this program; see the file COPYING. If not, write to 00015 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00016 Boston, MA 02110-1301, USA. 00017 */ 00018 00019 /* 00020 * Base class for loaders of profiling data. 00021 */ 00022 00023 #ifndef LOADER_H 00024 #define LOADER_H 00025 00026 #include <QObject> 00027 #include <QList> 00028 #include <QString> 00029 00030 class QFile; 00031 class TracePart; 00032 class Loader; 00033 00034 00053 class Loader: public QObject 00054 { 00055 Q_OBJECT 00056 00057 public: 00058 Loader(const QString& name, const QString& desc); 00059 virtual ~Loader(); 00060 00061 // reimplement for a specific Loader 00062 virtual bool canLoadTrace(QFile* file); 00063 virtual bool loadTrace(TracePart*); 00064 00065 static Loader* matchingLoader(QFile* file); 00066 static Loader* loader(const QString& name); 00067 static void initLoaders(); 00068 static void deleteLoaders(); 00069 00070 QString name() const { return _name; } 00071 QString description() const { return _description; } 00072 00073 signals: 00074 void updateStatus(const QString& statusmsg, int progress); 00075 void loadError(const QString& filename, int line, const QString& msg); 00076 void loadWarning(const QString& filename, int line, const QString& msg); 00077 00078 private: 00079 QString _name, _description; 00080 00081 static QList<Loader*> _loaderList; 00082 }; 00083 00084 00085 00086 #endif
KDE 4.2 API Reference