Blame view

src/TimeTableCatalog/AsciiReader.hh 1.75 KB
fbe3c2bb   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
 * AsciiReader.hh
 *
 *  Created on: 5 août 2013
 *      Author: CS
 */

#ifndef ASCIIREADER_HH_
#define ASCIIREADER_HH_

#include "AbstractReader.hh"
#include <memory>

namespace TimeTableCatalog {

/**
 * Reads a TimeTable from an ASCII 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 AsciiReader: public AbstractReader {
public:

	static const std::string FORMAT;

	AsciiReader(const std::string& ppath);
	virtual ~AsciiReader();

	/**
	 * Reads a TimeTable from an ASCII 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<AbstractReader> createInstance(const std::string& pPath);

68c29629   Benjamin Renard   Fix in TT/Catalog...
53
54
	ParameterDescription::ParameterType getTypeFromString(std::string type);

fbe3c2bb   Benjamin Renard   First commit
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
private:

	/**
	 * Reads an interval from ASCII formated file and creates a TimeInterval.
	 */
	std::unique_ptr<TimeInterval> readInterval(const std::string& pline,
			TimeTable& pTT, int pcrtIndex);
	/**
	 * Reads metadata as name, description etc. from ASCII formated file.
	 */
	void readMetadata(const std::string& pline, TimeTable& ptimeTable);

	/**
	 * Adds a line to TT description.
	 */
	void addDescription(const std::string & pline, TimeTable& ptt);

	/**
	 * Adds a parameter description to a time table.
	 */
	void addParameter(const std::string & pline, TimeTable& ptt);
};

} /* namespace TimeTableCatalog */
#endif /* ASCIIREADER_HH_ */