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_ITERATOR_BE_H
00026 #define _EYEDB_ITERATOR_BE_H
00027
00028 namespace eyedb {
00029
00030 class IteratorBEEngine;
00031 class CollectionBE;
00032 class SchemaInfo;
00033
00034 class IteratorBE {
00035 Status status;
00036 int qid;
00037 IteratorBEEngine *qiter;
00038 CollectionBE *collbe;
00039 Bool sch_changed;
00040 SchemaInfo *schinfo;
00041
00042 public:
00043 IteratorBE(Database *);
00044 IteratorBE(CollectionBE *, Bool index);
00045
00046 IteratorBE(Database *, const Attribute *, int,
00047 Data, Data, Bool, Bool, int);
00048
00049 Status getStatus() const;
00050 Status scanNext(int, int *found, IteratorAtom *);
00051 int getQid() const;
00052 Bool getSchemaChanged() const {return sch_changed;}
00053
00054 SchemaInfo *getSchemaInfo();
00055
00056 static LinkedList *getMclList() {
00057 return def_cl_list;
00058 }
00059
00060 static void setMclList(LinkedList *cl_list) {
00061 def_cl_list = cl_list;
00062 }
00063
00064 ~IteratorBE();
00065
00066 private:
00067 static LinkedList *def_cl_list;
00068 };
00069 }
00070
00071 #endif