From: Dennis Schafroth Date: Wed, 14 Jul 2010 11:02:56 +0000 (+0200) Subject: Methods for encoding FacetLists X-Git-Tag: v4.0.12~61 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=5a9b85ec05d3f3af1e4285be735bc9836aad2566 Methods for encoding FacetLists --- diff --git a/src/otherinfo.c b/src/otherinfo.c index e15a5e9..9d7e083 100644 --- a/src/otherinfo.c +++ b/src/otherinfo.c @@ -92,6 +92,7 @@ Z_OtherInformationUnit *yaz_oi_update ( { if (!oid) { + /* DS: Want does this do? Returns the first element without a category */ if (!otherInformation->list[i]->category) return otherInformation->list[i]; } @@ -177,6 +178,25 @@ char *yaz_oi_get_string_oid ( return 0; } +void yaz_oi_set_facetlist_oid ( + Z_OtherInformation **otherInformation, ODR odr, + const Odr_oid *oid, int categoryValue, + Z_FacetList *facet_list) +{ + Z_External *z_external = 0; + Z_OtherInformationUnit *oi = + yaz_oi_update(otherInformation, odr, oid, categoryValue, 0); + if (!oi) + return; + oi->which = Z_OtherInfo_externallyDefinedInfo; + z_external = odr_malloc(odr, sizeof(*z_external)); + z_external->which = Z_External_userFacets; + z_external->direct_reference = odr_oiddup(odr, oid); + z_external->indirect_reference = 0; + z_external->u.facetList = facet_list; + oi->information.externallyDefinedInfo = z_external; +} + /* * Local variables: * c-basic-offset: 4