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

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

tidied up windows installation

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