Bump copyright year
[idzebra-moved-to-github.git] / index / recindex.h
index 6310a24..aea2797 100644 (file)
@@ -1,8 +1,5 @@
-/* $Id: recindex.h,v 1.29 2006-09-15 10:45:13 adam Exp $
-   Copyright (C) 1995-2006
-   Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+   Copyright (C) 1994-2010 Index Data
 
 Zebra is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -32,7 +29,7 @@ YAZ_BEGIN_CDECL
 #define REC_NO_INFO 8
 
 typedef struct record_info {
-    SYSNO sysno;
+    zint sysno;
     int newFlag;
     char *info[REC_NO_INFO];
     size_t size[REC_NO_INFO];
@@ -72,7 +69,7 @@ Record rec_new(Records p);
     \param sysno system ID (external number)
     \returns record pointer (or NULL on error)
 */
-Record rec_get(Records p, SYSNO sysno);
+Record rec_get(Records p, zint sysno);
 
 /** \brief gets root record
     \param p records handle
@@ -88,14 +85,26 @@ ZEBRA_RES rec_close (Records *p);
 */
 Records rec_open(BFiles bfs, int rw, int compression_method);
 
+/** \brief check whether a compression method is supported
+    \param compression_method (REC_COMPRESS_..)
+    \retval 0 if method is unsupported
+    \retval 1 if method is supported
+*/
+int rec_check_compression_method(int compression_method);
+
 char *rec_strdup(const char *s, size_t *len);
-void rec_prstat(Records p);
+void rec_prstat(Records p, int verbose);
 
-SYSNO rec_sysno_to_int(SYSNO sysno);
+zint rec_sysno_to_int(zint sysno);
 
-/** \brief compression types */
+
+/** \brief No compression ("none") */
 #define REC_COMPRESS_NONE   0
+/** \brief BZIP2 compression (slow and requires big chunks) */
 #define REC_COMPRESS_BZIP2  1
+/** \brief zlib compression (faster and works off small chunks) */
+#define REC_COMPRESS_ZLIB   2
+
 
 enum { 
     recInfo_fileType, 
@@ -107,11 +116,32 @@ enum {
     recInfo_sortKeys
 };
 
+typedef struct recindex *recindex_t;
+
+/** \brief opens record index handle
+    \param bfs Block files handle
+    \param rw 1 for read and write; 0 for read-only
+    \param use_isamb 1 if ISAMB is to used for record index; 0 for flat (old)
+*/
+recindex_t recindex_open(BFiles bfs, int rw, int use_isamb);
+
+/** \brief closes record index handle
+    \param p records handle
+*/
+void recindex_close(recindex_t p);
+int recindex_read_head(recindex_t p, void *buf);
+const char *recindex_get_fname(recindex_t p);
+ZEBRA_RES recindex_write_head(recindex_t p, const void *buf, size_t len);
+int recindex_read_indx(recindex_t p, zint sysno, void *buf, int itemsize, 
+                       int ignoreError);
+void recindex_write_indx(recindex_t p, zint sysno, void *buf, int itemsize);
+
 YAZ_END_CDECL
 #endif
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab