#ifndef __YAMLGEOMORPHFACTORYCONFIGREADER_H__ #define __YAMLGEOMORPHFACTORYCONFIGREADER_H__ #include #include #include #include #include #include namespace genesis { class DL_EXPORT YAMLGeoMorphConfigReader : public geoworld::IFactoryConfigReader { protected: typedef std::vector< geoworld::IConfigFactoryBase * > FactoryVector; typedef std::vector< YAML::Node > NodeVector; private: FactoryVector * _pList; NodeVector _docs; NodeVector::const_iterator _i; class InvalidPhaseName : public std::exception {}; geoworld::GeoTemplatePhase getPhaseFor (const std::string & sPhase); geoworld::IConfigGMFactory * readGMFactory (const std::string & sName, const std::string & sAlias, const YAML::Node * pndConfigSection); geoworld::IConfigGTFactory * readGTFactory(const std::string & sName, const std::string & sAlias, const YAML::Node * pndConfigSection); public: YAMLGeoMorphConfigReader(std::istream & input); ~YAMLGeoMorphConfigReader(); virtual geoworld::IConfigFactoryBase * readNext(); }; } #endif