Annotation of libwww/Library/src/WWWCore.html, revision 2.11
2.1 frystyk 1: <HTML>
2: <HEAD>
2.11 ! frystyk 3: <!-- Changed by: Henrik Frystyk Nielsen, 18-May-1996 -->
2.10 frystyk 4: <TITLE>W3C Reference Library libwww CORE</TITLE>
2.1 frystyk 5: </HEAD>
6: <BODY>
2.10 frystyk 7: <H1>
8: Declaration of W3C Reference Library CORE
9: </H1>
2.1 frystyk 10: <PRE>
11: /*
12: ** (c) COPYRIGHT MIT 1995.
13: ** Please first read the full copyright statement in the file COPYRIGH.
14: */
15: </PRE>
2.10 frystyk 16: <P>
17: This is the basic include file for the core of the W3C Reference Library.
18: The core part of the Library is designed as a set of registration modules
19: with no real functionality in itself. Instead all the functionality comes
20: when the applciation registeres the modules that provides a desired functionaly,
21: for example accessing HTTP servers or the local file system. The Library
22: has a special include file called <A HREF="WWWApp.html">WWWApp.h</A> which
23: contains all converters, protocol modules, and a lot of other "sugar" modules
24: that can make the core a very powerful Web interface. You can include this
25: one if the application is to use all the functionality of the Library.
2.1 frystyk 26: <PRE>
27: #ifndef WWWCORE_H
28: #define WWWCORE_H
29: </PRE>
30: <PRE>
2.8 frystyk 31: #ifdef __cplusplus
32: extern "C" {
33: #endif
2.1 frystyk 34: </PRE>
2.11 ! frystyk 35: <H3>
2.10 frystyk 36: System dependencies
2.11 ! frystyk 37: </H3>
2.10 frystyk 38: <P>
2.8 frystyk 39: The <A HREF="sysdep.html">sysdep.h</A> file includes system-specific include
2.10 frystyk 40: files and flags for I/O to network and disk. The only reason for this file
41: is that the Internet world is more complicated than Posix and ANSI.
2.1 frystyk 42: <PRE>
2.8 frystyk 43: #include "sysdep.h"
2.1 frystyk 44: </PRE>
2.11 ! frystyk 45: <H3>
! 46: The Request Class
! 47: </H3>
! 48: <P>
! 49: Libwww is based on a request/response paradigm and the Request class defines
! 50: "<I>an operation to be performed on a URL</I>". The request object is the
! 51: main entry point for an application to issue a request to the Library - all
! 52: operations on a URL <I>must</I> use a Request object.
! 53: <PRE>
! 54: #include "<A HREF="HTReq.html">HTReq.h</A>"
! 55: </PRE>
! 56: <H3>
! 57: Higher Level Request Functions
! 58: </H3>
2.10 frystyk 59: <P>
60: Even though you may use the API for the HTRequest object directly in order
61: to issue a request, you will probably find that in real life it is easier
62: to use a higher level abstraction API. This API is provided by the
63: <A HREF="HTAccess.html">HTAccess module</A> where you will find all kind
64: of functions for down loading a URL etc.
2.1 frystyk 65: <PRE>
2.11 ! frystyk 66: #include "<A HREF="HTAccess.html">HTAccess.h</A>"
! 67: </PRE>
! 68: <H3>
! 69: Request Methods
! 70: </H3>
! 71: <P>
! 72: This module defines the set of methods that you can perform on a request,
! 73: for example <B>GET</B>, <B>HEAD</B>, <B>PUT</B>, <B>POST</B>, <B>DELETE</B>,
! 74: etc.
! 75: <PRE>
! 76: #include "<A HREF="HTMethod.html">HTMethod.h</A>"
! 77: </PRE>
! 78: <H3>
! 79: The Anchor (URL) Class
! 80: </H3>
! 81: <P>
! 82: An <A HREF="HTAnchor.html">anchor</A> represents a region of a hypertext
! 83: document which is linked to another anchor in the same or a different document.
! 84: Another name for anchors would be URLs as an anchor represents all we know
! 85: about a URL - including where it points to and who points to it.
! 86: <PRE>
! 87: #include "<A HREF="HTAnchor.html">HTAnchor.h</A>"
! 88: </PRE>
! 89: <H3>
! 90: Parsing URLs
! 91: </H3>
! 92: <P>
! 93: This module contains code to parse URIs for the various components according
! 94: to the <A HREF="http://www.w3.org/pub/WWW/Addressing/">URI syntax</A>
! 95: <PRE>
! 96: #include "<A HREF="HTParse.html">HTParse.h</A>"
! 97: </PRE>
! 98: <H3>
! 99: Escaping and Unescaping URLs
! 100: </H3>
! 101: <P>
! 102: URLs are written only with the graphic printable characters of the US-ASCII
! 103: coded character set. All other characters must be escaped before they can
! 104: be used in URLs. This module defines the methods required for escaping and
! 105: unescaping the URLs.
! 106: <PRE>
! 107: #include "<A HREF="HTEscape.html">HTEscape.h</A>"
! 108: </PRE>
! 109: <H3>
! 110: Web Related String Functions
! 111: </H3>
! 112: <P>
! 113: This module is like the <A HREF="HTString.html">generic string utility
! 114: module</A> but it contains more Web related string utility functions. Examples
! 115: are functions that return a <I>date string</I>, a <I>Message ID string</I>
! 116: etc.
! 117: <PRE>
! 118: #include "<A HREF="HTWWWStr.html">HTWWWStr.h</A>"
! 119: </PRE>
! 120: <H3>
! 121: The User Profile Class
! 122: </H3>
! 123: <P>
! 124: The User profile class manages what we know about a <I>user on this
! 125: host</I>. This can for example be the FQDN of the host, the user's email
! 126: address, the time zone, the news server etc.
! 127: <PRE>
! 128: #include "<A HREF="HTUser.html">HTUser.h</A>"
! 129: </PRE>
! 130: <H3>
! 131: The Event Class
! 132: </H3>
! 133: <P>
! 134: The Event Class defines any event manager to be used by libwww for handling
! 135: events.
! 136: <PRE>
! 137: #include "<A HREF="HTEvent.html">HTEvent.h</A>"
! 138: </PRE>
! 139: <H3>
! 140: The Error Class
! 141: </H3>
! 142: <P>
! 143: The <A HREF="HTError.html">Error class</A> provides an easy API for registering
! 144: errors ocurring while the Library serves a request. All errors are registered
! 145: in an "error stack" in the <A HREF="HTReq.html">Request object</A> which
! 146: allows for nested errors.
! 147: <PRE>
! 148: #include "<A HREF="HTError.html">HTError.h</A>"
2.7 frystyk 149: </PRE>
2.10 frystyk 150: <H3>
151: The Alert Class
152: </H3>
153: <P>
154: The <A HREF="HTAlert.html">Alert class</A> defines a set of methods to be
155: used by libwww to be used for passing prompts and message to a user.
156: <PRE>
2.11 ! frystyk 157: #include "<A HREF="HTAlert.html">HTAlert.h</A>"
2.10 frystyk 158: </PRE>
159: <H3>
2.11 ! frystyk 160: The Format Manager
! 161: </H3>
! 162: <P>
! 163: The Format Manager is responsible for setting up the stream pipe from the
! 164: <A HREF="HTChannl.html">Channel Object</A> to the <A HREF="HTReq.html">Request
! 165: Object</A> when data is arriving, for example as a response to s
! 166: <A HREF="HTTP.html">HTTP</A> <B>Get</B> request. The Format Manager is also
! 167: responsible for keeping track of the "<I>preferences</I>" of the application
! 168: and/or user. It is an integral part of the Web and HTTP, that the client
! 169: application can express its preferences as a set of "accept" headers in a
! 170: HTTP request.
! 171: <PRE>
! 172: #include "<A HREF="HTFormat.html">HTFormat.h</A>"
! 173: </PRE>
! 174: <H3>
! 175: File Suffix Binding
! 176: </H3>
! 177: <P>
! 178: This module sets up the binding between a file suffix and a media type, language,
! 179: encoding etc. In a client application the suffixes are used in protocols
! 180: that does not directly support media types etc., like FTP, and in server
! 181: applications they are used to make the bindings between the server and the
! 182: local file store that the server can serve to the rest of the world (well
! 183: almost)
! 184: <PRE>
! 185: #include "<A HREF="HTBind.html">HTBind.h</A>"
! 186: </PRE>
! 187: <H3>
! 188: The Generic Stream Class
! 189: </H3>
! 190: <P>
! 191: The <A HREF="HTStream.html">Stream class</A> defines objects which accepts
! 192: a sequence of characters. Streams may also have an output in which case multiple
! 193: stream objects can be cascaded to build a stream pipe where the output of
! 194: a stream is directed into the input of the next stream object "down the line".
! 195: <PRE>
! 196: #include "<A HREF="HTStream.html">HTStream.h</A>"
! 197: </PRE>
! 198: <H3>
! 199: The Input/output Stream Classes
! 200: </H3>
! 201: <P>
! 202: The <A HREF="HTIOStream.html">I/O Stream</A> class defines objects which
! 203: accepts a sequence of characters to and from a
! 204: <A HREF="HTTrans.html">transport</A>
! 205: <PRE>
! 206: #include "<A HREF="HTIOStream.html">HTIOStream.h</A>"
! 207: </PRE>
! 208: <H3>
! 209: File Writer Streams
! 210: </H3>
! 211: <P>
! 212: This module contains a set of basic file writer streams that are used to
! 213: dump data objects to disk at various places within the Library core. Most
! 214: notably, we use these streams in the <A HREF="HTFWrite.html">Format Manager</A>
! 215: in order to handle external presenters, for example post script viewers etc.
! 216: These streams can of course also be used in other contexts by the application.
! 217: <PRE>#include "<A HREF="HTFWrite.html">HTFWrite.h</A>"
! 218: </PRE>
! 219: <H3>
! 220: The DNS Class
! 221: </H3>
! 222: <P>
! 223: The DNS Class defines generic access to the DNS system. It maintains
! 224: a cache of all visited hosts so that subsequent connects to the same host
! 225: doesn't imply a new request to the DNS every time.
! 226: <PRE>
! 227: #include "<A HREF="HTDNS.html">HTDNS.h</A>"
! 228: </PRE>
! 229: <H3>
! 230: The Host Class
! 231: </H3>
! 232: <P>
! 233: The <A HREF="HTHost.html">Host class</A> manages what we know about a remote
! 234: host. This can for example be what type of host it is, and what version it
! 235: is using.
! 236: <PRE>
! 237: #include "<A HREF="HTHost.html">HTHost.h</A>"
! 238: </PRE>
! 239: <H3>
! 240: The Net Class
! 241: </H3>
! 242: <P>
! 243: The <A HREF="HTNet.html">Net class </A>manages information related to a "thread"
! 244: in libwww. As libwww threads are not really threads but a notion of using
! 245: interleaved, non-blocking I/O for accessing data objects from the network
! 246: (or local file system), they can be used on any platform with or without
! 247: support for native threads.
! 248: <PRE>
! 249: #include "<A HREF="HTNet.html">HTNet.h</A>"
! 250: </PRE>
! 251: <H3>
! 252: Internet Functions
2.10 frystyk 253: </H3>
2.11 ! frystyk 254: <P>
! 255: This module has the common code for handling typical Internet functions like
! 256: getting the name of the local host, getting the domain name and email address
! 257: of user etc.
2.10 frystyk 258: <PRE>
2.11 ! frystyk 259: #include "<A HREF="HTInet.html">HTInet.h</A>"
2.10 frystyk 260: </PRE>
2.11 ! frystyk 261: <H3>
! 262: The Transport Class
! 263: </H3>
! 264: <P>
! 265: The Transport Class defines a transport as used by the
! 266: <A HREF="HTChannl.html">HTChannel class</A> to communicate with the network,
! 267: the local file system etc. New transport objects may be registered at any
! 268: time. This allows the application to easily hook in its own transport layers.
2.10 frystyk 269: <PRE>
270: #include "<A HREF="HTTrans.html">HTTrans.h</A>"
2.11 ! frystyk 271: </PRE>
! 272: <H3>
! 273: The Protocol Class
! 274: </H3>
! 275: <P>
! 276: The Protocol class defines an application level protocol (HTTP, FTP, Gopher,
! 277: etc.) to be used by libwww. Please note that access to the local file system
! 278: also is considered to be an appliaction level protocol treated identically
! 279: to for example the HTTP protocol.
! 280: <PRE>
! 281: #include "<A HREF="HTProt.html">HTProt.h</A>"
2.1 frystyk 282: </PRE>
2.10 frystyk 283: <P>
2.1 frystyk 284: End of Core modules
285: <PRE>
286: #ifdef __cplusplus
287: } /* end extern C definitions */
288: #endif
289:
290: #endif
291: </PRE>
2.10 frystyk 292: <P>
293: <HR>
2.7 frystyk 294: <ADDRESS>
2.11 ! frystyk 295: @(#) $Id: WWWCore.html,v 2.10 1996/05/20 15:07:32 frystyk Exp $
2.7 frystyk 296: </ADDRESS>
2.10 frystyk 297: </BODY></HTML>
Webmaster