/*
- * Copyright (c) 1995-2003, Index Data.
+ * Copyright (C) 1995-2005, Index Data ApS
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: nmem.h,v 1.12 2004-01-15 10:16:26 adam Exp $
+ * $Id: nmem.h,v 1.17 2005-06-25 15:46:03 adam Exp $
*/
+/**
+ * \file nmem.h
+ * \brief Header for Nibble Memory functions
+ *
+ * This is a simple and fairly wasteful little module for nibble memory
+ * allocation. Evemtually we'll put in something better.
+ */
#ifndef NMEM_H
#define NMEM_H
+
+#include <stddef.h>
#include <yaz/yconfig.h>
#define NMEM_DEBUG 0
YAZ_BEGIN_CDECL
-typedef struct nmem_block
-{
- char *buf; /* memory allocated in this block */
- int size; /* size of buf */
- int top; /* top of buffer */
- struct nmem_block *next;
-} nmem_block;
-
-typedef struct nmem_control
-{
- int total;
- nmem_block *blocks;
- struct nmem_control *next;
-} nmem_control;
+typedef struct nmem_block nmem_block;
+
+typedef struct nmem_control nmem_control;
typedef struct nmem_mutex *NMEM_MUTEX;
YAZ_EXPORT void nmem_mutex_create(NMEM_MUTEX *);
YAZ_EXPORT int nmem_total(NMEM n);
YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src);
YAZ_EXPORT char *nmem_strdupn (NMEM mem, const char *src, size_t n);
+YAZ_EXPORT void nmem_strsplit_blank(NMEM nmem, const char *dstr,
+ char ***darray, int *num);
+YAZ_EXPORT void nmem_strsplit(NMEM nmem, const char *delim,
+ const char *dstr,
+ char ***darray, int *num);
+
YAZ_EXPORT int *nmem_intdup (NMEM mem, int v);
YAZ_EXPORT void nmem_transfer (NMEM dst, NMEM src);
YAZ_END_CDECL
#endif
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+