/** * \file extratorTXT.h * * \author Erickson Silva * \date 2014 */ #ifndef EXTRATORTXT_H #define EXTRATORTXT_H #include #include "jthread.h" #include "extrator.h" #include "listenerTXT.h" #include "extratorException.h" #include using namespace jthread; using namespace std; /** \brief Classe que implementa o extrator de texto. * * Instâncias desta classe extraem o conteúdo de * arquivos txt. * * \headerfile extrator/src/include/extratorTXT.h */ class ExtratorTXT: public Extrator, public Thread { public: /** Construtor */ ExtratorTXT(); /** Destrutor */ ~ExtratorTXT(); /** Adiciona ouvintes do extratorTXT. * * \param listener O ouvinte a ser registrado. */ void addListener(ListenerTXT* listener); /** Notifica os ouvintes sobre novas extrações realizadas. * * \param line A linha extraída. */ void notifyListeners(unsigned char* line); /** Notifica o fim da extração do texto. * * \param size Quantidade de linhas extraídas. */ void notifyEndExtraction(int size); /** Define o path do arquivo de entrada. * * \param path O path do arquivo. */ void setFilePath(char* path); /** Inicializa o processo de extração do texto. * * \exception ExtratorException caso o arquivo de texto não seja encontrado. */ void initialize(); /** Indica o fim do processo de extração do texto. * * \return O status do do processo. */ bool isFinished(); /** Este método é chamado quando a Thread for iniciada. */ void Run(); private: void encodingfiletoUTF8(); list *listeners; ifstream ifs_; }; #endif /* EXTRATORTXT_H */