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