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_COLLECTION_ITERATOR_H
00026 #define _EYEDB_COLLECTION_ITERATOR_H
00027
00028 namespace eyedb {
00029
00033 class CollectionIterator : public AbstractIterator {
00034
00035 public:
00036 CollectionIterator(const Collection *, Bool indexed = False);
00037 CollectionIterator(const Collection &, Bool indexed = False);
00038 CollectionIterator(const CollectionPtr &, Bool indexed = False);
00039
00040 Bool next(Oid &);
00041 Bool next(ObjectPtr &, const RecMode * = RecMode::NoRecurs);
00042 Bool next(Object *&, const RecMode * = RecMode::NoRecurs);
00043 Bool next(Value &);
00044
00045 ~CollectionIterator();
00046
00047 private:
00048 std::vector<Object *> objv;
00049 void init(const Collection *, Bool indexed);
00050 const Collection *coll;
00051 Iterator *q;
00052 ValueArray val_arr;
00053 unsigned int cur;
00054 };
00055 }
00056
00057 #endif