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 1360 : class tarch::configuration::Configuration { 23 : public: 24 : /** 25 : * Destructor 26 : */ 27 676 : 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