Line data Source code
1 : // Copyright (C) 2015 Technische Universitaet Muenchen
2 : // This file is part of the Mamico project. For conditions of distribution
3 : // and use, please see the copyright notice in Mamico's main folder, or at
4 : // www5.in.tum.de/mamico
5 : #ifndef _TARCH_CONFIGURATION_CONFIGURATION_H_
6 : #define _TARCH_CONFIGURATION_CONFIGURATION_H_
7 :
8 : #include "tarch/tinyxml2/tinyxml2.h"
9 : #include <string>
10 :
11 : namespace tarch {
12 : /** namespace tarch */
13 : namespace configuration {
14 : /** namespace configuration */
15 : class Configuration;
16 : } // namespace configuration
17 : } // namespace tarch
18 :
19 : /** interface for configuration using tinyxml2.
20 : * @author Philipp Neumann
21 : */
22 1648 : class tarch::configuration::Configuration {
23 : public:
24 : /**
25 : * Destructor
26 : */
27 820 : virtual ~Configuration() {}
28 :
29 : /** Parses a XML-element.
30 : * @param node a pointer to the xml-element from tinyxml2 class
31 : */
32 : virtual void parseSubtag(tinyxml2::XMLElement* node) = 0;
33 :
34 : /**
35 : * @return the name of the current xml-element
36 : */
37 : virtual std::string getTag() const = 0;
38 :
39 : /**
40 : * @returns true if the configuration is valid; false otherwise.
41 : * This method is basically for debugging purposes and detection of invalid
42 : * input.
43 : */
44 : virtual bool isValid() const = 0;
45 : };
46 :
47 : #endif
|