4
#include <db4/db_cxx.h>
8
#include <qstringlist.h>
26
QString original; //placeholder
29
//Multi reference info
30
QValueList<CatalogInfo> catalogs;
39
unsigned int ref() {return 1;}
43
class DBItem : public Dbt
49
virtual bool isEmpty(){return empty;}
50
//void fromDbt(Dbt *dbt);
57
virtual void read(QDataStream *s) = 0;
58
virtual void write(QDataStream *s) = 0;
64
class DBItemMainKey : public DBItem
68
DBItemMainKey(QString searchstring);
71
QString getString(){ return sstr;}
75
virtual void read(QDataStream *s);
76
virtual void write(QDataStream *s);
83
class DBItemMainData : public DBItem
87
typedef QMapIterator<QString,QValueList<unsigned int> > TranslationIterator;
88
typedef QMap<QString,QValueList<unsigned int> > TranslationMap;
92
QStringList getTranslations();
93
QValueList<unsigned int> getReferences(QString str);
98
//Add a translation with reference ref, if translation exists append
99
// ref to the list of references
100
void addTranslation(QString str,unsigned int ref);
101
void removeTranslation(QString str,unsigned int ref);
103
//remove any reference to ref, if ref is the only reference of a translation
104
// the translation is removed
105
void removeRef(unsigned int ref);
107
unsigned int getIndexnumber(){ return indexnumber; }
108
void setIndexnumber(int i){ indexnumber=i; }
112
virtual void read(QDataStream *s);
113
virtual void write(QDataStream *s);
115
unsigned int indexnumber;
116
TranslationMap translations;
121
class DBItemMultiIndex : public DBItem
124
typedef QValueList<unsigned int> IndexList;
127
// DBItemMultiIndex(IndexList l);
129
void addEntry(unsigned int index);
130
void removeEntry(unsigned int index);
132
IndexList getList(){ return list;}
133
void clear() {list.clear();}
137
virtual void read(QDataStream *s);
138
virtual void write(QDataStream *s);
145
class DBItemNum : public Dbt
153
DBItemNum(unsigned int i){
159
unsigned int getNum(){ num=*(unsigned int *)get_data(); return num;}