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
00026 #ifndef _EYEDB_ITERATOR_BE_ENGINE_H
00027 #define _EYEDB_ITERATOR_BE_ENGINE_H
00028
00029 namespace eyedb {
00030
00031 class IteratorBEEngine
00032 {
00033 protected:
00034 Status status;
00035 Database *db;
00036 DbHandle *dbh;
00037 Bool state;
00038
00039 public:
00040 virtual Status scanNext(int, int *, IteratorAtom *) = 0;
00041 Status getStatus() const;
00042 virtual ~IteratorBEEngine() = 0;
00043 };
00044
00045 class IteratorBEEngineAttribute : public IteratorBEEngine {
00046 const Attribute *agr;
00047 int ind;
00048 Size size;
00049 eyedbsm::IdxCursor *curs;
00050
00051 public:
00052 IteratorBEEngineAttribute(Database *,
00053 const Attribute *, int,
00054 Data, Data, Bool, Bool, int);
00055 Status scanNext(int, int *, IteratorAtom *);
00056 ~IteratorBEEngineAttribute();
00057 };
00058
00059 class IteratorBEEngineCollection : public IteratorBEEngine {
00060 eyedbsm::IdxCursor *curs;
00061 eyedbsm::Idx::Key *buff;
00062 Bool index;
00063 CollectionBE *collbe;
00064 unsigned char *data;
00065
00066 public:
00067 IteratorBEEngineCollection(CollectionBE *, Bool index);
00068 Status scanNext(int, int *, IteratorAtom *);
00069 ~IteratorBEEngineCollection();
00070 };
00071 }
00072
00073 #endif
00074
00075