X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fprt-ext.h;h=25ffa4245fe5a0905f06a664ec9350f81b30bfe6;hb=a4b3ddd8ad754b42454c7a18fdb3ef61f7bd580d;hp=3ef41bc9407fc1e24f67337b7250b6239aa429a4;hpb=0ba153ff51508cf37d3f5bbc48e3738dacfc6f42;p=yaz-moved-to-github.git diff --git a/include/prt-ext.h b/include/prt-ext.h index 3ef41bc..25ffa42 100644 --- a/include/prt-ext.h +++ b/include/prt-ext.h @@ -34,30 +34,39 @@ #include +/* + * Used to keep track of known External definitions (a loose approach + * to DEFINED_BY). + */ + +typedef struct Z_ext_typeent +{ + oid_value dref; /* the direct-reference OID value. */ + int what; /* discriminator value for the external CHOICE */ + Odr_fun fun; /* decoder function */ +} Z_ext_typeent; + struct Z_External { Odr_oid *direct_reference; int *indirect_reference; char *descriptor; - enum - { - /* Generic types */ - Z_External_single = 0, - Z_External_octet, - Z_External_arbitrary, - - /* Specific types */ - Z_External_sutrs, - Z_External_explainRecord, - Z_External_resourceReport1, - Z_External_resourceReport2, - Z_External_promptObject1, - Z_External_grs1, - Z_External_extendedService, - Z_External_itemOrder, - Z_External_diag1, - Z_External_espec1 - } which; + int which; +/* Generic types */ +#define Z_External_single 0 +#define Z_External_octet 1 +#define Z_External_arbitrary 2 +/* Specific types */ +#define Z_External_sutrs 3 +#define Z_External_explainRecord 4 +#define Z_External_resourceReport1 5 +#define Z_External_resourceReport2 6 +#define Z_External_promptObject1 7 +#define Z_External_grs1 8 +#define Z_External_extendedService 9 +#define Z_External_itemOrder 10 +#define Z_External_diag1 11 +#define Z_External_espec1 12 union { /* Generic types */ @@ -80,5 +89,6 @@ struct Z_External }; int z_External(ODR o, Z_External **p, int opt); +Z_ext_typeent *z_ext_getentbyref(oid_value val); #endif