Annotation of libwww/Library/src/HTAccess.html, revision 2.4
1.1 timbl 1: <PRE>
2: /* Access Manager HTAccess.h
3: ** ==============
4: **
5: ** This module keeps a list of valid protocol (naming scheme) specifiers
6: ** with associated access code. It allows documents to be loaded given
7: ** various combinations of parameters.
8: **
9: ** New access protocols may be registered at any time.
10: **
11: */
12:
13: #ifndef HTACCESS_H
14: #define HTACCESS_H
15:
16: /* Definition uses:
17: */
18: #include "HTUtils.h"
19: #include "tcp.h"
20: #include "HTAnchor.h"
21: #include "HTFormat.h"
22:
23: #ifdef SHORT_NAMES
24: #define HTClientHost HTClHost
25: #endif
26:
27: /* Return codes from load routines:
28: **
29: ** These codes may be returned by the protocol modules,
30: ** and by the HTLoad routines.
31: ** In general, positive codes are OK and negative ones are bad.
32: */
33:
34: #define HT_NO_DATA -9999 /* return code: OK but no data was loaded */
35: /* Typically, other app started or forked */
36:
37: /* Default Addresses */
38: /* ================= */
39:
40: #define LOGICAL_DEFAULT "WWW_HOME" /* Defined to be the home page */
41:
42:
43: #ifndef LOCAL_DEFAULT
44: #define LOCAL_DEFAULT "file:/usr/local/lib/WWW/default.html"
45: #define LOCAL_DEFAULT_FILE "/usr/local/lib/WWW/default.html"
46: #define REMOTE_ADDRESS "http://info.cern.ch/remote.html" /* can't be file */
47: #endif
48:
49: /* If run from telnet daemon and no -l specified, use this file:
50: */
51: #ifndef DEFAULT_LOGFILE
52: #define DEFAULT_LOGFILE "/usr/adm/www-log/www-log"
53: #endif
54:
55: /* If the home page isn't found, use this file:
56: */
57: #ifndef LAST_RESORT
58: #define LAST_RESORT "http://info.cern.ch:80/default.html"
59: #endif
60:
61:
62: /* Flags which may be set to control this module
63: */
64: extern int HTDiag; /* Flag: load source as plain text */
65: extern char * HTClientHost; /* Name or number of telnetting host */
66: extern FILE * logfile; /* File to output one-liners to */
67: extern HTStream* HTOutputStream; /* For non-interactive, set this */
68: extern HTFormat HTOutputFormat; /* To convert on load, set this */
69:
70:
71: /* Load a document
72: ** ---------------
73: **
74: ** On Entry,
75: ** anchor is the node_anchor for the document
76: ** full_address The address of the document to be accessed.
77: ** filter if YES, treat stdin as HTML
78: **
79: ** On Exit,
80: ** returns YES Success in opening document
81: ** NO Failure
82: **
83: */
84:
85: #ifdef NOT_USED
86: extern BOOL HTLoadDocument PARAMS((HTParentAnchor * anchor,
87: CONST char * full_address,
88: BOOL filter,
89: HTStream* sink));
90: #endif
91:
92:
93: /* Load a document from relative name
94: ** ---------------
95: **
96: ** On Entry,
97: ** relative_name The relative address of the file to be accessed.
98: ** here The anchor of the object being searched
99: **
100: ** On Exit,
101: ** returns YES Success in opening file
102: ** NO Failure
103: **
104: **
105: */
106:
107: extern BOOL HTLoadRelative PARAMS((
108: CONST char * relative_name,
109: HTParentAnchor * here));
110:
111:
112: /* Load a document from absolute name
113: ** ---------------
114: **
115: ** On Entry,
116: ** addr The absolute address of the document to be accessed.
117: ** filter if YES, treat document as HTML
118: **
119: ** On Exit,
120: ** returns YES Success in opening document
121: ** NO Failure
122: **
123: ** Note: This is equivalent to HTLoadDocument
124: */
125:
126: extern BOOL HTLoadAbsolute PARAMS((CONST char * addr));
127:
128:
129: /* Load a document from absolute name to a stream
130: ** ---------------
131: **
132: ** On Entry,
133: ** addr The absolute address of the document to be accessed.
134: ** filter if YES, treat document as HTML
135: **
136: ** On Exit,
137: ** returns YES Success in opening document
138: ** NO Failure
139: **
140: ** Note: This is equivalent to HTLoadDocument
141: */
142:
143: extern BOOL HTLoadToStream PARAMS((CONST char * addr, BOOL filter,
144: HTStream * sink));
145:
146:
147: /* Load if necessary, and select an anchor
148: ** --------------------------------------
149: **
150: ** On Entry,
151: ** destination The child or parenet anchor to be loaded.
152: **
153: ** On Exit,
154: ** returns YES Success
155: ** NO Failure
156: **
157: */
158:
159: extern BOOL HTLoadAnchor PARAMS((HTAnchor * destination));
160:
161:
162: /* Make a stream for Saving object back
163: ** ------------------------------------
164: **
165: ** On Entry,
166: ** anchor is valid anchor which has previously beeing loaded
167: ** On exit,
168: ** returnes 0 if error else a stream to save the object to.
169: **
170: */
171: extern HTStream * HTSaveStream PARAMS((HTParentAnchor * anchor));
172:
173:
174: /* Search
175: ** ------
176: ** Performs a search on word given by the user. Adds the search words to
177: ** the end of the current address and attempts to open the new address.
178: **
179: ** On Entry,
180: ** *keywords space-separated keyword list or similar search list
181: ** here The anchor of the object being searched
182: */
183:
184: extern BOOL HTSearch PARAMS((CONST char * keywords, HTParentAnchor* here));
185:
186:
187: /* Search Given Indexname
188: ** ------
189: ** Performs a keyword search on word given by the user. Adds the keyword to
190: ** the end of the current address and attempts to open the new address.
191: **
192: ** On Entry,
193: ** *keywords space-separated keyword list or similar search list
194: ** *addres is name of object search is to be done on.
195: */
196:
197: extern BOOL HTSearchAbsolute PARAMS((
198: CONST char * keywords,
199: CONST char * indexname));
200:
201:
202: /* Register an access method
203: ** -------------------------
204: */
205:
206: typedef struct _HTProtocol {
207: char * name;
208:
209: int (*load)PARAMS((
210: CONST char * full_address,
211: HTParentAnchor * anchor,
212: HTFormat format_out,
213: HTStream* sink));
214:
215: HTStream* (*saveStream)PARAMS((HTParentAnchor * anchor));
216:
217: } HTProtocol;
218:
219: extern BOOL HTRegisterProtocol PARAMS((HTProtocol * protocol));
220:
221:
222: /* Generate the anchor for the home page
223: ** -------------------------------------
224: **
225: ** As it involves file access, this should only be done once
226: ** when the program first runs.
227: ** This is a default algorithm -- browser don't HAVE to use this.
228: **
229: */
230: extern HTParentAnchor * HTHomeAnchor NOPARAMS;
231:
232: #endif /* HTACCESS_H */
233: </PRE>
Webmaster