Added a few casts from zint to double/int where appropriate.
[idzebra-moved-to-github.git] / include / idzebra / api.h
index 96a558f..2023533 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: api.h,v 1.10 2005-01-21 13:19:25 adam Exp $
+/* $Id: api.h,v 1.14 2005-03-08 14:02:08 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -20,19 +20,17 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.
 */
 
-/**
- * \file api.h
- * \brief Zebra API
- */
-
-/* Return codes:
- * Most functions return an int. Unix-like, 0 means OK, 
- * non-zero means an error. The error info should be available
- * via zebra_errCode and friends. 
- */
+/** \file api.h
+    \brief Zebra API
+    
+    Return codes:
+    Most functions return an int. Unix-like, 0 means OK, 
+    non-zero means an error. The error info should be available
+    via zebra_errCode and friends. 
+*/
 
-#ifndef ZEBRAAPI_H
-#define ZEBRAAPI_H
+#ifndef IDZEBRA_API_H
+#define IDZEBRA_API_H
 
 #include <yaz/odr.h>
 #include <yaz/oid.h>
@@ -43,12 +41,12 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 YAZ_BEGIN_CDECL
 
 typedef struct {
-  int processed;
-  int inserted;
-  int updated;
-  int deleted;
-  long utime;
-  long stime;
+    int processed;
+    int inserted;
+    int updated;
+    int deleted;
+    long utime;
+    long stime;
 } ZebraTransactionStatus;
 
 /* Retrieval Record Descriptor */
@@ -71,182 +69,224 @@ typedef struct {
 } ZebraScanEntry;
 
 /** \var ZebraHandle
- * \brief a Zebra Handle - (session)
- */
+    \brief a Zebra Handle - (session)
+*/
 typedef struct zebra_session *ZebraHandle;
 
 /** \var ZebraService
- * \brief a Zebra Service handle
- */
+    \brief a Zebra Service handle
+*/
 typedef struct zebra_service *ZebraService;
 
 /** \fn ZebraService zebra_start(const char *configName)
- * \brief starts a Zebra service. 
- * \param configName name of configuration file
- *
- * This function is a simplified version of zebra_start_res.
- */
+    \brief starts a Zebra service. 
+    \param configName name of configuration file
+    
+    This function is a simplified version of zebra_start_res.
+*/
 YAZ_EXPORT ZebraService zebra_start(const char *configName);
 
 /** \fn ZebraService zebra_start_res(const char *configName,
     Res def_res, Res over_res)
- * \brief starts a Zebra service with resources.
- * \param configName name of configuration file
- * \param def_res default resources
- * \param over_res overriding resources
- *
- * This function typically called once in a program. A Zebra Service
- * acts as a factory for Zebra session handles.
- */
+    \brief starts a Zebra service with resources.
+    \param configName name of configuration file
+    \param def_res default resources
+    \param over_res overriding resources
+    
+    This function typically called once in a program. A Zebra Service
+    acts as a factory for Zebra session handles.
+*/
 YAZ_EXPORT
 ZebraService zebra_start_res(const char *configName,
-                        Res def_res, Res over_res);
+                            Res def_res, Res over_res);
 
 /** \fn int zebra_stop(ZebraService zs)
- * \brief stops a Zebra service.
- * \param zs service handle
- *
- * Frees resources used by the service.
- */
+    \brief stops a Zebra service.
+    \param zs service handle
+    
+    Frees resources used by the service.
+*/
 YAZ_EXPORT
 int zebra_stop(ZebraService zs);
 
 /** \fn void zebra_filter_info(ZebraService zs, void *cd,
-                               void(*cb)(void *cd, const char *name))
- * \brief lists enabled Zebra filters
- * \param zs service handle
- * \param cd callback parameter (opaque)
- * \param cb callback function
+    void(*cb)(void *cd, const char *name))
+    \brief lists enabled Zebra filters
+    \param zs service handle
+    \param cd callback parameter (opaque)
+    \param cb callback function
  */
 YAZ_EXPORT
 void zebra_filter_info(ZebraService zs, void *cd,
-                 void (*cb)(void *cd, const char *name));
+                      void (*cb)(void *cd, const char *name));
 
 
 /** \fn ZebraHandle zebra_open(ZebraService zs)
- * \brief creates a Zebra session handle within service.
- * \param zs service handle.
- *
- * There should be one handle for each thread doing something
- * with zebra, be that searching or indexing. In simple apps 
- * one handle is sufficient 
- */
+    \brief creates a Zebra session handle within service.
+    \param zs service handle.
+    
+    There should be one handle for each thread doing something
+    with zebra, be that searching or indexing. In simple apps 
+    one handle is sufficient 
+*/
 YAZ_EXPORT ZebraHandle zebra_open(ZebraService zs);
 
 /** \fn int zebra_close(ZebraHandle zh)
- * \brief destroys Zebra session handle.
- * \param zh zebra session handle.
+    \brief destroys Zebra session handle.
+    \param zh zebra session handle.
  */
 YAZ_EXPORT int zebra_close(ZebraHandle zh);
 
