YAZ 5.35.1
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
64YAZ_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*/
72YAZ_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*/
83YAZ_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*/
99YAZ_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*/
115YAZ_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
Z_SortKeySpecList * yaz_sort_spec(ODR odr, const char *arg)
parse sort spec string
Definition sortspec.c:23
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
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.