X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Ffacet.c;h=b83972c323cdd3f62e637b0e57fabc6ab6042547;hp=13d156667caa8612b5332304ce5b0b0c7eddba32;hb=43a9d38d20c1b1bcd1a03b2445a501d27526bd35;hpb=b56b6242e4e9c0011b9a2dae6d67c3ef0789251f diff --git a/src/facet.c b/src/facet.c index 13d1566..b83972c 100644 --- a/src/facet.c +++ b/src/facet.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data + * Copyright (C) 1995-2011 Index Data * See the file LICENSE for details. */ @@ -19,6 +19,44 @@ #include #include +void yaz_oi_set_facetlist( + Z_OtherInformation **otherInformation, ODR odr, + Z_FacetList *facet_list) +{ + int categoryValue = 1; + Z_External *z_external = 0; + Z_OtherInformationUnit *oi = + yaz_oi_update(otherInformation, odr, yaz_oid_userinfo_facet_1, + 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, yaz_oid_userinfo_facet_1); + z_external->indirect_reference = 0; + z_external->descriptor = 0; + z_external->u.facetList = facet_list; + oi->information.externallyDefinedInfo = z_external; +} + +Z_FacetList *yaz_oi_get_facetlist(Z_OtherInformation **otherInformation) +{ + int categoryValue = 1; + Z_External *z_external = 0; + Z_OtherInformationUnit *oi = + yaz_oi_update(otherInformation, 0, yaz_oid_userinfo_facet_1, + categoryValue, 0); + if (!oi) + return 0; + z_external = oi->information.externallyDefinedInfo; + + if (z_external && z_external->which == Z_External_userFacets) { + return z_external->u.facetList; + } + return 0; +} + /* Little helper to extract a string attribute */ /* Gets the first string, there is usually only one */ /* in case of errors, returns null */ @@ -167,15 +205,6 @@ void yaz_facet_attr_get_z_attributes(const Z_AttributeList *attributes, return; } /* facetattrs */ - -Z_FacetList *extract_facet_request(ODR odr, Z_OtherInformation *search_input) -{ - Z_FacetList *facet_list = - yaz_oi_get_facetlist_oid(&search_input, odr, - yaz_oid_userinfo_facet_1, 1, 0); - return facet_list; -} - Z_Term *term_create(ODR odr, const char *cstr) { Z_Term *term = odr_malloc(odr, sizeof(*term));