1 /* This file is part of the YAZ toolkit. 2 * Copyright (C) Index Data. 3 * All rights reserved. 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are met: 6 * 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * * Neither the name of Index Data nor the names of its contributors 13 * may be used to endorse or promote products derived from this 14 * software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 /** \file 29 \brief Header for RPN to SOLR tranform 30 */ 31 32 #ifndef RPN2SOLR_H_INCLUDED 33 #define RPN2SOLR_H_INCLUDED 34 #include <yaz/z-core.h> 35 #include <yaz/solr.h> 36 #include <yaz/wrbuf.h> 37 38 YAZ_BEGIN_CDECL 39 40 /** \brief transforms RPN query to SOLR output stream (re-entrant) 41 \param ct SOLR transform handle 42 \param addinfo additional info on error 43 \param pr print function 44 \param client_data opaque data to be passed to print handler 45 \param q RPN Query 46 \retval 0 success 47 \retval !=0 failure (error code) 48 */ 49 YAZ_EXPORT 50 int solr_transform_rpn2solr_stream_r(solr_transform_t ct, 51 WRBUF addinfo, 52 void (*pr)(const char *buf, void *client_data), 53 void *client_data, 54 Z_RPNQuery *q); 55 56 /** \brief transforms RPN query to SOLR output stream (NOT re-entrant) 57 \param ct SOLR transform handle 58 \param pr print function 59 \param client_data opaque data to be passed to print handler 60 \param q RPN Query 61 \retval 0 success 62 \retval !=0 failure (error code) 63 */ 64 YAZ_EXPORT 65 int solr_transform_rpn2solr_stream(solr_transform_t ct, 66 void (*pr)(const char *buf, void *client_data), 67 void *client_data, 68 Z_RPNQuery *q); 69 70 71 /** \brief transforms RPN query to SOLR WRBUF 72 \param ct SOLR transform handle 73 \param w WRBUF handle for result 74 \param q RPN Query 75 \retval 0 success 76 \retval !=0 failure (error code) 77 */ 78 YAZ_EXPORT 79 int solr_transform_rpn2solr_wrbuf(solr_transform_t ct, 80 WRBUF w, 81 Z_RPNQuery *q); 82 83 /** \brief find a pattern that has a subset of attributes 84 \param ct SOLR transform handle 85 \param category pattern category 86 \param attributes RPN attributes 87 \returns pattern value or NULL if not found 88 */ 89 YAZ_EXPORT 90 const char *solr_lookup_reverse(solr_transform_t ct, 91 const char *category, 92 Z_AttributeList *attributes); 93 94 YAZ_END_CDECL 95 96 #endif 97 /* SOLR_H_INCLUDED */ 98 /* 99 * Local variables: 100 * c-basic-offset: 4 101 * c-file-style: "Stroustrup" 102 * indent-tabs-mode: nil 103 * End: 104 * vim: shiftwidth=4 tabstop=8 expandtab 105 */ 106 107