source: trunk/gsdl/src/recpt/cgiutils.h@ 776

Last change on this file since 776 was 776, checked in by sjboddie, 24 years ago

added multiplevalue option to cgiarginfo

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1/**********************************************************************
2 *
3 * cgiutils.h -- general cgi utilities
4 * Copyright (C) 1999 The New Zealand Digital Library Project
5 *
6 * A component of the Greenstone digital library software
7 * from the New Zealand Digital Library Project at the
8 * University of Waikato, New Zealand.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 * $Id: cgiutils.h 776 1999-11-08 20:26:38Z sjboddie $
25 *
26 *********************************************************************/
27
28
29#ifndef CGIUTILS_H
30#define CGIUTILS_H
31
32#include "gsdlconf.h"
33#include "text_t.h"
34#include "cgiargs.h"
35
36
37// convert %xx and + to their appropriate equivalents
38void decode_cgi_arg (text_t &argstr);
39
40// split up the cgi arguments
41void split_cgi_args (const cgiargsinfoclass &argsinfo, text_t argstr,
42 cgiargsclass &args);
43
44// turns any '-' in a cgi argument into "(-)"
45text_t minus_safe (const text_t &intext);
46
47// returns the encoded version of a cgi argument
48text_t cgi_safe (const text_t &intext);
49
50// check_save_conf_str checks the configuration string for
51// the saved args and makes sure it does not conflict with
52// the information about the arguments. If an error is encountered
53// it will return false and the program should not produce any
54// output.
55bool check_save_conf_str (const text_t &saveconf,
56 const cgiargsinfoclass &argsinfo,
57 ostream &logout);
58
59// create_save_conf_str will create a configuration string
60// based on the information in argsinfo. This method of configuration
61// is not recomended as small changes can produce large changes in
62// the resulting configuration string (for instance a totally different
63// ordering). Only arguments which "must" be saved are included in
64// the resulting string.
65text_t create_save_conf_str (const cgiargsinfoclass &argsinfo,
66 ostream &logout);
67
68// expand_compress_args will expand the compressed arguments based
69// on compressconf placing the results in args if they are not
70// already defined. If it encounters an error it will return false
71// and output more information to logout.
72bool expand_save_args (const cgiargsinfoclass &argsinfo,
73 const text_t &saveconf,
74 cgiargsclass &args,
75 ostream &logout);
76
77// adds the default values for those arguments which have not
78// been specified
79void add_default_args (const cgiargsinfoclass &argsinfo,
80 cgiargsclass &args,
81 ostream &logout);
82
83// compress_save_args will compress the arguments and return
84// them in compressed_args. If an error was encountered
85// compressed_args will be set to to "", an error will be
86// written to logout, and the function will return false.
87bool compress_save_args (const cgiargsinfoclass &argsinfo,
88 const text_t &saveconf,
89 cgiargsclass &args,
90 text_t &compressed_args,
91 outconvertclass &outconvert,
92 ostream &logout);
93
94// args_tounicode converts any arguments which are not in unicode
95// to unicode using inconvert
96void args_tounicode (cgiargsclass &args, inconvertclass &inconvert);
97
98#endif
Note: See TracBrowser for help on using the repository browser.