/* * SpaceReader.hh * * Created on: 28/05/2021 * Author: AKKA */ #ifndef SPACEREADER_HH_ #define SPACEREADER_HH_ #include "AbstractReader.hh" #include namespace TimeTableCatalog { /** * Reads a TimeTable from an SPACE formated file. * Something like : * #Time Table generated by AMDA @ CDPP; * #Name: testTable_M_lll; * #Description: ; * #Historic: Union between testTable lll ; * #Creation Date : 2012-09-05T19:15:47; * # * 2001-02-07T18:39:11 2001-02-07T18:59:11 * 2001-02-07T19:49:11 2001-02-07T19:59:11 * 2001-02-08T02:29:11 2001-02-08T03:04:11 */ class SpaceReader: public AbstractReader { public: static const std::string FORMAT; SpaceReader(const std::string& ppath); virtual ~SpaceReader(); /** * Reads a TimeTable from an SPACE formated file. */ void read(TimeTable& ptt); /** * Checks the TT format to know if the reader is the good one. */ bool canRead(const std::string& pPath); /** * Creates an instance of this. */ std::unique_ptr createInstance(const std::string& pPath); ParameterDescription::ParameterType getTypeFromString(std::string type); private: /** * Reads an interval from SPACE formated file and creates a TimeInterval. */ std::unique_ptr readInterval(const std::string& pline, TimeTable& pTT, int pcrtIndex); /** * Reads metadata as name, description etc. from SPACE formated file. */ void readMetadata(const std::string& pline, TimeTable& ptimeTable); /** * Adds a line to TT description. */ void addDescription(const std::string & pline, TimeTable& ptt); int timeSize; }; } /* namespace TimeTableCatalog */ #endif /* SPACEREADER_HH_ */