#ifndef _uzel
#define _uzel

#include <string>
#include <vector>
#include <map>

typedef enum { NOT, AND, NAND, OR, NOR, XOR, XNOR, INPUT } gates;
using namespace std;

class Uzel{
    public:
      gates type; //typ uzlu
      string name; //jmeno uzlu
      vector <std::pair <string,Uzel*> > inputs; //vstupy uzlu
      vector <std::pair <string,Uzel*> > outputs; //vystpupy uzlu
      int count_i, count_o, circ, prio; //pocet vstupu, vystupu, cislo podmnoziny uzlu, priorita pro GGGP
      bool forWork; //zamykani uzlu pro GGGP
      bool output; //je zaroven vystupni?
            
    public:
      Uzel(string _name, gates _type);
      void add_input (string _name, Uzel *x=NULL); //pridani vstupu
      void add_output (string _name, Uzel *x=NULL); //pridani vystupu
};    

#endif
