-
/*
- * 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.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
int size;
} Odr_oct;
+typedef char Odr_null;
+extern Odr_null *ODR_NULLVAL;
+
typedef Odr_oct Odr_any;
typedef struct odr_bitmask
} 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
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) )
/*
* 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) \
) \
#define odr_tell(o) ((o)->ecb.pos)
+#define odr_ok(o) (!(o)->error)
+
+#define ODR_MAXNAME 256
#include <prt.h>
#include <dmalloc.h>