//Készítette:       Gregorics Tibor
//Dátum:            2009.01.28.
//Feladat:          Leghosszabb sziget kereséséhez a szigetek sorszámát és hosszát felsoroló típus

#ifndef _ISLANDENOR_
#define _ISLANDENOR_

#include <fstream>

struct Island{
        int  length;
        int  no;
};

// Típusérték:      a szigetek sorszámát és hosszát felsoroló objektum
// Reprezentáció:   ifstream f      - a magassági értékeket tartalmazó fájl,
//                                    ahol az értékeket elválasztó jelek határolják,
//                  int df          - a fájlból utoljára kiolvasott érték
//                  bool end        - nincs már több sziget
//                  Island current  - az utoljára olvasott sziget adatai
// Műveletek:       IslandEnor(const std::string &fname) - a fájl megnyitása
//                  ~IslandEnor()- a fájl zárása
//                  void First(), void Next(), bool End(), int Current()  - felsoroló műveletek
class IslandEnor{
    private:
        std::ifstream f;
        int  df;

        Island current;
        bool end;
    public:
        enum Exceptions { OPENERROR };
        IslandEnor(const std::string &fname);
        ~IslandEnor(){ f.close();}
        void First() { Next();}
        void Next();
        Island Current() const { return current;}
        bool End() const { return end;}
};

#endif
