- Main Page
- Classes
- Files

- File List

# OptFrame/NSSeq.hpp

    00001 #ifndef OPTFRAME_NSSEQ_HPP_
    00002 #define OPTFRAME_NSSEQ_HPP_
    00003
    00004 #include "NS.hpp"
    00005
    00006 using namespace std;
    00007
    00008 class IteratorOutOfBound
    00009 {
    00010 private:
    00011         int id;
    00012 public:
    00013         IteratorOutOfBound(int _id) :
    00014                 id(_id)
    00015         {
    00016         }
    00017
    00018         int getId()
    00019         {
    00020                 return id;
    00021         }
    00022 };
    00023
    00024 template<class R, class M = OPTFRAME_DEFAULT_MEMORY>
    00025 class NSIterator
    00026 {
    00027 public:
    00028         virtual ~NSIterator()
    00029         {
    00030         }
    00031
    00032         virtual void first() = 0;
    00033         virtual void next() = 0;
    00034         virtual bool isDone() = 0;
    00035         virtual Move<R, M>& current() = 0;
    00036 };
    00037
    00038 template<class R, class M = OPTFRAME_DEFAULT_MEMORY>
    00039 class NSSeq: public NS<R, M>
    00040 {
    00041 public:
    00042
    00043         using NS<R, M>::move; // prevents name hiding
    00044
    00045         virtual ~NSSeq()
    00046         {
    00047         }
    00048
    00049         virtual Move<R, M>& move(const R&) = 0;
    00050
    00051         virtual NSIterator<R, M>& getIterator(const R&) = 0;
    00052         virtual NSIterator<R, M>& getIterator(const M&, const R& r)
    00053         {
    00054                 return getIterator(r);
    00055         }
    00056
    00057         virtual void print() = 0;
    00058 };
    00059
    00060 #endif /*OPTFRAME_NSSEQ_HPP_*/

All Classes Functions