#ifndef SENSORREADER_H
#define SENSORREADER_H

#include <fstream>

/** entry for one sensor */
struct SensorEntry {

	/** timestamp of occurrence */
	uint64_t ts;

	/** sensor's number */
	int idx;

	/** sensor data */
	std::string data;

};

/** read sensor data from CSV */
class SensorReader {

private:

	std::string file;
	std::ifstream fp;

public:

	SensorReader(const std::string& file) : file(file) {
		rewind();
	}

	bool hasNext() {
		return !fp.bad() && !fp.eof();
	}

	/** read the next sensor entry */
	SensorEntry getNext() {

		char delim;
		SensorEntry entry;

        fp >> entry.ts;
		fp >> delim;
		fp >> entry.idx;
		fp >> delim;
		fp >> entry.data;

		return entry;


	}

	/** start again */
	void rewind() {
		fp.close();
		fp.open(file);
		assert(fp.is_open());
	}


};


#endif // SENSORREADER_H
