Computer Assited Medical Intervention Tool Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ActionGenerator.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2013 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 #ifndef ACTIONGENERATOR_H
26 #define ACTIONGENERATOR_H
27 
28 #if defined(_WIN32) && !defined(__MINGW32__) // MSVC only
29 #pragma warning( disable : 4290 )
30 #endif // MSVC only
31 
32 // include from STD
33 #include <set>
34 
35 // includes from Qt
36 #include <QMap>
37 #include <QDir>
38 #include <QPair>
39 #include <QString>
40 #include <QFileInfo>
41 #include <QTextStream>
42 
43 #include <Parameters.hxx>
44 
45 #include <Action.hxx>
46 
47 using namespace coreschema;
48 
50 public :
51  static bool generateActionFiles(QString xmlFileName, QString devDirectoryName, QString * elementClassName = NULL);
52 
53 protected:
54  ActionGenerator(QString xmlFilename, QString devDirectoryName);
55 
56  virtual void setXmlFileName(QString xmlFileName) throw (QString);
57  virtual void setDevDirectoryName(QString devDirectoryName) throw (QString);
58 
59 
60  virtual void createElement() throw (QString);
61  virtual void generateActionFiles() throw (QString);
62 
63  virtual void writeHFile() throw (QString);
64  virtual void writeCFile() throw (QString);
65  virtual void writeImplementationFile() throw (QString);
66 
70  std::auto_ptr<Action> theAction;
71 
73  QFileInfo xmlFileName;
74 
77 
80  QString className;
81 
92  QMap<QString, QPair<QString, QString> > parameters;
93 
95  std::set<QString> additionalIncludes;
96 
97 private:
99 // bool hasImplementationFile;
100 };
101 
102 #endif