-/*********
- * Error handling 
- */
-
 /** \fn int zebra_errCode(ZebraHandle zh)
- * \brief returns error code for last error
- * \param zh zebra session handle.
- */
+    \brief returns error code for last error
+    \param zh zebra session handle.
+*/
 YAZ_EXPORT int zebra_errCode(ZebraHandle zh);
 
 /** \fn const char *zebra_errString(ZebraHandle zh)
- * \brief returns error string for last error
- * \param zh zebra session handle.
- */
+    \brief returns error string for last error
+    \param zh zebra session handle.
+*/
 YAZ_EXPORT const char *zebra_errString(ZebraHandle zh);
 
 /** \fn char *zebra_errAdd(ZebraHandle zh)
- * \brief returns additional info for last error
- * \param zh zebra session handle.
- */
+    \brief returns additional info for last error
+    \param zh zebra session handle.
+*/
 YAZ_EXPORT char *zebra_errAdd(ZebraHandle zh);
 
 /** \fn int zebra_result(ZebraHandle zh, int *code, char **addinfo)
- * \brief returns error code and additional info for last error
- * \param zh zebra session handle.
- * \param code pointer to returned error code
- * \param addinfo pointer to returned additional info
- */
+    \brief returns error code and additional info for last error
+    \param zh zebra session handle.
+    \param code pointer to returned error code
+    \param addinfo pointer to returned additional info
+*/
 YAZ_EXPORT int zebra_result(ZebraHandle zh, int *code, char **addinfo);
 
 /** \fn void zebra_clearError(ZebraHandle zh)
- * \brief clears last error.
- * \param zh zebra session handle.
+    \brief clears last error.
+    \param zh zebra session handle.
  */
 YAZ_EXPORT void zebra_clearError(ZebraHandle zh);
 
 /** \fn int zebra_search_PQF(ZebraHandle zh, const char *pqf_query,
-    const char *setname, int *numhits)
- * \brief Search using PQF Query 
- * \param zh session handle
- * \param pqf_query query
- * \param setname name of resultset
- * \param number of hits is returned
+    const char *setname, int *hits)
+    \brief Search using PQF Query 
+    \param zh session handle
+    \param pqf_query query
+    \param setname name of resultset
+    \param hits of hits is returned
  */
 YAZ_EXPORT int zebra_search_PQF(ZebraHandle zh, const char *pqf_query,
-                               const char *setname, int *numhits);
-
-/** \fn int zebra_search_RPN(ZebraHandle zh, Z_RPNQuery *query,
-    const char *setname, int *numhits)
- * \brief Search using RPN Query 
- * \param zh session handle
- * \param query RPN query using YAZ structure
- * \param setname name of resultset
- * \param number of hits is returned
+                               const char *setname, zint *hits);
+
+/** \fn int zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query,
+    const char *setname, zint *hits)
+    \brief Search using RPN Query 
+    \param zh session handle
+    \param o ODR handle
+    \param query RPN query using YAZ structure
+    \param setname name of resultset
+    \param hits number of hits is returned
  */
 YAZ_EXPORT int zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query,
