1 /*
2 
3 
4   					W3C Sample Code Library libwww Core Interface
5 
6 
7 !
8   Declaration of W3C Sample Code Library Core Interface
9 !
10 */
11 
12 /*
13 **	(c) COPYRIGHT MIT 1995.
14 **	Please first read the full copyright statement in the file COPYRIGH.
15 */
16 
17 /*
18 
19 This is the basic include file for the core of the W3C Sample Code Library.
20 The core part of the Library is designed as a set of registration modules
21 with no real functionality in itself. Instead all the functionality comes
22 when the application registeres the modules that provides a desired functionaly,
23 for example accessing HTTP servers or the local file system. The Library
24 has a special include file called WWWApp.h which
25 contains all converters, protocol modules, and a lot of other "sugar" modules
26 that can make the core a very powerful Web interface. You can include this
27 one if the application is to use all the functionality of the Library.
28 */
29 
30 #ifndef WWWCORE_H
31 #define WWWCORE_H
32 
33 /*
34 */
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /*
41 (
42   System dependencies
43 )
44 
45 The wwwsys.h file includes system-specific include
46 files and flags for I/O to network and disk. The only reason for this file
47 is that the Internet world is more complicated than Posix and ANSI.
48 */
49 #include "wwwsys.h"
50 
51 /*
52 (
53   Generic Libwww Information
54 )
55 
56 This module contains some generic functions for getting the name and version
57 of libwww. It also contains some global configuration options like if you
58 can access the local file system, for example.
59 */
60 #include "HTLib.h"
61 
62 /*
63 (
64   The Request Class
65 )
66 
67 Libwww is based on a request/response paradigm and the Request class defines
68 "an operation to be performed on a URL". The request object is the
69 main entry point for an application to issue a request to the Library - all
70 operations on a URL must use a Request object.
71 */
72 
73 #include "HTReq.h"
74 
75 /*
76 (
77   Request Methods
78 )
79 
80 This module defines the set of methods that you can perform on a request,
81 for example GET, HEAD, PUT, POST, DELETE,
82 etc.
83 */
84 
85 #include "HTMethod.h"
86 
87 /*
88 (
89   The Anchor (URL) Class
90 )
91 
92 An anchor represents a region of a hypertext
93 document which is linked to another anchor in the same or a different document.
94 Another name for anchors would be URLs as an anchor represents all we know
95 about a URL - including where it points to and who points to it.
96 */
97 #include "HTAnchor.h"
98 
99 /*
100 (
101   The Link Class
102 )
103 
104 A Link represents the link between anchor objects.
105 By keeping the link as a object and not as part of the anchor we are capable
106 of handling link semantics in a much more organized way. For example, we
107 can then search for link types among all the link objects that we have created.
108 */
109 #include "HTLink.h"
110 
111 /*
112 (
113   Parsing URLs
114 )
115 
116 This module contains code to parse URIs for the various components according
117 to the URI syntax
118 */
119 
120 #include "HTParse.h"
121 
122 /*
123 (
124   Escaping and Unescaping URLs
125 )
126 
127 URLs are written only with the graphic printable characters of the US-ASCII
128 coded character set. All other characters must be escaped before they can
129 be used in URLs. This module defines the methods required for escaping and
130 unescaping the URLs.
131 */
132 
133 #include "HTEscape.h"
134 
135 /*
136 (
137   URL Trees and Hierarchies
138 )
139 
140 A URL tree is a data class that can store all
141 the information we know about a URL hierarchy. Typically, a URL hierarchy
142 is what a client sees of a Web server but it can also be the view a server
143 has of itself. A URL tree has the advantage that it can be searched using
144 URLs or using realms. The letter is most useful to "guess" information
145 about a remote URL that we haven't seen before.
146 */
147 
148 #include "HTUTree.h"
149 
150 /*
151 (
152   Web Related String Functions
153 )
154 
155 This module is like the generic string utility
156 module but it contains more Web related string utility functions. Examples
157 are functions that return a date string, a Message ID string
158 etc.
159 */
160 
161 #include "HTWWWStr.h"
162 
163 /*
164 (
165   The User Profile Class
166 )
167 
168 The User profile class manages what we know about a user on this
169 host. This can for example be the FQDN of the host, the user's email
170 address, the time zone, the news server etc.
171 */
172 
173 #include "HTUser.h"
174 
175 /*
176 (
177   The Event Class
178 )
179 
180 The Event Class defines any event manager to be used by libwww for handling
181 events.
182 */
183 
184 #include "HTEvent.h"
185 
186 /*
187 (
188   The Network Trace Handler
189 )
190 
191 The Network Trace Handler provides an easy mechanism
192 for tracing memory problems. It gives a complete dump of all read and written
193 information to and from the network
194 */
195 
196 #include "HTMemLog.h"
197 
198 /*
199 (
200   The Error Class
201 )
202 
203 The Error class provides an easy API for registering
204 errors ocurring while the Library serves a request. All errors are registered
205 in an "error stack" in the Request object which
206 allows for nested errors.
207 */
208 
209 #include "HTError.h"
210 
211 /*
212 (
213   The Alert Class
214 )
215 
216 The Alert class defines a set of methods to be
217 used by libwww to be used for passing prompts and message to a user.
218 */
219 
220 #include "HTAlert.h"
221 
222 /*
223 (
224   The Format Manager
225 )
226 
227 The Format Manager is responsible for setting up the stream pipe from the
228 Channel Object to the Request
229 Object when data is arriving, for example as a response to s
230 HTTP Get request. The Format Manager is also
231 responsible for keeping track of the "preferences" of the application
232 and/or user. It is an integral part of the Web and HTTP, that the client
233 application can express its preferences as a set of "accept" headers in a
234 HTTP request.
235 */
236 
237 #include "HTFormat.h"
238 
239 /*
240 (
241   The Generic Stream Class
242 )
243 
244 The Stream class defines objects which accepts
245 a sequence of characters. Streams may also have an output in which case multiple
246 stream objects can be cascaded to build a stream pipe where the output of
247 a stream is directed into the input of the next stream object "down the line".
248 */
249 
250 #include "HTStream.h"
251 
252 /*
253 (
254   The Structured Stream Class
255 )
256 
257 The Structured stream class defines objects which
258 accepts a structured sequence of characters for eaxmple a SGML document.
259 I'll rephrase that. A structured object is am ordered tree-structured arrangement
260 of data which is representable as text. An example is the
261 SGML parser which outputs to a Structured Object.
262 */
263 
264 #include "HTStruct.h"
265 
266 /*
267 (
268   No Free Stream
269 )
270 
271 This stream is a throughline for all methods except FREE and
272 ABORT. This means that it can be use to put ahead of streams that you
273 don't want to be freed or aborted until you are redy to do it
274 yourself.
275 */
276 
277 #include "HTNoFree.h"
278 
279 /*
280 (
281   The Input/output Stream Classes
282 )
283 
284 The I/O Stream class defines objects which
285 accepts a sequence of characters to and from a
286 transport
287 */
288 
289 #include "HTIOStream.h"
290 
291 /*
292 (
293   The DNS Class
294 )
295 
296 The DNS Class defines generic access to  the DNS system. It maintains
297 a cache of all visited hosts so that subsequent connects to the same host
298 doesn't imply a new request to the DNS every time.
299 */
300 
301 #include "HTDNS.h"
302 
303 /*
304 (
305   The Host Class
306 )
307 
308 The Host class manages what we know about a remote
309 host. This can for example be what type of host it is, and what version it
310 is using.
311 */
312 
313 #include "HTHost.h"
314 
315 /*
316 (
317   The Net Class
318 )
319 
320 The Net class manages information related to a "thread"
321 in libwww. As libwww threads are not really threads but a notion of using
322 interleaved, non-blocking I/O for accessing data objects from the network
323 (or local file system), they can be used on any platform with or without
324 support for native threads.
325 */
326 
327 #include "HTNet.h"
328 
329 /*
330 (
331   Internet Functions
332 )
333 
334 This module has the common code for handling typical Internet functions like
335 getting the name of the local host, getting the domain name and email address
336 of user etc.
337 */
338 
339 #include "HTInet.h"
340 
341 /*
342 (
343   The Transport Class
344 )
345 
346 The Transport Class defines a transport as used by the
347 HTChannel class to communicate with the network,
348 the local file system etc. New transport objects may be registered at any
349 time. This allows the application to easily hook in its own transport layers.
350 */
351 
352 #include "HTTrans.h"
353 
354 /*
355 (
356   The Protocol Class
357 )
358 
359 The Protocol class defines an application level protocol (HTTP, FTP, Gopher,
360 etc.) to be used by libwww. Please note that access to the local file system
361 also is considered to be an appliaction level protocol treated identically
362 to for example the HTTP protocol.
363 */
364 
365 #include "HTProt.h"
366 
367 /*
368 
369 End of Core modules
370 */
371 
372 #ifdef __cplusplus
373 } /* end extern C definitions */
374 #endif
375 
376 #endif
377 
378 /*
379 
380 
381 
382   @(#) $Id$
383 
384 */
385