W3C Lib LibGuide

W3C Library Interfaces

Any suggestions or ideas are welcome at libwww@w3.org.

This is the overall set of interfaces in the W3C Reference Library. An interface can cover multiple related C modules and it is defined by a WWW*.h include file, for example WWWCore.h. On Windows platforms, each interface corresponds to a DLL with a DLL definition file defining all exported methods and data objects. You can also have a look at the complete list of all public functions.

Every module in the Library has a HTML document associated with it containing a detailed description of the functionality and interface to other modules. This page is the top node for the implementation specific documentation and contains links to all the modules in the Library. The documentation is dynamically kept up to date as the actual include files (.h) are generated from the HTML documents using the Line Mode Browser.

When compiling the Library please make sure that you have a relatively new version of the Line Mode Browser that parses the HTML documents correctly (2.13 and newer versions). Find out what version of the Line Mode Browser you are using by typing

	./www -version
Also remember that when editing the module interfaces or adding functionality then always use the HTML files and not the .h files!

NOTE This document is also available as one big HTML file intended for printout. Please note that not all links in this version work!

Core Interfaces

The core interfaces must be included in all applications.

Windows Specifics

The wwwdll library is a tiny library that contains a pointer to the TTYPrint function. When Windows loads a DLL, the exported function and data pointers get "fixed up" in the other modules. Consequently, what may be a directly addressable piece of data in it's home library will be a pointer in the other libraries and executables that dynamically link to it. The TTYPrint pointer is exported to the other modules and referenced via the TTYPrint macro in HTUtils.h. wwwdll.dll also contains the WWW_TraceFlag to the same end of macroing the indirection.

Basic Utilities

The Utility modules are mostly container modules, dynamic strings and other stuff that you can't live without when building applications. The modules are used by the core part of the W3C Reference Library but can also be used by the application. See also the main Library include file called WWWLib.h which contains all converters and protocol modules known to the Library. You can include this one if the application is to use all the functionality of the Library.

Core Interface

This is the basic include file for the core of the W3C Reference Library. Together with the WWWUtil module it contains all core specific modules which are required to compile and build the Library. The core part of the Library is designed as a set of registration modules with no real functionality in itself. Instead all the functionality comes when the application registers the modules that provides a desired functionality, for example accessing HTTP servers or the local file system. The Library has a special include file called WWWApp.h which a lot of application helper modules that makes it easier to use the core.

Stream Interfaces

Persistent Cache

The cache contains details of temporary disk files which contain the contents of remote documents.

HTML Parser and Generator

This is the include file for the basic HTML module that can be used together with the core of the W3C Reference Library. It contains all HTML specific modules which are required to compile and build the HTML DLL. Please note that as the HText is not included in this interface. The reason is that the HText interface only is declared by the Library but must be defined by the application. Therefore it can not be part of a DLL but must be included directly in the application.

Directory Browsing

This is the include file for the directory handling modules that can be used together with the core of the W3C Reference Library. It contains all Directory specific modules which are required to compile and build the DIRECTORY DLL.

Content Type Guessing Stream

This interface provides functionality for guessing unknown media types from magic words. The stream is a one that reads first a chunk of stuff, tries to figure out the format, and calls HTStreamStack(). This is a kind of lazy-evaluation of HTStreamStack(). This could be extended arbitrarily to recognize all the possible file formats in the world, if someone only had time to do it.

MIME Parser and Generator

This is the module for basic RFC822/MIME parsing that can be used together with the core of the W3C Reference Library. It contains all MIME specific modules which are required to compile and build the MIME DLL.

Application Interfaces

Rule File Management

A way to initialize applications is to use a rule file, also known as a configuration file. This is for example the case with the W3C httpd and the W3C Line Mode Browser. This module provides basic support for configuration file management and the application can use this is desired. The module is not referred to by the Library. Reading a rule file is implemented as a stream converter so that a rule file can come from anywhere, even across the network!

Applications do not have to provide native support for all protocols, they can in many situations rely on the support of proxies and gateways to help doing the job. Proxy servers are often used to carry client requests through a firewall where they can provide services like corporate caching and other network optimizations. Both Proxy servers and gateways can serve as "protocol translators" which can convert a request in the main Web protocol, HTTP, to an equivalent request in another protocol, for example NNTP, FTP, or Gopher. In case a proxy server or a gateway is available to the application, it can therefore by use of HTTP forward all requests to for example a proxy server which then handle the communications with the remote server, for example using FTP about the document and return it to the application (proxy client) using HTTP.

Application Specific

