projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enhancements and new bugs in Generic Frontend Server..
[yaz-moved-to-github.git]
/
include
/
yaz
/
odr.h
diff --git
a/include/yaz/odr.h
b/include/yaz/odr.h
index
b9bd91f
..
9b70faf
100644
(file)
--- a/
include/yaz/odr.h
+++ b/
include/yaz/odr.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,
*
* 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.
*
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: odr.h,v 1.9 2003-03-11 11:03:30 adam Exp $
+ * $Id: odr.h,v 1.19 2005-01-27 09:04:07 adam Exp $
+ */
+
+/**
+ * \file odr.h
+ * \brief Header for ODR (Open Data Representation)
*/
#ifndef ODR_H
*/
#ifndef ODR_H
@@
-106,17
+111,6
@@
typedef struct odr_bitmask
typedef int Odr_oid; /* terminate by -1 */
typedef int Odr_oid; /* terminate by -1 */
-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;
-
#define ODR_S_SET 0
#define ODR_S_CUR 1
#define ODR_S_END 2
#define ODR_S_SET 0
#define ODR_S_CUR 1
#define ODR_S_END 2
@@
-129,10
+123,10
@@
typedef struct odr
int can_grow; /* are we allowed to reallocate */
unsigned char *buf; /* memory handle */
int can_grow; /* are we allowed to reallocate */
unsigned char *buf; /* memory handle */
- int size; /* current buffer size */
+ int size; /* current buffer size (encoding+decoding) */
- int pos; /* current position */
- int top; /* top of buffer (max pos when decoding) */
+ int pos; /* current position (encoding) */
+ int top; /* top of buffer (max pos when encoding) */
const unsigned char *bp; /* position in buffer (decoding) */
const unsigned char *bp; /* position in buffer (decoding) */
@@
-143,7
+137,7
@@
typedef struct odr
int choice_bias; /* force choice */
int lenlen; /* force length-of-lenght (odr_setlen()) */
int choice_bias; /* force choice */
int lenlen; /* force length-of-lenght (odr_setlen()) */
- FILE *print; /* output file for direction print */
+ FILE *print; /* output file handler for direction print */
int indent; /* current indent level for printing */
NMEM mem; /* memory handle for decoding (primarily) */
int indent; /* current indent level for printing */
NMEM mem; /* memory handle for decoding (primarily) */
@@
-185,7
+179,9
@@
extern char *odr_errlist[];
YAZ_EXPORT int odr_geterror(ODR o);
YAZ_EXPORT int odr_geterrorx(ODR o, int *x);
YAZ_EXPORT void odr_seterror(ODR o, int errorno, int errorid);
YAZ_EXPORT int odr_geterror(ODR o);
YAZ_EXPORT int odr_geterrorx(ODR o, int *x);
YAZ_EXPORT void odr_seterror(ODR o, int errorno, int errorid);
-YAZ_EXPORT void odr_perror(ODR o, char *message);
+YAZ_EXPORT void odr_setelement(ODR o, const char *addinfo);
+YAZ_EXPORT const char *odr_getelement(ODR o);
+YAZ_EXPORT void odr_perror(ODR o, const char *message);
YAZ_EXPORT void odr_setprint(ODR o, FILE *file);
YAZ_EXPORT ODR odr_createmem(int direction);
YAZ_EXPORT void odr_reset(ODR o);
YAZ_EXPORT void odr_setprint(ODR o, FILE *file);
YAZ_EXPORT ODR odr_createmem(int direction);
YAZ_EXPORT void odr_reset(ODR o);
@@
-194,27
+190,20
@@
YAZ_EXPORT void odr_setbuf(ODR o, char *buf, int len, int can_grow);
YAZ_EXPORT char *odr_getbuf(ODR o, int *len, int *size);
YAZ_EXPORT void *odr_malloc(ODR o, int size);
YAZ_EXPORT char *odr_strdup(ODR o, const char *str);
YAZ_EXPORT char *odr_getbuf(ODR o, int *len, int *size);
YAZ_EXPORT void *odr_malloc(ODR o, int size);
YAZ_EXPORT char *odr_strdup(ODR o, const char *str);
+YAZ_EXPORT char *odr_strdupn(ODR o, const char *str, size_t n);
YAZ_EXPORT int *odr_intdup(ODR o, int v);
YAZ_EXPORT NMEM odr_extract_mem(ODR o);
YAZ_EXPORT Odr_null *odr_nullval(void);
#define odr_release_mem(m) nmem_destroy(m)
#define ODR_MEM NMEM
YAZ_EXPORT int *odr_intdup(ODR o, int v);
YAZ_EXPORT NMEM odr_extract_mem(ODR o);
YAZ_EXPORT Odr_null *odr_nullval(void);
#define odr_release_mem(m) nmem_destroy(m)
#define ODR_MEM NMEM
-#define odr_implicit(o, t, p, cl, tg, opt)\
- (odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), 0) )
-
#define odr_implicit_tag(o, t, p, cl, tg, opt, name)\
(odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), name) )
#define odr_implicit_tag(o, t, p, cl, tg, opt, name)\
(odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), name) )
-#define odr_explicit(o, t, p, cl, tg, opt)\
- ((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \
- t ((o), (p), (opt), 0) &&\
- odr_constructed_end(o) : opt))
-
#define odr_explicit_tag(o, t, p, cl, tg, opt, name)\
((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \
t ((o), (p), (opt), name) &&\
#define odr_explicit_tag(o, t, p, cl, tg, opt, name)\
((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \
t ((o), (p), (opt), name) &&\
- odr_constructed_end(o) : opt))
+ odr_constructed_end(o) : odr_missing((o), opt, name)))
#define ODR_MASK_ZERO(mask)\
((void) (memset((mask)->bits, 0, ODR_BITMASK_SIZE),\
#define ODR_MASK_ZERO(mask)\
((void) (memset((mask)->bits, 0, ODR_BITMASK_SIZE),\
@@
-241,7
+230,7
@@
YAZ_EXPORT Odr_null *odr_nullval(void);
YAZ_EXPORT int ber_boolean(ODR o, int *val);
YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag,
YAZ_EXPORT int ber_boolean(ODR o, int *val);
YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag,
- int *constructed, int opt);
+ int *constructed, int opt, const char *name);
YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed);
YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass,
int *tag, int *constructed, int max);
YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed);
YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass,
int *tag, int *constructed, int max);
@@
-301,6
+290,8
@@
YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, const char *str);
YAZ_EXPORT int odr_initmember(ODR o, void *p, int size);
YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons);
YAZ_EXPORT void odr_setlenlen(ODR o, int len);
YAZ_EXPORT int odr_initmember(ODR o, void *p, int size);
YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons);
YAZ_EXPORT void odr_setlenlen(ODR o, int len);
+YAZ_EXPORT int odr_missing(ODR o, int opt, const char *name);
+YAZ_EXPORT char *odr_prepend(ODR o, const char *prefix, const char *old);
typedef struct Odr_external
{
typedef struct Odr_external
{
@@
-330,6
+321,18
@@
YAZ_EXPORT int odr_generalizedtime(ODR o, char **p, int opt,
YAZ_EXPORT int odr_set_charset(ODR o, const char *to, const char *from);
YAZ_EXPORT int odr_set_charset(ODR o, const char *to, const char *from);
+YAZ_EXPORT void odr_set_stream(ODR o, void *handle,
+ void (*stream_write)(ODR o,
+ void *handle,
+ int type,
+ const char *buf,
+ int len),
+ void (*stream_close)(void *handle));
+
+YAZ_EXPORT void odr_printf(ODR o, const char *fmt, ...);
+
+YAZ_EXPORT const char **odr_get_element_path(ODR o);
+
YAZ_END_CDECL
#include <yaz/xmalloc.h>
YAZ_END_CDECL
#include <yaz/xmalloc.h>