/** @file writer.h
 *
 *	Declaration of (output) writing module interface.
 *
 *	Writing module contains few functions which produces program output.
 *
 *	(C) Ceslav Przywara 2008, MFF UK Prague
 *
 */

#ifndef _WRITER_H
#define	_WRITER_H

#include <fstream>

namespace ace {

/** Procedure writes extracted ngrams with their frequency count to given
 *	output file in plain text (tab-separated) format.
 *	@param output_file Reference to opened ofstream object which is binded
 *		to output file.
 */
void write(std::ofstream& output_file);

/** Procedure writes extracted ngrams contexts to given output file.
 *	@param output_file Reference to opened ofstream object which is binded
 *		to output file.
 */
void write_contexts(std::ofstream& output_file);

/** Procedure writes datafiles statistics to given output file.
 *	@param output_file Reference to opened ofstream object which is binded
 *		to output file.
 */
void write_stats(std::ofstream& output_file);

/** Procedure writes morphologic filtration statistics to given output file.
 *	@param output_file Reference to opened ofstream object which is binded
 *		to output file.
 */
void write_morphologic_filter_stats(std::ofstream& output_file);

} // namespace ace

#endif
