bug fix when transfering fields with multiple values (e.g. checkboxes) to
[webpac] / openisis / ldsp.h
1 /*
2         openisis - an open implementation of the CDS/ISIS database
3         Version 0.8.x (patchlevel see file Version)
4         Copyright (C) 2001-2003 by Erik Grziwotz, erik@openisis.org
5
6         This library is free software; you can redistribute it and/or
7         modify it under the terms of the GNU Lesser General Public
8         License as published by the Free Software Foundation; either
9         version 2.1 of the License, or (at your option) any later version.
10
11         This library is distributed in the hope that it will be useful,
12         but WITHOUT ANY WARRANTY; without even the implied warranty of
13         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14         Lesser General Public License for more details.
15
16         You should have received a copy of the GNU Lesser General Public
17         License along with this library; if not, write to the Free Software
18         Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20         see README for more information
21 EOH */
22 #ifndef LDSP_H
23 #define LDSP_H
24
25 /*
26         $Id: ldsp.h,v 1.4 2003/06/15 15:57:43 mawag Exp $
27         openisis internal request dispatcher interface.
28 */
29
30 /**     server side method for transformation of record fields to utf-8 encoding.
31         @param enc 0-terminated encoding of src; if 0, free src after usage
32         @param src source string
33         @param slen length of src
34         @param dstbuf optional output buffer
35         @param dlen length of dstbuf
36         @param invert if != 0, convert src from utf-8 to enc
37         @return utf-8 representation of src, 0 on error, returned pointer
38                 must be freed if it not equals dstbuf or src
39 */
40 typedef const char* OpenIsisEnc2Utf8Func (const char *enc,
41         const char *src, int slen, char *dstbuf, int dlen, int invert);
42
43 /** pointer to transformation function provided by external environment.
44         transformation is disabled if environment defines no or null
45         transformation function.
46 */
47 extern OpenIsisEnc2Utf8Func *openIsisEnc2Utf8;
48
49 /**     server side method for command evaluation.
50         @param cmd command record
51         @param res address of optional result record
52         @return error code
53 */
54 typedef int OpenIsisEvalFunc (OpenIsisRec *cmd, OpenIsisRec **res);
55
56 /**     pointer to evaluation function provided by external environment.
57         command evaluation is disabled if environment defines no or null
58         evaluation function.
59 */
60 extern OpenIsisEvalFunc *openIsisEval;
61
62 /**     callback for delivering response record.
63 */
64 typedef int LdspDlvCb (OpenIsisRec **rsp, void *cld);
65
66 /**     server side request processing.
67  *      @param rsp optional address where to store response
68 */
69 extern int ldspProcess (
70         OpenIsisRec *rqs, OpenIsisRec **rsp, LdspDlvCb *cb, void *cld);
71
72 #endif /* LDSP_H */
73