extrator.h 1.24 KB
/**
 * \file extrator.h
 *
 * \author Wesnydy Lima Ribeiro <wesnydy@lavid.ufpb.br>
 * \date 2015
 */

#ifndef EXTRATOR_H
#define EXTRATOR_H

#include "logging.h"
#include <lavidlib/io/File.h>
#include <lavidlib/io/FileIO.h>
#include <lavidlib/io/BufferedReader.h>
#include <lavidlib/io/IOException.h>
#include <lavidlib/io/EOFException.h>

using namespace util;
using namespace lavidlib;

/** \brief A classe base para todos os extratores.
 *
 *  \headerfile extrator/src/include/extrator.h
 */
class Extrator {

protected:
	char* filePath;
	bool finish;

	File* file;
	FileIO* file_io;
	BufferedReader* bff_reader;

public:
	enum ExtratorType {SRT, TXT, VTT};

	/** Notifica o fim da extração do conteúdo do arquivo.
	 *
	 * \param size Quantidade de conteúdo extraído.
	 */
	virtual void notifyEndExtraction(int size) = 0;

	/** Define o path do arquivo de entrada.
	 *
	 * \param path O path do arquivo.
	 */
	virtual void setFilePath(char* path) = 0;

	/** Recodifica o arquivo para utf-8 */
	virtual void encodingfiletoUTF8() = 0;

	/** Inicializa a extração do conteúdo. */
	virtual void initialize() = 0;

	/** Indica o fim do processo de extração.
	*
	* \return O status do do processo.
	*/
	virtual bool isFinished() = 0;
};

#endif	/* EXTRATOR_H */