X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr-priv.h;h=e42007fdebbe9cae46fd41e69409d5b56d7a4918;hp=6aef58b8f61aba837cba3495feeb8e5cdf765234;hb=05c274ef315384faafcc5900c17468f0ea2474e6;hpb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9 diff --git a/src/odr-priv.h b/src/odr-priv.h index 6aef58b..e42007f 100644 --- a/src/odr-priv.h +++ b/src/odr-priv.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995-2003, Index Data. + * Copyright (c) 1995-2004, 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, @@ -23,7 +23,12 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * - * $Id: odr-priv.h,v 1.1 2003-10-27 12:21:33 adam Exp $ + * $Id: odr-priv.h,v 1.4 2004-10-15 00:19:00 adam Exp $ + */ + +/** + * \file odr-priv.h + * \brief Internal ODR definitions */ #ifndef ODR_PRIV_H @@ -43,16 +48,31 @@ struct Odr_ber_tag { /* used to be statics in ber_tag... */ #define odr_max(o) ((o)->size - ((o)->bp - (o)->buf)) #define odr_offset(o) ((o)->bp - (o)->buf) +typedef struct odr_constack +{ + const unsigned char *base; /* starting point of data */ + int base_offset; + int len; /* length of data, if known, else -1 + (decoding only) */ + const unsigned char *lenb; /* where to encode length */ + int len_offset; + int lenlen; /* length of length-field */ +} odr_constack; + struct Odr_private { /* stack for constructed types */ #define ODR_MAX_STACK 50 int stackp; /* top of stack (-1 == initial state) */ odr_constack stack[ODR_MAX_STACK]; + const char *stack_names[1 + ODR_MAX_STACK]; struct Odr_ber_tag odr_ber_tag; yaz_iconv_t iconv_handle; int error_id; char element[80]; + void (*stream_write)(ODR o, void *handle, int type, + const char *buf, int len); + void (*stream_close)(void *handle); }; /* Private macro.