Blame include/ISetIter.h

Packit 8a864e
// Copyright (c) 1994 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef ISetIter_INCLUDED
Packit 8a864e
#define ISetIter_INCLUDED
Packit 8a864e
Packit 8a864e
#include <stddef.h>
Packit 8a864e
#include "ISet.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
template<class T>
Packit 8a864e
class ISetIter {
Packit 8a864e
public:
Packit 8a864e
  ISetIter(const ISet<T> &s) : p_(&s), i_(0) { }
Packit 8a864e
  // min and max are not changed if 0 is returned.
Packit 8a864e
  int next(T &min, T &max)
Packit 8a864e
  {
Packit 8a864e
    if (i_ < p_->r_.size()) {
Packit 8a864e
      min = p_->r_[i_].min;
Packit 8a864e
      max = p_->r_[i_].max;
Packit 8a864e
      i_++;
Packit 8a864e
      return 1;
Packit 8a864e
    }
Packit 8a864e
    else
Packit 8a864e
      return 0;
Packit 8a864e
  }
Packit 8a864e
       
Packit 8a864e
private:
Packit 8a864e
  const ISet<T> *p_;
Packit 8a864e
  size_t i_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#endif /* ISetIter_INCLUDED */