* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zinfo.c,v $
- * Revision 1.2 1996-05-14 06:16:41 adam
+ * Revision 1.3 1996-05-22 08:21:59 adam
+ * Added public ZebDatabaseInfo structure.
+ *
+ * Revision 1.2 1996/05/14 06:16:41 adam
* Compact use/set bytes used in search service.
*
* Revision 1.1 1996/05/13 14:23:07 adam
struct zebSUInfoB *next;
};
-struct zebDatabaseInfo {
+struct zebDatabaseInfoB {
struct zebSUInfoB *SUInfo;
char *databaseName;
int sysno;
int readFlag;
int dirty;
- struct zebDatabaseInfo *next;
+ struct zebDatabaseInfo info;
+ struct zebDatabaseInfoB *next;
};
struct zebTargetInfo {
int dictNum;
int dirty;
Records records;
- struct zebDatabaseInfo *databaseInfo;
- struct zebDatabaseInfo *curDatabaseInfo;
+ struct zebDatabaseInfoB *databaseInfo;
+ struct zebDatabaseInfoB *curDatabaseInfo;
};
void zebTargetInfo_close (ZebTargetInfo *zti, int writeFlag)
{
- struct zebDatabaseInfo *zdi, *zdi1;
+ struct zebDatabaseInfoB *zdi, *zdi1;
if (writeFlag)
{
assert (drec);
for (zsui = zdi->SUInfo; zsui; zsui=zsui->next)
no++;
+ memcpy (q, &zdi->info, sizeof(zdi->info));
+ q += sizeof(zdi->info);
memcpy (q, &no, sizeof(no));
q += sizeof(no);
for (zsui = zdi->SUInfo; zsui; zsui=zsui->next)
{
Record rec;
ZebTargetInfo *zti;
- struct zebDatabaseInfo **zdi;
+ struct zebDatabaseInfoB **zdi;
zti = xmalloc (sizeof(*zti));
zti->dirty = 0;
}
static void zebTargetInfo_readDatabase (ZebTargetInfo *zti,
- struct zebDatabaseInfo *zdi)
+ struct zebDatabaseInfoB *zdi)
{
const char *p;
struct zebSUInfoB **zsuip = &zdi->SUInfo;
rec = rec_get (zti->records, zdi->sysno);
assert (rec);
p = rec->info[0];
+ memcpy (&zdi->info, p, sizeof(zdi->info));
+ p += sizeof(zdi->info);
memcpy (&no, p, sizeof(no));
p += sizeof(no);
for (i = 0; i<no; i++)
int zebTargetInfo_curDatabase (ZebTargetInfo *zti, const char *database)
{
- struct zebDatabaseInfo *zdi;
+ struct zebDatabaseInfoB *zdi;
assert (zti);
if (zti->curDatabaseInfo &&
int zebTargetInfo_newDatabase (ZebTargetInfo *zti, const char *database)
{
- struct zebDatabaseInfo *zdi;
+ struct zebDatabaseInfoB *zdi;
assert (zti);
for (zdi = zti->databaseInfo; zdi; zdi=zdi->next)
zsui->info.ordinal = (zti->dictNum)++;
return zsui->info.ordinal;
}
+
+ZebDatabaseInfo *zebTargetInfo_getDB (ZebTargetInfo *zti)
+{
+ assert (zti->curDatabaseInfo);
+
+ return &zti->curDatabaseInfo->info;
+}
+
+void zebTargetInfo_setDB (ZebTargetInfo *zti, ZebDatabaseInfo *zdi)
+{
+ assert (zti->curDatabaseInfo);
+
+ zti->curDatabaseInfo->dirty = 1;
+ memcpy (&zti->curDatabaseInfo->info, zdi, sizeof(*zdi));
+}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zinfo.h,v $
- * Revision 1.1 1996-05-13 14:23:07 adam
+ * Revision 1.2 1996-05-22 08:22:00 adam
+ * Added public ZebDatabaseInfo structure.
+ *
+ * Revision 1.1 1996/05/13 14:23:07 adam
* Work on compaction of set/use bytes in dictionary.
*
*/
#include "recindex.h"
typedef struct zebTargetInfo ZebTargetInfo;
+typedef struct zebDatabaseInfo {
+ int noOfRecords;
+} ZebDatabaseInfo;
ZebTargetInfo *zebTargetInfo_open (Records records, int writeFlag);
void zebTargetInfo_close (ZebTargetInfo *zti, int writeFlag);
int zebTargetInfo_newDatabase (ZebTargetInfo *zti, const char *database);
int zebTargetInfo_lookupSU (ZebTargetInfo *zti, int set, int use);
int zebTargetInfo_addSU (ZebTargetInfo *zti, int set, int use);
+ZebDatabaseInfo *zebTargetInfo_getDB (ZebTargetInfo *zti);
+void zebTargetInfo_setDB (ZebTargetInfo *zti, ZebDatabaseInfo *zdi);