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

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

tidied up a bit - fixed a bug (gdbm file wasn't always being closed properly)

  • Property svn:keywords set to Author Date Id Revision
File size: 3.1 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 939 2000-02-17 02:40:21Z 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, ostream &logout);
54
55// returns true on success
56bool set_history_info (const text_t &userid, const text_t &historyinfo);
57
58bool delete_all_history_info (const text_t &userid);
59
60// deletes only the entries specified
61bool delete_history_info(const text_t &userid, const text_t &deletemode,
62 const text_t &selection);
63
64// takes a text_t with x-y, and retrieves the x and y params
65bool get_selection_params (text_t &data, int &start, int &stop);
66
67bool expand_query(HistRecord &query, HistRecordmap &records);
68
69// combine query looks for #x and replaces it with the query
70// string from the xth entry. THe first one looks up the xth
71// query in the database (used before running a query), the
72// second version looks it up inthe records map (used in
73// delete history -are doing a lotof #x replacing at once.
74bool combine_query(text_t &userid, text_t &query);
75bool combine_query(text_t &userid, HistRecordmap &records);
76
77// retrieves the value of an arg (key) from a list of cgi args
78// in the form a=q&b=1&...
79void parse_saved_args(text_t &args, text_t key, text_t &value);
80
81// extracts out the components of an entry in the database
82// currently:
83// querynum:numdocs cgiargs
84void split_saved_query(text_t &query, text_t &querynum, text_t &numdocs, text_t &cgiargs);
85
86// just extracts the query number out of the entry
87void get_query_num(text_t &query, text_t &querynum);
88
89// takes the cgiarg string, and outputs it in some form useful
90// to the user
91void format_user_info (text_t &cgiargs, text_t &info,
92 recptprotolistclass *protos, ostream &logout);
93
94#endif
95
96
Note: See TracBrowser for help on using the repository browser.