This module provides some "make life easier" functions in order to get the application going. They help you generate the first anchor, also called the home anchor. It also contains a nice set of default WWW addresses.

Initialization Modules

The core parts of the Library is a framework for adding functionality. It has hooks for adding protocol modules, like for example HTTP, FTP, and also for adding streams that can convert from one media type to some other type, or presenting the result to the user. In the distribution file of the Library you will find a large set of protocol modules and streams already implemented. However, in order to use these you need to initialize them. This can be done by using the methods in the WWWInit module. You can modify these modules as you like to fit your particular needs. The modules in this interface are not part of any DLL and so must be included directly if desired.

Protocol Interfaces

Local File Access

This is the include file for local file handling modules that can be used together with the core of the W3C Reference Library. It contains modules which are required to compile and build the FILE DLL.

FTP Access

This is the include file for the basic FTP module that can be used together with the core of the W3C Reference Library. It contains all FTP specific modules which are required to compile and build the FTP DLL.

Gopher Access

This is the include file for the basic GOPHER module that can be used together with the core of the W3C Reference Library. It contains all GOPHER specific modules which are required to compile and build the GOPHER DLL.

HTTP Access

This is the include file for all HTTP access including the server side and the client side. It can be used together with the core of the W3C Reference Library. It contains all HTTP specific modules which are required to compile and build the HTTP DLL.

News Access

This is the include file for the basic NNTP module that can be used together with the core of the W3C Reference Library. It contains all News specific modules which are required to compile and build the News DLL.

Telnet Access

This is the include file for the basic Telnet, rlogin, and TN3270 module that can be used together with the core of the W3C Reference Library. It contains all Telnet, rlogin, and TN3270 specific modules which are required to compile and build the Telnet, rlogin, and TN3270 DLL.

WAIS Access

This is the include file for the basic WAIS module that can be used together with the core of the W3C Reference Library. It contains all WAIS specific modules which are required to compile and build the WAIS DLL.


Henrik Frystyk, libwww@w3.org, February 1996
Non-Mandatory Application Include File

Non-Mandatory Application Include File

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
In addition top the basic W3C Reference Library include file called WWWLib.h you can also include this file called WWWApp.h depending on the needs of your application. However, it is not required and none of the files included below are ever used in the core part of the Library itself. Only if this file is included, the extra modules will get included in the linked object code. It is also possible to include only a subset of the files below if the functionality you are after is covered by them.
#ifndef WWWAPP_H
#define WWWAPP_H
#ifdef __cplusplus
extern "C" { 
#endif

Generating the First Anchor

This module provides some "make life easier" functions in order to get the application going. They help you generate the first anchor, also called the home anchor. It also contains a nice set of default WWW addresses.
#include "HTHome.h"

User Dialogs and Messages

You can register a set of callback functions to handle user prompting, error messages, confimations etc. Here we give a set of functions that can be used on almost anu thinkable platform. If you want to provide your own platform dependent implementation then fine :-)
#include "HTDialog.h"

After Terminating a Request

When a request is terminated, the application often has to do some action as a result of the request (and of the result of the request). The Application part of the Library provides two following modules to handle logging and history management. You can register a POST request handler in the Net Manager as described in the User's Guide.

You can find a function called HTLoadTerminate in the HTHome module that enables all the functionality for handling a request result.

Logging

Often it is required to log the requests issued to the Library. This can either be the case if the application is a server or it can also be useful in a client application. This module provides a simple logging mechanism which can be enabled if needed.
#include "HTLog.h"

History Management

Another type of logging is keeping track of which documents a user has visited when browsing along on the Web. The Library history manager provides a basic set of functionality to keep track of a linear history list.
#include "HTHist.h"
End of application specific modules
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWAPP definition Declaration of W3C Reference PERSISTENT CACHE MODULE

Declaration of W3C Reference PERSISTENT CACHE MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/

Cache Manager

Caching is a required part of any efficient Internet access applications as it saves bandwidth and improves access performance significantly in almost all types of accesses. The Library supports two different types of cache: The memory cache and the file cache. The two types differ in several ways which reflects their two main purposes: The memory cache is for short term storage of graphic objects whereas the file cache is for intermediate term storage of data objects. Often it is desirable to have both a memory and a file version of a cached document, so the two types do not exclude each other.

The cache contains details of temporary disk files which contain the contents of remote documents. There is also a list of cache items for each URL in its anchor object.

There are various ways of handling Expires header when met in a history list. Either it can be ignored all together, the user can be notified with a warning, or the document can be reloaded automatically. This flag decides what action to be taken. The default action is HT_EXPIRES_IGNORE. In HT_EXPIRES_NOTIFY mode you can specify a message to tell the user (NULL is valid in which case my own message pops up - watch out it might be in Danish ;-))

