00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _EYEDB_ABSTRACT_ITERATOR_H
00026 #define _EYEDB_ABSTRACT_ITERATOR_H
00027
00028 namespace eyedb {
00029
00035 class Oid;
00036 class Object;
00037 class Value;
00038 class ValueArray;
00039 class Iterator;
00040 class OQL;
00041
00045 class AbstractIterator {
00046
00047 public:
00051 AbstractIterator();
00052
00059 virtual Bool next(Oid &oid) = 0;
00060
00068 virtual Bool next(ObjectPtr &obj,
00069 const RecMode *recmode = RecMode::NoRecurs) = 0;
00070
00078 virtual Bool next(Object *&obj,
00079 const RecMode *recmode = RecMode::NoRecurs) = 0;
00080
00087 virtual Bool next(Value &v) = 0;
00088
00092 virtual ~AbstractIterator() = 0;
00093
00094 protected:
00095 Status status;
00096 };
00097
00102 }
00103 #endif