Moved zebrautl.h to idzebra/util.h.
[idzebra-moved-to-github.git] / include / idzebra / util.h
1 /* $Id: util.h,v 1.1 2005-03-30 09:25:23 adam Exp $
2    Copyright (C) 1995-2005
3    Index Data ApS
4
5 This file is part of the Zebra server.
6
7 Zebra is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Zebra; see the file LICENSE.zebra.  If not, write to the
19 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.
21 */
22
23 #ifndef ZEBRA_UTIL_H
24 #define ZEBRA_UTIL_H
25
26 #include <yaz/yaz-util.h>
27
28 #include <idzebra/version.h>
29
30 /* check that we don't have all too old yaz */
31 #ifndef YLOG_ERRNO
32 #error Need a modern yaz with YLOG_ defines
33 #endif
34
35 YAZ_BEGIN_CDECL
36
37 #ifdef __GNUC__
38 typedef long long int zint;
39 #define ZINT_FORMAT "%lld"
40 #define ZINT_FORMAT0 "lld"
41 #else
42 #ifdef WIN32
43 typedef __int64 zint;
44 #define ZINT_FORMAT "%I64d"
45 #define ZINT_FORMAT0 "I64d"
46 #else
47 typedef long zint;
48 #define ZINT_FORMAT "%ld"
49 #define ZINT_FORMAT0 "ld"
50 #endif
51 #endif
52
53 typedef zint SYSNO;
54
55 YAZ_EXPORT
56 zint atoi_zn (const char *buf, zint len);
57
58 YAZ_EXPORT
59 void zebra_zint_encode(char **dst, zint pos);
60
61 YAZ_EXPORT
62 void zebra_zint_decode(const char **src, zint *pos);
63
64 YAZ_END_CDECL
65
66 #define CAST_ZINT_TO_INT(x) (int)(x)
67 #define CAST_ZINT_TO_DOUBLE(x) (double)(x)
68
69 #endif