New suggestions result
[yaz-moved-to-github.git] / include / yaz / facet.h
index ba797d0..2ff9bc1 100644 (file)
@@ -1,3 +1,34 @@
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data.
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Index Data nor the names of its contributors
+ *       may be used to endorse or promote products derived from this
+ *       software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * \file facet.h
+ * \brief Header for the facet utilities
+ */
 
 #ifndef YAZ_FACET_H
 #define YAZ_FACET_H
 
 YAZ_BEGIN_CDECL
 
-
 /*
  * Helper function for extracting facet values from the ASN structures.
  *
  */
 
-/* A helper structure to extract all the attribute stuff
-   from one Z_AttributesList. The pointers will all be to
+/** A helper structure to extract all the attribute stuff
+   from one Z_AttributesList for facets. The pointers will all be to
    the Z-structures, or to constants, so there is no need to
    worry about freeing them */
-struct attrvalues {
+struct yaz_facet_attr {
     int  errcode;   /* set in case of errors */
     char *errstring; /* opt */
     const char *useattr; /* @attr 1, from a string attr */
@@ -32,43 +62,45 @@ struct attrvalues {
 };
 
 YAZ_EXPORT
-void facet_struct_init(struct attrvalues *attr_values);
-
-/* Use attribute, @attr1, can be numeric or string */
-YAZ_EXPORT
-void useattr ( Z_AttributeElement *ae, struct attrvalues *av );
-
-YAZ_EXPORT
-void relationattr ( Z_AttributeElement *ae, struct attrvalues *av );
+void yaz_facet_attr_init(struct yaz_facet_attr *attr_values);
 
 YAZ_EXPORT
-void limitattr ( Z_AttributeElement *ae, struct attrvalues *av );
+void yaz_facet_attr_get_z_attributes(const Z_AttributeList *attributes,
+                                    struct yaz_facet_attr *av);
 
 YAZ_EXPORT
-void limitattr ( Z_AttributeElement *ae, struct attrvalues *av );
+Z_FacetTerm *facet_term_create_cstr(ODR odr, const char *cstr, Odr_int freq);
 
 YAZ_EXPORT
-void facetattrs( Z_AttributeList *attributes, struct attrvalues *av );
+Z_FacetField* facet_field_create(ODR odr, Z_AttributeList *attributes,
+                                int num_terms);
 
 YAZ_EXPORT
-Z_FacetList *extract_facet_request(ODR odr, Z_OtherInformation *search_input);
+void facet_field_term_set(ODR odr, Z_FacetField *field,
+                         Z_FacetTerm *facetTerm, int index);
 
 YAZ_EXPORT
-Z_Term *term_create(ODR odr, const char *cstr);
+Z_FacetList* facet_list_create(ODR odr, int num_facets);
 
 YAZ_EXPORT
-Z_FacetTerm* facet_term_create(ODR odr, Z_Term *term, int freq);
-
+void facet_list_field_set(ODR odr, Z_FacetList *list, Z_FacetField *field,
+                         int index);
 YAZ_EXPORT
-Z_FacetField* facet_field_create(ODR odr, Z_AttributeList *attributes, int num_terms);
+void yaz_oi_set_facetlist(
+    Z_OtherInformation **otherInformation, ODR odr, Z_FacetList *facet_list);
 
 YAZ_EXPORT
-void facet_field_term_set(ODR odr, Z_FacetField *field, Z_FacetTerm *facetTerm, int index);
+Z_FacetList *yaz_oi_get_facetlist(Z_OtherInformation **otherInformation);
 
-YAZ_EXPORT
-Z_FacetList* facet_list_create(ODR odr, int num_facets);
-
-YAZ_EXPORT
-void facet_list_field_set(ODR odr, Z_FacetList *list, Z_FacetField *field, int index);
+YAZ_END_CDECL
 
 #endif
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+