Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

suifkernel/iter.h

This is the verbatim text of the iter.h include file.
#ifndef SUIFKERNEL__ITER_H
#define SUIFKERNEL__ITER_H

#include "iokernel/meta_class.h"
#include "iokernel/cast.h"
#include "suifkernel/suifkernel_messages.h"



class IterHelper {
  void clone_iter();
public:
  
  ObjectWrapper current_object() const;

  const MetaClass* current_meta_class() const;

  const LString& current_name() const;

  
  bool is_valid() const;

  
  void next();

  
  void previous();

   
  void set_to( size_t index );

  
  size_t length() const;

  void *current() const;

  IterHelper( Iterator* iter );
  ~IterHelper();

  IterHelper(const IterHelper &x);

  IterHelper & operator =(const IterHelper &x);

private:
  Iterator* _iter;
  bool _owned;
};



template<class T>
class Iter : public IterHelper {
  // the current type
  public:

  virtual T& current() const {
    suif_assert( is_valid() );
    void *v = IterHelper::current();
    T& val = *(T*)v;
    return val;
  }

  Iter( Iterator* iter ) : IterHelper( iter ) {}
  Iter( const Iter &other ) : IterHelper( other ) {}
  virtual ~Iter(void) {};

};

#endif

Generated at Wed Apr 25 17:34:58 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999