VAT  3.0
Video Analysis Tool
ModuleInterface.h
1 #ifndef MODULEINTERFACE_H
2 #define MODULEINTERFACE_H
3 
4 #include <map>
5 #include <string>
6 #include <QImage>
7 #include "Datapool.h"
8 #include <QDir>
9 #include "string.h"
10 #include "xmlcommon.h"
11 #include "custom_utils/XmlParameterExtractor.h"
12 
13 enum ModuleType {
14  ACQUISITION,
15  INITIALIZATION,
16  SEGMENTATION,
17  TRACKING,
18  ANALYSIS,
19  OTHER
20 };
21 
22 
23 typedef std::map<std::string, std::map<std::string, std::string> >* TParameterList;
24 
25 struct parameter{
26  QString name;
27  QString type;
28  QString value;
29  std::multimap<QString, parameter> subParam;
30 };
31 typedef struct parameter parameter;
32 
33 struct Parameter2{
34  QString name;
35  QString value;
36  QString defaultValue;
37  ParameterDataType type;
38  std::multimap<QString, Parameter2> subParam;
39 };
40 typedef struct Parameter2 Parameter2;
41 
42 
44 public:
45  ModuleInterface(Datapool *i_data);
46  virtual ~ModuleInterface() = 0;
47 
48  //Set module configuration parameters
49  virtual bool setParameters(QDomNode &config) = 0;
50 
51  //Initialization after reading parameters
52  virtual bool init() = 0;
53 
54  //Function executed at each frame
55  virtual bool run() = 0;
56 
57  //update parameters at runtime.
58  virtual bool updateParameters() = 0;
59 
60 
61 
62  //Mapa con el nombre del parametro y el valor.
63  // std::map<QString, QString> parameters;
64  // //Mapa con el nombre del parametro y el tipo.
65  // std::map<QString, QString> typeParameters;
66  std::deque<QString> nameParameters;
67  std::deque<QString> valueParameters;
68  std::deque<QString> typeParameters;
69 
70  std::deque<parameter> listParameters;
71  std::deque<Parameter2> parametersTree;
72 
73  std::string name;
74  ModuleType type;
75 
76  void addParameter(QString name, QString value, QString type);
77  void addParameterChild(QString name, QString value, QString type, parameter *parent);
78  parameter* getParameter(QString name);
79  parameter* getParameter(QString name, parameter *parent);
80  parameter* getParameter(QString name, std::multimap<QString, parameter> subList);
81 
82  Parameter2* getParameterFromTree(const QString name);
83  Parameter2* getParameterFromTree(const QString name, Parameter2 *parent);
84  Parameter2* getParameterFromTree(const QString name, std::multimap<QString, Parameter2> subList);
85 
86  void addParameterToTree(const QString name, const QString value, const QString defaultValue, const ParameterDataType &type);
87  void addChildParameterToTree(const QString &name, const QString &value, const QString &defaultValue, const ParameterDataType &type, Parameter2 *parent);
88 
89  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const bool &defaulValue, bool &outParameter, QDomNode &parameterNode, bool appendWarning = false);
90  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const char &defaulValue, char &outParameter, QDomNode &parameterNode, bool appendWarning = false);
91  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const uchar &defaulValue, uchar &outParameter, QDomNode &parameterNode, bool appendWarning = false);
92  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const int &defaulValue, int &outParameter, QDomNode &parameterNode, bool appendWarning = false);
93  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const uint &defaulValue, uint &outParameter, QDomNode &parameterNode, bool appendWarning = false);
94  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const long &defaulValue, long &outParameter, QDomNode &parameterNode, bool appendWarning = false);
95  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const ulong &defaulValue, ulong &outParameter, QDomNode &parameterNode, bool appendWarning = false);
96  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const float &defaulValue, float &outParameter, QDomNode &parameterNode, bool appendWarning = false);
97  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const double &defaulValue, double &outParameter, QDomNode &parameterNode, bool appendWarning = false);
98  bool getParameterValueFromXml(const QDomNode &rootNode, const QString &parameterName, const QString &defaulValue, QString &outParameter, QDomNode &parameterNode, bool appendWarning = false);
99 
100  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const bool defaulValue, bool &outParameter, QDomNode &parameterNode, bool appendWarning = false);
101  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const int defaulValue, int &outParameter, QDomNode &parameterNode, bool appendWarning = false);
102  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const char defaulValue, char &outParameter, QDomNode &parameterNode, bool appendWarning = false);
103  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const uchar defaulValue, uchar &outParameter, QDomNode &parameterNode, bool appendWarning = false);
104  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const uint defaulValue, uint &outParameter, QDomNode &parameterNode, bool appendWarning = false);
105  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const long defaulValue, long &outParameter, QDomNode &parameterNode, bool appendWarning = false);
106  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const ulong defaulValue, ulong &outParameter, QDomNode &parameterNode, bool appendWarning = false);
107  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const float defaulValue, float &outParameter, QDomNode &parameterNode, bool appendWarning = false);
108  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const double defaulValue, double &outParameter, QDomNode &parameterNode, bool appendWarning = false);
109  bool setNodeParameterModule(const QDomNode &rootNode, const QString &parameterName, const QString defaulValue, QString &outParameter, QDomNode &parameterNode, bool appendWarning = false);
110 
111  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const bool defaulValue, bool &outParameter, QDomNode &parameterNode, bool appendWarning = false);
112  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const int defaulValue, int &outParameter, QDomNode &parameterNode, bool appendWarning = false);
113  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const char defaulValue, char &outParameter, QDomNode &parameterNode, bool appendWarning = false);
114  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const uchar defaulValue, uchar &outParameter, QDomNode &parameterNode, bool appendWarning = false);
115  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const uint defaulValue, uint &outParameter, QDomNode &parameterNode, bool appendWarning = false);
116  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const long defaulValue, long &outParameter, QDomNode &parameterNode, bool appendWarning = false);
117  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const ulong defaulValue, ulong &outParameter, QDomNode &parameterNode, bool appendWarning = false);
118  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const float defaulValue, float &outParameter, QDomNode &parameterNode, bool appendWarning = false);
119  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const double defaulValue, double &outParameter, QDomNode &parameterNode, bool appendWarning = false);
120  bool setChildParameterModule(const QDomNode &rootNode, const QString &parameterName, const QString defaulValue, QString &outParameter, QDomNode &parameterNode, bool appendWarning = false);
121 
122 protected:
123  //Reference to external datapool:
124  Datapool *m_data;
125 
126 
127 };
128 
129 
130 #endif // INTERFACEMODULE_H
Definition: ModuleInterface.h:43
Definition: ModuleInterface.h:33
An object of this class is instantiated at main code, and this object is used by every class to push ...
Definition: Datapool.h:39
Definition: ModuleInterface.h:25