#ifndef JES_FILELOADER_H #define JES_FILELOADER_H #include #include #include class FileLoader { public: enum { LINE_ENDING_LF, LINE_ENDING_CR, LINE_ENDING_CRLF, LINE_ENDING_COUNT }; FileLoader(); ~FileLoader(); bool load(const char * fname); unsigned int num_lines() { if (m_lines == NULL) { return 0u; } else { return m_lines->size(); } } int get_line_endings() { return m_line_endings; } protected: typedef std::pair LineIndexPair; typedef std::vector LineIndexPairVector; typedef std::shared_ptr LineIndexPairVectorRef; void load_buf(size_t size); uint8_t * m_buf; int m_line_endings; LineIndexPairVectorRef m_lines; }; #endif