source: trunk/gsdl/src/recpt/historydb.h@ 963

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

gsdlhome now comes from gsdlsite.cfg

  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1/**********************************************************************
2 *
3 * historydb.h --
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: historydb.h 963 2000-02-21 22:01:02Z sjboddie $
25 *
26 *********************************************************************/
27
28
29#ifndef HISTORYDB_H
30#define HISTORYDB_H
31
32#include "infodbclass.h"
33#include "text_t.h"
34#include "recptproto.h"
35#include <map.h>
36
37struct HistRecord {
38 text_t entry;
39 bool save;
40};
41
42struct ltinttext_t
43{
44 bool operator()(const text_t &t1, const text_t &t2) const
45 { return t1.getint() < t2.getint(); }
46};
47
48
49typedef map<text_t, HistRecord, ltinttext_t> HistRecordmap;
50
51// returns true on success (in which case historyinfo will contain
52// the information for this history)
53bool get_history_info (const text_t &userid, text_tarray &historyinfo,
54 const text_t &gsdlhome, ostream &logout);
55
56// returns true on success
57bool set_history_info (const text_t &userid, const text_t &historyinfo,
58 const text_t &gsdlhome);
59
60bool delete_all_history_info (const text_t &userid, const text_t &gsdlhome);
61
62// deletes only the entries specified
63bool delete_history_info(const text_t &userid, const text_t &deletemode,
64 const text_t &selection, const text_t &gsdlhome);
65
66// takes a text_t with x-y, and retrieves the x and y params
67bool get_selection_params (text_t &data, int &start, int &stop);
68
69bool expand_query(HistRecord &query, HistRecordmap &records);
70
71// combine query looks for #x and replaces it with the query
72// string from the xth entry. THe first one looks up the xth
73// query in the database (used before running a query), the
74// second version looks it up inthe records map (used in
75// delete history -are doing a lotof #x replacing at once.
76bool combine_query(text_t &userid, text_t &query, const text_t &gsdlhome);
77bool combine_query(text_t &userid, HistRecordmap &records);
78
79// retrieves the value of an arg (key) from a list of cgi args
80// in the form a=q&b=1&...
81void parse_saved_args(text_t &args, text_t key, text_t &value);
82
83// extracts out the components of an entry in the database
84// currently:
85// querynum:numdocs cgiargs
86void split_saved_query(text_t &query, text_t &querynum, text_t &numdocs, text_t &cgiargs);
87
88// just extracts the query number out of the entry
89void get_query_num(text_t &query, text_t &querynum);
90
91// takes the cgiarg string, and outputs it in some form useful
92// to the user
93void format_user_info (text_t &cgiargs, text_t &info,
94 recptprotolistclass *protos, ostream &logout);
95
96#endif
97
98
Note: See TracBrowser for help on using the repository browser.