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&nbsp;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"&nbsp;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 &nbsp;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