1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) Index Data.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
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.
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.
29 \brief Header with public definitions about Solr.
32 #ifndef SOLR_H_INCLUDED
33 #define SOLR_H_INCLUDED
39 /** \brief SOLR transform handle.
40 The transform describes how to convert from SOLR to PQF (Type-1 AKA RPN).
42 typedef struct cql_transform_t_ *solr_transform_t;
44 /** \brief creates a SOLR transform handle
45 \returns transform handle or NULL for failure
48 solr_transform_t solr_transform_create(void);
50 /** \brief creates a SOLR transform handle from am opened file handle
51 \param f file where transformation spec is read
52 \returns transform handle or NULL for failure
54 The transformation spec is read from a FILE handle which is assumed
58 solr_transform_t solr_transform_open_FILE(FILE *f);
60 /** \brief creates a SOLR transform handle from a file
61 \param fname name of where transformation spec is read
62 \returns transform handle or NULL for failure
65 solr_transform_t solr_transform_open_fname(const char *fname);
68 /** \brief defines SOLR transform pattern
69 \param ct SOLR transform handle
70 \param pattern pattern string
71 \param value pattern value
72 \returns 0 for succes; -1 for failure
75 int solr_transform_define_pattern(solr_transform_t ct, const char *pattern,
78 /** \brief destroys a SOLR transform handle
79 \param ct SOLR transform handle
82 void solr_transform_close(solr_transform_t ct);
84 /** \brief returns additional information for last transform
85 \param ct SOLR transform handle
86 \param addinfo additional info (result)
90 int solr_transform_error(solr_transform_t ct, const char **addinfo);
92 /** \brief sets error and addinfo for transform
93 \param ct SOLR transform handle
94 \param error error code
95 \param addinfo additional info
98 void solr_transform_set_error(solr_transform_t ct, int error, const char *addinfo);
103 /* SOLR_H_INCLUDED */
107 * c-file-style: "Stroustrup"
108 * indent-tabs-mode: nil
110 * vim: shiftwidth=4 tabstop=8 expandtab