X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fsortspec.h;h=eb2ccddec5584a900b340cca5dd9371c4158ee98;hp=909f3b1a6e054cd720df5e9934c0619b1d5975d9;hb=9b2f4955aee1fcee3702bcd832dbaf7fca7243ad;hpb=88d3bedf772316f87e1996f655ccf8d1e2589755 diff --git a/include/yaz/sortspec.h b/include/yaz/sortspec.h index 909f3b1..eb2ccdd 100644 --- a/include/yaz/sortspec.h +++ b/include/yaz/sortspec.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data. + * 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: @@ -33,11 +33,54 @@ #define SORTSPEC_H #include -#include +#include +#include YAZ_BEGIN_CDECL -YAZ_EXPORT Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg); +/** \brief parse sort spec string + \param odr memory for result + \param arg sort spec string + \returns Z39.50 SortKeySpecList or NULL on error + + The sort spec list is of the form: + (field flags)+ + where field is either a string or one or more attribute pairs + key=value (there must be no blanks in either field of flags). + flags is a character list: + dD> : descending + aA< : ascending (default) + iI : ignoreccase / case-insensitive (default) + sS : respectcase / case-sensitive + ! : abort of key is omitted in result + =value : missing value + + Examples: + + title a + + 1=4 ia 1=1003 sd +*/ +YAZ_EXPORT Z_SortKeySpecList *yaz_sort_spec(ODR odr, const char *arg); + +/* \brief converts SortKeySpecList to CQL sortby string + \param sksl SortKeySpecList + \param w resulting CQL SORTBY string (of string to be appended) + \retval 0 successful + \retval -1 failure +*/ +YAZ_EXPORT int yaz_sort_spec_to_cql(Z_SortKeySpecList *sksl, WRBUF w); + +/* \brief adds PQF type-7 sorting to existing PQF from SortKeySpecList + \param sksl SortKeySpecList + \param w original PQF (without the Type-7) + \retval 0 successful + \retval -1 failure + + If successful, the pqf WRBUF holds the new PQF including the Type-7 + part. +*/ +YAZ_EXPORT int yaz_sort_spec_to_type7(Z_SortKeySpecList *sksl, WRBUF pqf); YAZ_END_CDECL