SpeedCrunch  0.11
/usr/src/RPM/BUILD/speedcrunch-0.11/src/core/pageserver.h
Go to the documentation of this file.
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