itom 1.0.14
|
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