From b7ed8922d365e24874e561b7347c2c2ad682d6d8 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 6 Sep 1995 10:35:44 +0000 Subject: [PATCH] Null set implemented. --- include/rsnull.h | 19 ++++++++++++ rset/Makefile | 4 +-- rset/rsisam.c | 11 ++++--- rset/rsnull.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 include/rsnull.h create mode 100644 rset/rsnull.c diff --git a/include/rsnull.h b/include/rsnull.h new file mode 100644 index 0000000..ff0a322 --- /dev/null +++ b/include/rsnull.h @@ -0,0 +1,19 @@ +/* + * Copyright (C) 1994-1995, Index Data I/S + * All rights reserved. + * Sebastian Hammer, Adam Dickmeiss + * + * $Log: rsnull.h,v $ + * Revision 1.1 1995-09-06 10:36:16 adam + * Null set implemented. + * + */ + +#ifndef RSET_NULL_H +#define RSET_NULL_H + +#include + +extern const rset_control *rset_kind_null; + +#endif diff --git a/rset/Makefile b/rset/Makefile index a87980c..362b5d0 100644 --- a/rset/Makefile +++ b/rset/Makefile @@ -1,7 +1,7 @@ # Copyright (C) 1994, Index Data I/S # All rights reserved. # Sebastian Hammer, Adam Dickmeiss -# $Id: Makefile,v 1.4 1995-09-04 12:33:55 adam Exp $ +# $Id: Makefile,v 1.5 1995-09-06 10:35:44 adam Exp $ SHELL=/bin/sh RANLIB=ranlib @@ -11,7 +11,7 @@ INCLUDE=-I../include -I$(YAZ)/include DEFS=$(INCLUDE) LIB=../lib/rset.a PROG= -PO=rset.o rstemp.o rsisam.o +PO=rset.o rstemp.o rsisam.o rsnull.o CPP=cc -E all: $(LIB) diff --git a/rset/rsisam.c b/rset/rsisam.c index d6788bf..c194bf7 100644 --- a/rset/rsisam.c +++ b/rset/rsisam.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: rsisam.c,v $ - * Revision 1.6 1995-09-05 11:43:24 adam + * Revision 1.7 1995-09-06 10:35:44 adam + * Null set implemented. + * + * Revision 1.6 1995/09/05 11:43:24 adam * Complete version of temporary sets. Not tested yet though. * * Revision 1.5 1995/09/04 12:33:56 adam @@ -55,7 +58,7 @@ static rset_control *r_create(const struct rset_control *sel, void *parms) rset_control *newct; rset_isam_parms *pt = parms; - logf (LOG_DEBUG, "risam_create(%s)", sel->desc); + logf (LOG_DEBUG, "rsisam_create(%s)", sel->desc); newct = xmalloc(sizeof(*newct)); memcpy(newct, sel, sizeof(*sel)); if (!(newct->buf = (char*) is_position(pt->is, pt->pos))) @@ -82,14 +85,14 @@ static void r_close(rset_control *ct) static void r_delete(rset_control *ct) { - logf (LOG_DEBUG, "risam_delete"); + logf (LOG_DEBUG, "rsisam_delete"); is_pt_free((ISPT) ct->buf); xfree(ct); } static void r_rewind(rset_control *ct) { - logf (LOG_DEBUG, "risam_rewind"); + logf (LOG_DEBUG, "rsisam_rewind"); is_rewind((ISPT) ct->buf); } diff --git a/rset/rsnull.c b/rset/rsnull.c new file mode 100644 index 0000000..8c597b7 --- /dev/null +++ b/rset/rsnull.c @@ -0,0 +1,90 @@ +/* + * Copyright (C) 1994-1995, Index Data I/S + * All rights reserved. + * Sebastian Hammer, Adam Dickmeiss + * + * $Log: rsnull.c,v $ + * Revision 1.1 1995-09-06 10:35:44 adam + * Null set implemented. + * + */ + +#include +#include +#include + +static rset_control *r_create(const struct rset_control *sel, void *parms); +static int r_open (rset_control *ct, int wflag); +static void r_close (rset_control *ct); +static void r_delete (rset_control *ct); +static void r_rewind (rset_control *ct); +static int r_count (rset_control *ct); +static int r_read (rset_control *ct, void *buf); +static int r_write (rset_control *ct, const void *buf); + +static const rset_control control = +{ + "NULL set type", + 0, + r_create, + r_open, + r_close, + r_delete, + r_rewind, + r_count, + r_read, + r_write +}; + +const rset_control *rset_kind_null = &control; + +static rset_control *r_create(const struct rset_control *sel, void *parms) +{ + rset_control *newct; + + logf (LOG_DEBUG, "rsnull_create(%s)", sel->desc); + newct = xmalloc(sizeof(*newct)); + memcpy(newct, sel, sizeof(*sel)); + return newct; +} + +static int r_open(rset_control *ct, int wflag) +{ + if (wflag) + { + logf (LOG_FATAL, "NULL set type is read-only"); + return -1; + } + return 0; +} + +static void r_close(rset_control *ct) +{ + /* NOP */ +} + +static void r_delete(rset_control *ct) +{ + xfree(ct); +} + +static void r_rewind(rset_control *ct) +{ + logf (LOG_DEBUG, "rsnull_rewind"); +} + +static int r_count (rset_control *ct) +{ + return 0; +} + +static int r_read (rset_control *ct, void *buf) +{ + return 0; +} + +static int r_write (rset_control *ct, const void *buf) +{ + logf (LOG_FATAL, "NULL set type is read-only"); + return -1; +} -- 1.7.10.4