-                               const char *setname, int *hits);
+                               const char *setname, zint *hits);
 
-/** \fn 
-    int zebra_records_retrieve(ZebraHandle zh, ODR stream, const char *setname, Z_RecordComposition *comp, oid_value input_format, int num_recs, ZebraRetrievalRecord *recs)
+/** 
+    \fn int zebra_records_retrieve(ZebraHandle zh, ODR stream,
+    const char *setname, Z_RecordComposition *comp, oid_value input_format,
+    int num_recs, ZebraRetrievalRecord *recs)
     \brief retrieve records from result set (after search)
- * \param zh session handle
- * \param stream allocate records returned using this ODR
- * \param setname name of result set to retrieve records from
- * \param comp Z39.50 record composition
- * \param input_format transfer syntax (OID)
- * \param num_recs number of records to retrieve
- * \param recs store records in this structure (size is num_recs)
- */
+    \param zh session handle
+    \param stream allocate records returned using this ODR
+    \param setname name of result set to retrieve records from
+    \param comp Z39.50 record composition
+    \param input_format transfer syntax (OID)
+    \param num_recs number of records to retrieve
+    \param recs store records in this structure (size is num_recs)
+*/
 YAZ_EXPORT int zebra_records_retrieve(ZebraHandle zh, ODR stream,
                       const char *setname, Z_RecordComposition *comp,
                       oid_value input_format,
                       int num_recs, ZebraRetrievalRecord *recs);
 
