IteratorBEEngine.h

00001 /* 
00002    EyeDB Object Database Management System
00003    Copyright (C) 1994-2008 SYSRA
00004    
00005    EyeDB is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009    
00010    EyeDB is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014    
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free Software
00017    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
00018 */
00019 
00020 /*
00021    Author: Eric Viara <viara@sysra.com>
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   

Generated on Mon Dec 22 18:15:56 2008 for eyedb by  doxygen 1.5.3