YAZ  5.34.0
sortspec.h
Go to the documentation of this file.
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 
32 #ifndef SORTSPEC_H
33 #define SORTSPEC_H
34 
35 #include <yaz/yconfig.h>
36 #include <yaz/wrbuf.h>
37 #include <yaz/z-core.h>
38 
40 
64 YAZ_EXPORT Z_SortKeySpecList *yaz_sort_spec(ODR odr, const char *arg);
65 
66 /* \brief converts SortKeySpecList to CQL sortby string
67  \param sksl SortKeySpecList
68  \param w resulting CQL SORTBY string (of string to be appended)
69  \retval 0 successful
70  \retval -1 failure
71 */
72 YAZ_EXPORT int yaz_sort_spec_to_cql(Z_SortKeySpecList *sksl, WRBUF w);
73 
74 /* \brief adds PQF type-7 sorting to existing PQF from SortKeySpecList
75  \param sksl SortKeySpecList
76  \param w original PQF (without the Type-7)
77  \retval 0 successful
78  \retval -1 failure
79 
80  If successful, the pqf WRBUF holds the new PQF including the Type-7
81  part.
82 */
83 YAZ_EXPORT int yaz_sort_spec_to_type7(Z_SortKeySpecList *sksl, WRBUF pqf);
84 
85 /* \brief converts Z39.50 SortKeySpecList to SRU 1.1 sort key
86  \param sksl SortKeySpecList
87  \param w resulting sortkey will be appended to this
88  \retval 0 successful
89  \retval -1 failure
90 */
92 
93 /* \brief converts SRU/SRW 1.1 sortkeys to Z39.50 sortspec (WRBUF)
94  \param srw_sortkeys SRU sortkeys string
95  \param w resulting Z39.50 sortspec, WRBUF string
96  \retval 0 successful
97  \retval -1 failure
98 */
99 YAZ_EXPORT int yaz_srw_sortkeys_to_sort_spec(const char *srw_sortkeys, WRBUF w);
100 
101 /* \brief converts Z39.50 SortKeySpecList to Solr sort key
102  \param sksl SortKeySpecList
103  \param w resulting sortkey will be appended to this
104  \retval 0 successful
105  \retval -1 failure
106 */
108 
109 /* \brief converts Solr sortkeys to Z39.50 sortspec (WRBUF)
110  \param srw_sortkeys Solr sortkeys string
111  \param w resulting Z39.50 sortspec, WRBUF string
112  \retval 0 successful
113  \retval -1 failure
114 */
115 YAZ_EXPORT int yaz_solr_sortkeys_to_sort_spec(const char *srw_sortkeys, WRBUF w);
116 
118 
119 #endif
120 
121 /*
122  * Local variables:
123  * c-basic-offset: 4
124  * c-file-style: "Stroustrup"
125  * indent-tabs-mode: nil
126  * End:
127  * vim: shiftwidth=4 tabstop=8 expandtab
128  */
129 
int yaz_sort_spec_to_type7(Z_SortKeySpecList *sksl, WRBUF pqf)
Definition: sortspec.c:190
int yaz_solr_sortkeys_to_sort_spec(const char *srw_sortkeys, WRBUF w)
Definition: sortspec.c:392
int yaz_srw_sortkeys_to_sort_spec(const char *srw_sortkeys, WRBUF w)
Definition: sortspec.c:333
int yaz_sort_spec_to_solr_sortkeys(Z_SortKeySpecList *sksl, WRBUF w)
Definition: sortspec.c:297
int yaz_sort_spec_to_srw_sortkeys(Z_SortKeySpecList *sksl, WRBUF w)
Definition: sortspec.c:237
Z_SortKeySpecList * yaz_sort_spec(ODR odr, const char *arg)
parse sort spec string
Definition: sortspec.c:23
int yaz_sort_spec_to_cql(Z_SortKeySpecList *sksl, WRBUF w)
Definition: sortspec.c:135
Definition: odr.h:125
string buffer
Definition: wrbuf.h:43
Header for WRBUF (growing buffer)
Header with fundamental macros.
#define YAZ_BEGIN_CDECL
Definition: yconfig.h:56
#define YAZ_END_CDECL
Definition: yconfig.h:57
ASN.1 Module Z39-50-APDU-1995.