-YAZ_EXPORT int zebra_deleleResultSet(ZebraHandle zh, int function,
+/**
+   \fn int zebra_deleteResultSet(ZebraHandle zh, int function,
+   int num_setnames, char **setnames, int *statuses)
+   \brief delete one or more resultsets 
+   \param zh session handle
+   \param function Z_DeleteResultSetRequest_{list,all}
+   \param num_setnames number of result sets
+   \param setnames result set names
+   \param statuses status result
+*/
+YAZ_EXPORT int zebra_deleteResultSet(ZebraHandle zh, int function,
                                     int num_setnames, char **setnames,
                                     int *statuses);
 
 
-/* Browse */
+/**
+   \fn int zebra_scan(ZebraHandle zh, ODR stream,
+   Z_AttributesPlusTerm *zapt, oid_value attributeset,
+   int *position, int *num_entries, ZebraScanEntry **list, int *is_partial)
+   \brief performs Scan (Z39.50 style)
+   \param zh session handle
+   \param stream ODR handle for result
+   \param zapt Attribute plus Term (start term)
+   \param attributeset Attributeset for Attribute plus Term
+   \param position input/output position
+   \param num_entries number of terms requested / returned 
+   \param list list of resulting terms (ODR allocated)
+   \param is_partial upon return 1=partial, 0=complete
+*/
 YAZ_EXPORT int zebra_scan(ZebraHandle zh, ODR stream,
-                          Z_AttributesPlusTerm *zapt,
-                          oid_value attributeset,
-                          int *position, int *num_entries,
-                          ZebraScanEntry **list,
-                          int *is_partial);
-
-   
-          
-/*********
- * Other 
+                         Z_AttributesPlusTerm *zapt,
+                         oid_value attributeset,
+                         int *position, int *num_entries,
+                         ZebraScanEntry **list,
+                         int *is_partial);
+
+             
+/**
+   \fn int zebra_auth(ZebraHandle zh, const char *user, const char *pass)
+   \brief authenticate user. Returns 0 if OK, != 0 on failure
+   \param zh session handle
+   \param user user name
+   \param pass password
  */
-                      
-/* do authentication */
 YAZ_EXPORT int zebra_auth(ZebraHandle zh, const char *user, const char *pass);
 
-/* Character normalisation on specific register .
-   This routine is subject to change - do not use. */
+
+/**
+   \fn int zebra_string_norm(ZebraHandle zh, unsigned reg_id,
+   const char *input_str, int input_len,
+   char *output_str, int output_len)
+   \brief normalize zebra term for register (subject to change!)
+   \param zh session handle
+   \param reg_id register ID, 'w', 'p',..
+   \param input_str input string buffer
+   \param input_len input string length
+   \param output_str output string buffer
+   \param output_len output string length
+ */
 YAZ_EXPORT int zebra_string_norm(ZebraHandle zh, unsigned reg_id,
                                  const char *input_str, int input_len,
                                  char *output_str, int output_len);
 
-
-/******
- * Admin 
- */                   
-          
+/**
+   \fn int zebra_create_database(ZebraHandle zh, const char *db)
+   \brief creates a database
+   \param zh session handle
+   \param db database to be created
+*/
 YAZ_EXPORT int zebra_create_database(ZebraHandle zh, const char *db);
+
+/**
+   \fn int zebra_drop_database(ZebraHandle zh, const char *db)
+   \brief deletes a database (drop)
+   \param zh session handle
+   \param db database to be deleted
+*/
 YAZ_EXPORT int zebra_drop_database(ZebraHandle zh, const char *db);
 
 YAZ_EXPORT int zebra_admin_shutdown(ZebraHandle zh);
@@ -262,38 +302,38 @@ YAZ_EXPORT int zebra_admin_import_segment(ZebraHandle zh,
 
 YAZ_EXPORT int zebra_admin_import_end(ZebraHandle zh);
 
-int zebra_admin_exchange_record(ZebraHandle zh,
+YAZ_EXPORT int zebra_admin_exchange_record(ZebraHandle zh,
                                  const char *rec_buf,
                                  size_t rec_len,
                                  const char *recid_buf, size_t recid_len,
                                  int action);
 
-int zebra_begin_trans(ZebraHandle zh, int rw);
-int zebra_end_trans(ZebraHandle zh);
-int zebra_end_transaction(ZebraHandle zh, ZebraTransactionStatus *stat);
+YAZ_EXPORT int zebra_begin_trans(ZebraHandle zh, int rw);
+YAZ_EXPORT int zebra_end_trans(ZebraHandle zh);
+YAZ_EXPORT int zebra_end_transaction(ZebraHandle zh, ZebraTransactionStatus *stat);
 
-int zebra_commit(ZebraHandle zh);
-int zebra_clean(ZebraHandle zh);
+YAZ_EXPORT int zebra_commit(ZebraHandle zh);
+YAZ_EXPORT int zebra_clean(ZebraHandle zh);
 
-int zebra_init(ZebraHandle zh);
-int zebra_compact(ZebraHandle zh);
-int zebra_repository_update(ZebraHandle zh, const char *path);
-int zebra_repository_delete(ZebraHandle zh, const char *path);
-int zebra_repository_show(ZebraHandle zh, const char *path);
+YAZ_EXPORT int zebra_init(ZebraHandle zh);
+YAZ_EXPORT int zebra_compact(ZebraHandle zh);
+YAZ_EXPORT int zebra_repository_update(ZebraHandle zh, const char *path);
+YAZ_EXPORT int zebra_repository_delete(ZebraHandle zh, const char *path);
+YAZ_EXPORT int zebra_repository_show(ZebraHandle zh, const char *path);
 
-int zebra_add_record(ZebraHandle zh, const char *buf, int buf_size);
+YAZ_EXPORT int zebra_add_record(ZebraHandle zh, const char *buf, int buf_size);
                               
-int zebra_insert_record(ZebraHandle zh, 
+YAZ_EXPORT int zebra_insert_record(ZebraHandle zh, 
                         const char *recordType,
                         SYSNO *sysno, const char *match, const char *fname,
                         const char *buf, int buf_size,
                         int force_update);
-int zebra_update_record(ZebraHandle zh, 
+YAZ_EXPORT int zebra_update_record(ZebraHandle zh, 
                         const char *recordType,
                         SYSNO *sysno, const char *match, const char *fname,
                         const char *buf, int buf_size,
                         int force_update);
-int zebra_delete_record(ZebraHandle zh, 
+YAZ_EXPORT int zebra_delete_record(ZebraHandle zh, 
                         const char *recordType,
                         SYSNO *sysno, const char *match, const char *fname,
                         const char *buf, int buf_size,