#ifndef _ITERATOR_H
#define _ITERATOR_H

using namespace std;

namespace uprm_icom4035{
  template <typename Item>
  class Iterator {
  public:
    typedef Item value_type;
    
    virtual ~Iterator(){}
    
    virtual bool has_data() const = 0;
    virtual void next() = 0;
    virtual void reset() = 0;
    virtual Item& get_data() const =0;

  };
}
#endif
