Added prettier client.
[yaz-moved-to-github.git] / include / odr.h
index 300cfa2..20ee8c5 100644 (file)
@@ -1,11 +1,36 @@
-
 /*
- * Copyright (C) 1994, Index Data I/S 
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
+ * Copyright (c) 1995, Index Data.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation, in whole or in part, for any purpose, is hereby granted,
+ * provided that:
+ *
+ * 1. This copyright and permission notice appear in all copies of the
+ * software and its documentation. Notices of copyright or attribution
+ * which appear at the beginning of any file must remain unchanged.
+ *
+ * 2. The name of Index Data or the individual authors may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
+ * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
  *
  * $Log: odr.h,v $
- * Revision 1.2  1995-04-18 08:14:37  quinn
+ * Revision 1.4  1995-05-16 08:50:33  quinn
+ * License, documentation, and memory fixes
+ *
+ * Revision 1.3  1995/05/15  11:55:54  quinn
+ * Work on asynchronous activity.
+ *
+ * Revision 1.2  1995/04/18  08:14:37  quinn
  * Added dynamic memory allocation on encoding
  *
  * Revision 1.1  1995/03/30  09:39:41  quinn
@@ -142,6 +167,7 @@ typedef struct odr_constack
 } odr_constack;
 
 struct odr_memblock; /* defined in odr_mem.c */
+typedef struct odr_memblock *ODR_MEM;
 
 #define ODR_S_SET     0
 #define ODR_S_CUR     1
@@ -216,9 +242,11 @@ void odr_setprint(ODR o, FILE *file);
 ODR odr_createmem(int direction);
 void odr_reset(ODR o);
 void odr_destroy(ODR o);
-void odr_setbuf(ODR o, char *buf, int len);
-char *odr_getbuf(ODR o, int *len);
+void odr_setbuf(ODR o, char *buf, int len, int can_grow);
+char *odr_getbuf(ODR o, int *len, int *size);
 void *odr_malloc(ODR o, int size);
+ODR_MEM odr_extract_mem(ODR o);
+void odr_release_mem(ODR_MEM p);
 
 #define odr_implicit(o, t, p, cl, tg, opt)\
        (odr_implicit_settag((o), cl, tg), t ((o), (p), opt) )
@@ -245,7 +273,7 @@ void *odr_malloc(ODR o, int size);
 /*
  * write a single character at the current position - grow buffer if
  * necessary.
- * (no, we're not usually this anal about our macros, but this one is
+ * (no, we're not usually this anal about our macros, but this baby is
  *  next to unreadable without some indentation  :)
  */
 #define odr_putc(o, c) \
@@ -280,6 +308,9 @@ void *odr_malloc(ODR o, int size);
 ) \
 
 #define odr_tell(o) ((o)->ecb.pos)
+#define odr_ok(o) (!(o)->error)
+
+#define ODR_MAXNAME 256
 
 #include <prt.h>
 #include <dmalloc.h>