X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fodr-priv.h;h=75b37ab69e9d76f43b74574b169778a61d7c5e8b;hb=60a702f390f7e2addfdab79f2328db3ba2897c8b;hp=6aef58b8f61aba837cba3495feeb8e5cdf765234;hpb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9;p=yaz-moved-to-github.git diff --git a/src/odr-priv.h b/src/odr-priv.h index 6aef58b..75b37ab 100644 --- a/src/odr-priv.h +++ b/src/odr-priv.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995-2003, Index Data. + * Copyright (C) 1995-2005, Index Data ApS * * 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.5 2005-01-15 19:47:14 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.