00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020 #ifndef RECORDSETITERATOR_H
00021 #define RECORDSETITERATOR_H
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include <config.h>
00025 #endif
00026 #include "object.h"
00027 #include "record.h"
00028
00029 namespace KDB {
00030
00031 class Recordset;
00032 class Handler;
00033
00044 class RecordsetIterator: public Object {
00045
00046 Q_OBJECT
00047
00048 public:
00049 RecordsetIterator();
00050 RecordsetIterator( Recordset *rec, Handler *handler);
00051 RecordsetIterator( const RecordsetIterator &iter);
00052
00053 ~RecordsetIterator();
00054
00055 RecordsetIterator& operator =(const RecordsetIterator &iter);
00056 RecordPtr operator ->() const;
00057 RecordPtr current() const;
00058 RecordPtr operator*() const;
00059
00060 RecordPtr operator ++(int);
00061 RecordPtr operator ++();
00062
00063 void moveFirst();
00064 void moveLast();
00065 void moveTo(unsigned long long pos);
00066
00067 protected slots:
00068 void recordsetChanged();
00069
00070 private:
00071
00072 Handler *m_handler;
00073 Recordset *m_rset;
00074 unsigned long long m_pos;
00075
00076 };
00077
00078 }
00079 #endif
00080