SpeedCrunch
0.11
|
00001 // This file is part of the SpeedCrunch project 00002 // Copyright (C) 2014 Helder Correia <helder.pereira.correia@gmail.com> 00003 // 00004 // This program is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU General Public License 00006 // as published by the Free Software Foundation; either version 2 00007 // of the License, or (at your option) any later version. 00008 // 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program; see the file COPYING. If not, write to 00016 // the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 // Boston, MA 02110-1301, USA. 00018 00019 #ifndef CORE_PAGESERVER_H 00020 #define CORE_PAGESERVER_H 00021 00022 #include <QHash> 00023 #include <QObject> 00024 #include <QString> 00025 00026 class PageServer : public QObject { 00027 public: 00028 explicit PageServer(QObject* parent = 0) : QObject(parent) { } 00029 QString getPageContent(const QString& id); 00030 QString getCurrentPageContent(); 00031 00032 protected: 00033 typedef QString (*PageMaker)(); 00034 void addPage(const QString& id, PageMaker maker) { m_toc[id] = maker; } 00035 virtual void createPages() = 0; 00036 00037 private: 00038 Q_DISABLE_COPY(PageServer) 00039 QHash<QString, PageMaker> m_toc; 00040 QString m_currentPageID; 00041 }; 00042 00043 #endif // CORE_PAGESERVER_H