Fixed Defaultdiagformat.
[yaz-moved-to-github.git] / include / odr.h
index 300cfa2..a1787fb 100644 (file)
@@ -1,11 +1,48 @@
-
 /*
- * 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.8  1995-06-16 13:16:04  quinn
+ * Fixed Defaultdiagformat.
+ *
+ * Revision 1.7  1995/05/29  08:11:32  quinn
+ * Moved oid from odr/asn to util.
+ *
+ * Revision 1.6  1995/05/22  14:47:00  quinn
+ * ODR_NULLVAL --> void
+ *
+ * Revision 1.5  1995/05/22  11:31:24  quinn
+ * Added PDUs
+ *
+ * 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
 #define ODR_PRINTABLESTRING 19
 #define ODR_GRAPHICSTRING   25
 #define ODR_VISIBLESTRING   26
+#define ODR_GENERALSTRING   27
 
 /*
  * odr stream directions
@@ -118,6 +156,9 @@ typedef struct odr_oct
     int size;
 } Odr_oct;
 
+typedef void Odr_null;
+extern Odr_null *ODR_NULLVAL;
+
 typedef Odr_oct Odr_any;
 
 typedef struct odr_bitmask
@@ -127,7 +168,6 @@ typedef struct odr_bitmask
     int top;
 } Odr_bitmask;
 
-#define ODR_OID_SIZE 100
 typedef int Odr_oid;   /* terminate by -1 */
 
 typedef struct odr_constack
@@ -142,6 +182,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 +257,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 +288,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 +323,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>