textio.h 685 Bytes
Newer Older
limingbo's avatar
limingbo committed
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
#ifndef TEXTIO_H
#define TEXTIO_H
#include "utils/basic_functions.h"
#include <boost/function.hpp>

class TextIO
{
public:
    TextIO(const string &path, const string &range = string());

    bool load();

    void setParseCallback(
            boost::function<void(const vector<string>&, uint8_t)> cb);

    string getPath();
private:
    void multiThreadParseText(const vector<string> &lines);

    void parseTextForPeriod(
            const vector<string> *lines,
            pair<uint32_t, uint32_t> duration,
            uint8_t trdIndex);
private:
    string path_;

    string range_;

    boost::function<void(const vector<string>&, uint8_t)> parse_cb_;
};

#endif // TEXTIO_H