From 5317b91368cca60e5a368b0ea2d7665704e2d57b Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 30 Mar 1995 10:26:43 +0000 Subject: [PATCH] Added Term structure --- asn/proto.c | 39 ++++++++++++++++++++++++++++++++++++++- include/proto.h | 10 +++++++--- include/yaz-ccl.h | 10 ++++++++++ 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 include/yaz-ccl.h diff --git a/asn/proto.c b/asn/proto.c index a3edde1..70b98ec 100644 --- a/asn/proto.c +++ b/asn/proto.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: proto.c,v $ - * Revision 1.15 1995-03-30 09:08:39 quinn + * Revision 1.16 1995-03-30 10:26:43 quinn + * Added Term structure + * + * Revision 1.15 1995/03/30 09:08:39 quinn * Added Resource control protocol * * Revision 1.14 1995/03/29 08:06:13 quinn @@ -309,6 +312,36 @@ int z_AttributeElement(ODR o, Z_AttributeElement **p, int opt) odr_sequence_end(o); } +#ifdef Z_V3 + +int z_Term(ODR o, Z_Term **p, int opt) +{ + static Odr_arm arm[] = + { + {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_Term_general, odr_octetstring}, + {ODR_IMPLICIT, ODR_CONTEXT, 215, Z_Term_numeric, odr_integer}, + {ODR_IMPLICIT, ODR_CONTEXT, 216, Z_Term_characterString, + odr_visiblestring}, + {ODR_IMPLICIT, ODR_CONTEXT, 217, Z_Term_oid, odr_oid}, + {ODR_IMPLICIT, ODR_CONTEXT, 218, Z_Term_dateTime, odr_cstring}, + {ODR_IMPLICIT, ODR_CONTEXT, 219, Z_Term_external, odr_external}, + /* add intUnit here */ + {ODR_IMPLICIT, ODR_CONTEXT, 221, Z_Term_null, odr_null}, + {-1, -1, -1, -1, 0} + }; + + if (o->direction ==ODR_DECODE) + *p = odr_malloc(o, sizeof(**p)); + else if (!*p) + return opt; + if (odr_choice(o, arm, &(*p)->u, &(*p)->which)) + return 1; + *p = 0; + return opt && !o->error; +} + +#endif + int z_AttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt) { if (!(odr_implicit_settag(o, ODR_CONTEXT, 102) && @@ -318,7 +351,11 @@ int z_AttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt) odr_implicit_settag(o, ODR_CONTEXT, 44) && odr_sequence_of(o, z_AttributeElement, &(*p)->attributeList, &(*p)->num_attributes) && +#ifdef Z_V3 + z_Term(o, &(*p)->term, 0) && +#else odr_implicit(o, odr_octetstring, &(*p)->term, ODR_CONTEXT, 45, 0) && +#endif odr_sequence_end(o); } diff --git a/include/proto.h b/include/proto.h index 313c603..5203c93 100644 --- a/include/proto.h +++ b/include/proto.h @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: proto.h,v $ - * Revision 1.1 1995-03-30 09:39:42 quinn + * Revision 1.2 1995-03-30 10:26:48 quinn + * Added Term structure + * + * Revision 1.1 1995/03/30 09:39:42 quinn * Moved .h files to include directory * * Revision 1.11 1995/03/30 09:08:44 quinn @@ -209,6 +212,7 @@ typedef struct Z_AttributeElement int *attributeValue; } Z_AttributeElement; +#define Z_V3 #ifdef Z_V3 typedef struct Z_Term @@ -226,13 +230,13 @@ typedef struct Z_Term } which; union { - Odr_oct *general; + Odr_oct *general; /* this is required for v2 */ int *numeric; char *characterString; Odr_oid *oid; char *dateTime; Odr_external *external; - Z_IntUnit *integerAndUnit; + /* Z_IntUnit *integerAndUnit; */ void *null; } u; } Z_Term; diff --git a/include/yaz-ccl.h b/include/yaz-ccl.h new file mode 100644 index 0000000..261aa0b --- /dev/null +++ b/include/yaz-ccl.h @@ -0,0 +1,10 @@ + +#ifndef YAZ_CCL_H +#define YAZ_CCL_H + +#include +#include + +Z_RPNQuery *ccl_rpn_query (struct ccl_rpn_node *p); + +#endif -- 1.7.10.4