-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlinkfol.h
62 lines (55 loc) · 1.75 KB
/
linkfol.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
Access Gateway - a mediator for the World Wide Web
(C) 1998-2006 Silas S. Brown http://ssb22.user.srcf.net
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef ALLINC_H
#define ALLINC_H
#include "allinc.h"
#endif
// This "allinc.h" fragment is also in "notice.txt" (copied
// to top of every file on release), just in case forget to
// put it in some file
// Also, need to put this HERE (not in include file) for
// Monash:
#ifdef __GNUC__
#if (__GNUC__ > 2)
using namespace std;
#endif
#else
// Unknown compiler - assume it's standard
using namespace std;
#endif
// end of notice.txt
#ifndef LINKFOL_H
#define LINKFOL_H
#include "cgilib.h"
#include "strtab.h"
#ifndef ACCESS_H
struct AccessOptions;
#endif
/// A class for automatic link following
class LinkFollow {
public:
LinkFollow(const char* keyword) { theKeyword=keyword; theOpenPos=0L; }
~LinkFollow() {};
void setStartOfLink(const CGIEnvironment* c,const char* href);
void setEndOfLink(CGIEnvironment* c,struct AccessOptions* ao);
static void addURL(const char* href) { urlsAlreadyHad.addLine(href,""); }
protected:
int notHadAlready();
const char* theKeyword;
char* theHref;
long theOpenPos;
static StringTable urlsAlreadyHad; // might as well have StringTable
// (wouldn't like to risk whether all the mirrors support the STL)
};
#endif