itom 1.0.14
D:/git-itom/sources/itom/Qitom/organizer/helpSystem.h
00001 /* ********************************************************************
00002     itom software
00003     URL: http://www.uni-stuttgart.de/ito
00004     Copyright (C) 2013, Institut für Technische Optik (ITO),
00005     Universität Stuttgart, Germany
00006 
00007     This file is part of itom.
00008   
00009     itom is free software; you can redistribute it and/or modify it
00010     under the terms of the GNU Library General Public Licence as published by
00011     the Free Software Foundation; either version 2 of the Licence, or (at
00012     your option) any later version.
00013 
00014     itom is distributed in the hope that it will be useful, but
00015     WITHOUT ANY WARRANTY; without even the implied warranty of
00016     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library
00017     General Public Licence for more details.
00018 
00019     You should have received a copy of the GNU Library General Public License
00020     along with itom. If not, see <http://www.gnu.org/licenses/>.
00021 *********************************************************************** */
00022 
00023 #ifndef HELPSYSTEM_H
00024 #define HELPSYSTEM_H
00025 
00026 #include "../../common/sharedStructures.h"
00027 
00028 #include <qdir.h>
00029 #include <qstring.h>
00030 #include <qmap.h>
00031 
00032 namespace ito
00033 {
00034 
00035 class HelpSystem
00036 {
00037 public:
00038     static HelpSystem* getInstance();
00039 
00040     QString getHelpCollectionAbsFileName() const;
00041     inline bool isUpToDate() const { return m_upToDate; };
00042     RetVal rebuildHelpIfNotUpToDate();
00043 
00044 protected:
00045 
00046 private:
00047     HelpSystem(void);
00048     HelpSystem(HelpSystem  &/*copyConstr*/) {}
00049     ~HelpSystem(void);
00050 
00051     RetVal scanDocumentationFiles(QStringList &qchFiles, quint16 &checksum);
00052     RetVal getCheckSumOfBuild(QDir &helpDir, QString &projectFileName, quint16 &checksum);
00053 
00054     RetVal rebuildHelpCollection(QStringList &qchFiles, quint16 checksum, QDir &helpDir);
00055 
00056 
00057     QDir m_helpDirectory;
00058     QMap<QString, quint16> m_registeredFilesQCH;
00059     QString m_helpCollectionName;
00060     QString m_helpCollectionProject;
00061     bool m_upToDate;
00062 
00063 
00064     static HelpSystem *m_pHelpSystem;
00065 
00067     class HelpSystemSingleton
00068     {
00069         public:
00070             ~HelpSystemSingleton()
00071             {
00072                 #pragma omp critical
00073                 {
00074                     if( HelpSystem::m_pHelpSystem != NULL)
00075                     {
00076                         delete HelpSystem::m_pHelpSystem;
00077                         HelpSystem::m_pHelpSystem = NULL;
00078                     }
00079                 }
00080             }
00081     };
00082     friend class HelpSystemSingleton;
00083 
00084 };
00085 
00086 }; //namespace ito
00087 
00088 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends