* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: nmem.h,v 1.15 2005-05-02 19:14:33 adam Exp $
+ * $Id: nmem.h,v 1.19 2006-05-03 13:04:46 adam Exp $
*/
/**
*/
#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 void nmem_reset(NMEM n);
YAZ_EXPORT int nmem_total(NMEM n);
YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src);
+YAZ_EXPORT char *nmem_strdup_null (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);
+ char ***darray, int *num);
YAZ_EXPORT void nmem_strsplit(NMEM nmem, const char *delim,
- const char *dstr,
- char ***darray, int *num);
+ const char *dstr,
+ char ***darray, int *num);
+YAZ_EXPORT char *nmem_text_node_cdata(const void *ptr_cdata, NMEM nmem);
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
+ */
+