#ifndef exportH
#define exportH

#include "misc.h"
#include "pla_elem.h"

using namespace std;

// trida realizujici export logicke site do vystupniho souboru ve formatu pla
// --------------------------------------------------------------------------
class Export {
    // privatni data
    ofstream PLA_file;  // vystupni stream pro zapis vysledku
    ofstream PLA_file_min; // vystupni stream pro zapis vysledku s minimalnizaci
    // privatni metody
//     int PLA_print(list<PLA_elem>);
//     void PLA_print_recursive(DdManager *, list<Bdd_elem>, DdNode *, int *);

public:
    Export(MStr);
    ~Export();
    void PLA_print_header(ofstream &, list<Bdd_elem>&, int, int);
    void PLA_print_footer(ofstream &);
    bool export_to_pla(ofstream &, list<PLA_elem *>&, int, int);// hlavni, verejne pristupna metoda
    bool export_to_pla(ofstream &, char *, char *, int, int);//pro vypis do souboru po pupikove minimalizaci
    void print_output(int, int);
    ofstream & get_file_min(){ return PLA_file_min; };
    ofstream & get_file(){ return PLA_file; };
};

#endif
