kpilot Library API Documentation

pilotDatabase.h

00001 #ifndef _KPILOT_PILOTDATABASE_H
00002 #define _KPILOT_PILOTDATABASE_H
00003 /* pilotDatabase.h                      KPilot
00004 **
00005 ** Copyright (C) 1998-2001 by Dan Pilone
00006 **
00007 ** This is the abstract base class for databases, which is used both
00008 ** by local databases and by the serial databases held in the Pilot.
00009 */
00010 
00011 /*
00012 ** This program is free software; you can redistribute it and/or modify
00013 ** it under the terms of the GNU Lesser General Public License as published by
00014 ** the Free Software Foundation; either version 2.1 of the License, or
00015 ** (at your option) any later version.
00016 **
00017 ** This program is distributed in the hope that it will be useful,
00018 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00020 ** GNU Lesser General Public License for more details.
00021 **
00022 ** You should have received a copy of the GNU Lesser General Public License
00023 ** along with this program in a file called COPYING; if not, write to
00024 ** the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
00025 ** MA 02111-1307, USA.
00026 */
00027 
00028 /*
00029 ** Bug reports and questions can be sent to kde-pim@kde.org
00030 */
00031 
00032 #ifdef HAVE_CONFIG_H
00033 #include "config.h"
00034 #endif
00035 
00036 #include <qobject.h>
00037 #include <qvaluelist.h>
00038 
00039 // Handle all time.h variations properly.
00040 // Required because pi-macros.h sometimes forgets it.
00041 //
00042 #ifdef TIME_WITH_SYS_TIME
00043 # include <sys/time.h>
00044 # include <time.h>
00045 #else
00046 # ifdef HAVE_SYS_TIME_H
00047 #  include <sys/time.h>
00048 # else
00049 #  include <time.h>
00050 # endif
00051 #endif
00052 
00053 #include <pi-macros.h>
00054 
00055 #include "pilotRecord.h"
00056 
00057 
00058 
00067 class PilotDatabase : public QObject
00068 {
00069 Q_OBJECT
00070 public:
00071         PilotDatabase(QObject *,const char *);
00072         virtual ~PilotDatabase();
00073 
00074         enum { MAX_APPINFO_SIZE=8192 
00075                 } Constants;
00076 
00082         virtual bool createDatabase(long creator=0, long type=0, 
00083                 int cardno=0, int flags=0, int version=0) = 0;
00084         
00090         virtual int deleteDatabase()=0;
00091         
00093         virtual int readAppBlock(unsigned char* buffer, int maxLen) = 0;
00094 
00096         virtual int writeAppBlock(unsigned char* buffer, int len) = 0;
00097 
00099         virtual int recordCount()=0;
00100         
00102          virtual QValueList<recordid_t> idList()=0;
00103 
00105         virtual PilotRecord* readRecordById(recordid_t id) = 0;
00106 
00108         virtual PilotRecord* readRecordByIndex(int index) = 0;
00109 
00111         virtual PilotRecord* readNextRecInCategory(int category) = 0;
00112 
00119         virtual PilotRecord* readNextModifiedRec(int *ind=NULL) = 0;
00120 
00125         virtual recordid_t writeRecord(PilotRecord* newRecord) = 0;
00126 
00134         virtual int deleteRecord(recordid_t id, bool all=false) = 0;
00135         
00137         virtual int resetSyncFlags() = 0;
00138 
00140         virtual int resetDBIndex() = 0;
00141 
00143         virtual int cleanup() = 0;
00144 
00145         bool isDBOpen() const { return fDBOpen; }
00146 
00151         virtual QString dbPathName() const = 0;
00152 
00157         static void listAppInfo(const struct CategoryAppInfo *);
00158         
00159 protected:
00160         virtual void openDatabase() = 0;
00161         virtual void closeDatabase() = 0;
00162 
00163         void setDBOpen(bool yesno) { fDBOpen = yesno; }
00164 
00165 private:
00166         bool fDBOpen;
00167 };
00168 
00169 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 15 11:40:44 2004 by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2001