#include <iostream>
#include <string>

#include "Potok.h"
#include "tbb/task_scheduler_init.h"

using namespace std;
using namespace tbb;

int main(int argc, char* argv[])
{
	task_scheduler_init init;
	fstream plik_we("..\\tekst.txt", ios_base::in | ios_base::binary);
	fstream plik_wy("..\\tekst_wynikowy.txt", ios_base::out | ios_base::binary);
	concurrent_vector<int> vect;

	if (plik_we.bad() || plik_wy.bad()) exit(0);
	pipeline potok;

	FiltrPoczatkowy fp(plik_we);
	potok.add_filter(fp);
	FiltrZliczanieDlugosci fzd(vect);
	potok.add_filter(fzd);
	FiltrRot13 fr;
	potok.add_filter(fr);
	FiltrKoncowy fk(plik_wy);
	potok.add_filter(fk);

	potok.run(FiltrPoczatkowy::iloscFragmentow);
	potok.clear();

	plik_we.close();

	int n = 1;
	for (concurrent_vector<int>::const_iterator i = vect.begin() + 1; i != vect.end(); ++i)
		cout << "w tekscie jest " << *i << " slow o dlugosci " << n++ << endl;
	cin.get();
	return 0;
}