The Library has two notions of a local cache: a file cache and a memory cache. The memory cache is handled by the client and the file cache is handled by the Library. Often the format of a object cached in memory is in the form of a hypertext object ready to be displayed (that is, it's already parsed).

#ifndef WWWCACHE_H
#define WWWCACHE_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTCache.h"
End of CACHE module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWCACHE API definition Declaration of W3C Reference Library CORE

Declaration of W3C Reference Library CORE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the basic include file for the core of the W3C Reference Library. Togrther with the WWWUtil module it contains all core specific modules which are required to compile and build the Library.

The core part of the Library is designed as a set of registration modules with no real functionality in itself. Instead all the functionality comes when the applciation registeres the modules that provides a desired functionaly, for example accessing HTTP servers or the local file system. The Library has a special include file called WWWApp.h which contains all converters, protocol modules, and a lot of other "sugar" modules that can make the core a very powerful Web interface. You can include this one if the application is to use all the functionality of the Library.

#ifndef WWWCORE_H
#define WWWCORE_H

System dependencies

#include "tcp.h"

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif

Core Modules

#include "HTAccess.h"			/* Document access network code */
#include "HTAlert.h"			/* User Messages and Dialogs */
#include "HTAnchor.h"			/* Anchor class Definition */
#include "HTBind.h"			/* Binding to file suffixes */
#include "HTConLen.h"			/* Content Length Counter */
#include "HTDNS.h"			/* Host name cache */
#include "HTError.h"			/* Error manager */
#include "HTEscape.h"			/* Escape and unescape URLs */
#include "HTEvntrg.h"			/* Event manager */
#include "HTFWrite.h"			/* Write to an ANSI file descriptor */
#include "HTFormat.h"			/* Stream Stack and content neg. */
#include "HTMethod.h"			/* Request methods like PUT, GET */
#include "HTNet.h"			/* public part of Net Manager */
#include "HTParse.h"			/* Parse URLs */
#include "HTProt.h"			/* Protocol Manager */
#include "HTReq.h"			/* public part of Request Manager */
#include "HTSocket.h"			/* public part of Net Manager */
#include "HTTCP.h"			/* GetXbyY functions */
#include "HTTee.h"			/* T streem for splitting a stream */
#include "HTWWWStr.h"			/* Web Related String Functions */
#include "HTWriter.h"			/* Write to a unix file descriptor */
End of Core modules
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWCore API definition Declaration of W3C Reference DIRECTORY MODULE

Declaration of W3C Reference DIRECTORY MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the directory handling modules that can be used together with the core of the W3C Reference Library. It contains all Directory specific modules which are required to compile and build the DIRECTORY DLL.

#ifndef WWWDIR_H
#define WWWDIR_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTIcons.h"
#include "HTDescpt.h"
#include "HTDir.h"
End of DIR module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWDir API definition Declaration of W3C Reference FTP MODULE

Declaration of W3C Reference FTP MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic FTP module that can be used together with the core of the W3C Reference Library. It contains all FTP specific modules which are required to compile and build the FTP DLL.

#ifndef WWWFTP_H
#define WWWFTP_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTFTP.h"			/* FTP client state machine */
#include "HTFTPDir.h"			/* Streams for parsing FTP output */
End of FTP module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWFTP API definition Declaration of W3C Reference FILE MODULE

Declaration of W3C Reference FILE MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for local file handling modules that can be used together with the core of the W3C Reference Library. It contains modules which are required to compile and build the FILE DLL.

#ifndef WWWFILE_H
#define WWWFILE_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTMulti.h"
#include "HTFile.h"
End of FILE module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWFile API definition Declaration of W3C Reference GOPHER MODULE

Declaration of W3C Reference GOPHER MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic GOPHER module that can be used together with the core of the W3C Reference Library. It contains all GOPHER specific modules which are required to compile and build the GOPHER DLL.

#ifndef WWWGOPHER_H
#define WWWGOPHER_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTGopher.h"			      /* GOPHER client state machine */
End of GOPHER module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWGophe API definition Declaration of W3C Reference Content Guess MODULE

Declaration of W3C Reference CONTENT GUESS MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This interface provides functionality for guessing unknown media types from magic words. The stream is a one that reads first a chunk of stuff, tries to figure out the format, and calls HTStreamStack(). This is a kind of lazy-evaluation of HTStreamStack(). This could be extended arbitrarily to recognize all the possible file formats in the world, if someone only had time to do it.

#ifndef WWWGUESS_H
#define WWWGUESS_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTGuess.h"
End of GUESS module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWGUESS API definition Declaration of W3C Reference HTML MODULE

Declaration of W3C Reference HTML MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic HTML module that can be used together with the core of the W3C Reference Library. It contains all HTML specific modules which are required to compile and build the HTML DLL. Please note that as the HText is not included in this interface. The reason is that the HText interface only is declared by the Library but must be defined by the application. Therefore it can not be part of a DLL but must be included directly in the application.

#ifndef WWWHTML_H
#define WWWHTML_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTMLPDTD.h"
#include "SGML.h"
#include "HTMLGen.h"
#include "HTTeXGen.h"
End of HTML module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWHTML API definition Declaration of W3C Reference HTTP MODULE

Declaration of W3C Reference HTTP MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for all HTTP access including the server side and the client side. It can be used together with the core of the W3C Reference Library. It contains all HTTP specific modules which are required to compile and build the HTTP DLL.

#ifndef WWWHTTP_H
#define WWWHTTP_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTTPUtil.h"			/* Basic things */
#include "HTTP.h"			/* HTTP client state machine */
#include "HTTPServ.h"			/* HTTP server state machine */

#include "HTTPGen.h"			/* General HTTP Header Stream */
#include "HTTPReq.h"			/* Stream for generating requests */
#include "HTTPRes.h"			/* Stream for gererating responses */

#include "HTAAUtil.h"			/* Access authentication */
#include "HTAABrow.h"			/* Access authentication */
End of HTTP module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWHTTP API definition Non-Mandatory Initialization Module

Non-Mandatory Initialization Module

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
#ifndef WWWINIT_H
#define WWWINIT_H
The core parts of the Library is a framework for adding functionality. It has hooks for adding protocol modules, like for example HTTP, FTP, and also for adding streams that can convert from one media type to some other type, or presenting the result to the user. In the distribution file of the Library you will find a large set of protocol modules and streams already implemented. However, in order to use these you need to initialize them. This can be done by using the files in the HTInit module. You can modify this module as you like to fit your particular needs.
#ifdef __cplusplus
extern "C" { 
#endif
#include "HTInit.h"
#include "HTBInit.h"
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWINIT declaration Include file for W3C Reference Library

Include file for W3C Reference Library

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the basic include files and the core include files necessary in order to use the W3C Reference Library. It contains all core specific modules which are required to compile and build the Library. No converter streams or protocol modules are included in this file as they are for the application to set up. The Library has a special include file called WWWApp.h which contains all converters and protocol modules known to the Library. You can include this one if the application is to use all the functionality of the Library.
#ifndef WWWLIB_H
#define WWWLIB_H
#ifdef __cplusplus
extern "C" { 
#endif

General Utilities

#include "WWWUtil.h"			/* Basic utility modules */

Core Modules

#include "WWWCore.h"			/* Core modules */
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWLib API definition Declaration of W3C Reference MIME MODULE

Declaration of W3C Reference MIME MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the module for basic RFC822/MIME parsing that can be used together with the core of the W3C Reference Library. It contains all MIME specific modules which are required to compile and build the MIME DLL.

#ifndef WWWMIME_H
#define WWWMIME_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTMIME.h"			/* MIME response parser */
#include "HTMIMERq.h"			/* MIME request generator */
#include "HTBound.h"			/* Multipart MIME parser */
#include "HTMulpar.h"			/* Multipart MIME generator stream */
#include "HTHeader.h"			/* Extra Header parser and generator */
End of MIME module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWMIME API definition Declaration of W3C Reference NEWS MODULE

Declaration of W3C Reference NEWS MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic NNTP module that can be used together with the core of the W3C Reference Library. It contains all News specific modules which are required to compile and build the News DLL.

#ifndef WWWNEWS_H
#define WWWNEWS_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTNews.h"			/* NNTP client state machine */
#include "HTNewsLs.h"			/* Streams for parsing News output */
#include "HTNDir.h"			/* HTML Generator */
End of News module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWNews API definition Rule Files and Proxies

Rule Files and Proxies

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
In addition top the basic W3C Reference Library include file called WWWLib.h you can also include this file depending on the needs of your application. However, it is not required and none of the files included below are ever used in the core part of the Library itself. Only if this file is included, the extra modules will get included in the linked object code. It is also possible to include only a subset of the files below if the functionality you are after is covered by them.
#ifndef WWWRULES_H
#define WWWRULES_H
#ifdef __cplusplus
extern "C" { 
#endif

Rule File Management

Another way to initialize applications is to use a rule file, also known as a configuration file. This is for example the case with the W3C httpd and the W3C Line Mode Browser. This module provides basic support for configuration file management and the application can use this is desired. The module is not referred to by the Library. Reading a rule file is implemented as a stream converter so that a rule file can come from anywhere, even across the network!
#include "HTRules.h"

Proxies and Gateways

Applications do not have to provide native support for all protocols, they can in many situations rely on the support of proxies and gateways to help doing the job. Proxy servers are often used to carry client requests through a firewall where they can provide services like corporate caching and other network optimizations. Both Proxy servers and gateways can serve as "protocol translators" which can convert a request in the main Web protocol, HTTP, to an equivalent request in another protocol, for example NNTP, FTP, or Gopher. In case a proxy server or a gateway is available to the application, it can therefore by use of HTTP forward all requests to for example a proxy server which then handle the communications with the remote server, for example using FTP about the document and return it to the application (proxy client) using HTTP.
#include "HTProxy.h"
End of application specific modules
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWRules declaration Declaration of W3C Reference Telnet, rlogin, and TN3270 MODULE

Declaration of W3C Reference Telnet, rlogin, and TN3270 MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic Telnet, rlogin, and TN3270 module that can be used together with the core of the W3C Reference Library. It contains all Telnet, rlogin, and TN3270 specific modules which are required to compile and build the Telnet, rlogin, and TN3270 DLL.

#ifndef WWWTELNET_H
#define WWWTELNET_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTTelnet.h"			      /* TELNET client state machine */
End of TELNET module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWTelnet API definition Declaration of W3C Reference Library UTILITIES

Declaration of W3C Reference Library UTILITIES

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
The Utility modules are mostly container modules, dynamic strings and otherstuff that you can't live without when building applications. The modules are used by the core part of the W3C Reference Library but can also be used by the application. See also the main Library include file called WWWLib.h which contains all converters and protocol modules known to the Library. You can include this one if the application is to use all the functionality of the Library.
#ifndef WWWUTIL_H
#define WWWUTIL_H

System dependencies

The tcp.h file includes system-specific include files and flags for I/O to network and disk. The only reason for this file is that the Internet world is more complicated than Posix and ANSI.
#include "tcp.h"

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif

Basic Macros etc

This module includes file contains things we need everywhere, generally macros for declarations, booleans, etc.
#include "HTUtils.h"

Dynamic Arrays

This module implements a flexible array of pointers. It is a general utility module. An array is a structure which may be extended. These routines create and append data to arrays, automatically reallocating them as necessary. It is garanteed that the last entry in an array is NULL
#include "HTArray.h"

Association Lists

This is a small module build on top of the HTList module that provides a way to store Name-Value pairs in an easy way.
#include "HTAssoc.h"

Atoms

Atoms are strings which are given representative pointer values so that they can be stored more efficiently, and comparisons for equality done more efficiently. The pointer values are in fact entries into a hash table.
#include "HTAtom.h"

Dynamic Strings

A Chunk is a block wise expandable array of type (char *) and is a sort of apology for real strings in C. Chunks make it easier to handle dynamic strings of unknown size. It is often faster than using the String Copy Routines.
#include "HTChunk.h"

Linked Lists

This module provides the functionality for managing a generic list of data objects. The module is implemented as a single linked list using the scheme first in - last out (FILO).
#include "HTList.h"

Dymamic Memory Management

This module implements a dynamic memory API that is used throughout the Library. The API covers three types of functionality:
#include "HTMemory.h"

String Utilities

Routines for dynamic arrays of characters include string copy, case insensitive comparison etc.
#include "HTString.h"

UU encode and decode

File module provides functions functions for uuencode and decode strings which convert a buffer of bytes to/from RFC 1113 printable encoding format. This technique is similar to the familiar Unix uuencode format in that it maps 6 binary bits to one ASCII character (or more aptly, 3 binary bytes to 4 ASCII characters). However, RFC 1113 does not use the same mapping to printable characters as uuencode.
#include "HTUU.h"
End of utility modules
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWUtil.h declaration Declaration of W3C Reference WAIS MODULE

Declaration of W3C Reference WAIS MODULE

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
This is the include file for the basic WAIS module that can be used together with the core of the W3C Reference Library. It contains all WAIS specific modules which are required to compile and build the WAIS DLL.

#ifndef WWWWAIS_H
#define WWWWAIS_H

Library Includes

#ifdef __cplusplus
extern "C" { 
#endif
#include "HTWais.h"			        /* WAIS client state machine */
End of WAIS module
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
End of WWWWais API definition