Annotation of libwww/Library/src/HTHeader.html, revision 2.12

2.1       frystyk     1: <HTML>
                      2: <HEAD>
2.8       eric        3:   <!-- Changed by: Henrik Frystyk Nielsen, 23-Mar-1996 -->
2.10      frystyk     4:   <!-- Changed by: Eric Prud'hommeaux, 28-May-1996 -->
2.8       eric        5:   <NEXTID N="z11">
2.11      frystyk     6:   <TITLE>W3C Sample Code Library libwww MIME Headers</TITLE>
2.1       frystyk     7: </HEAD>
                      8: <BODY>
2.8       eric        9: <H1>
2.10      frystyk    10:   MIME Headers
2.8       eric       11: </H1>
2.1       frystyk    12: <PRE>
                     13: /*
                     14: **     (c) COPYRIGHT MIT 1995.
                     15: **     Please first read the full copyright statement in the file COPYRIGH.
                     16: */
                     17: </PRE>
2.8       eric       18: <P>
                     19: This module handles lists of callback functions for generating and parsing
                     20: protocol headers. This works exactly like the lists in
                     21: <A HREF="HTFormat.html">HTFormat</A>.
                     22: <P>
2.10      frystyk    23: This module is implemented by <A HREF="HTHeader.c">HTHeader.c</A>, and it
2.12    ! frystyk    24: is a part of the <A HREF="http://www.w3.org/Library/"> W3C Sample Code
2.8       eric       25: Library</A>.
2.1       frystyk    26: <PRE>
                     27: #ifndef HTHEADER_H
                     28: #define HTHEADER_H
                     29: 
2.9       frystyk    30: #include "HTResponse.h"
2.1       frystyk    31: #include "HTStream.h"
                     32: </PRE>
2.8       eric       33: <P>
                     34: We have two call back functions: the first is for generating headers. This
                     35: needs a stream to put down the extra headers. This one is defined in the
                     36: <A HREF="HTReq.html">Request Manager</A>. The other one is for parsing. This
                     37: needs the string to parse.
                     38: <PRE>
2.9       frystyk    39: typedef int HTParserCallback (HTRequest * request, HTResponse * response,
                     40:                               char * token, char * value);
2.8       eric       41: </PRE>
                     42: <H2>
                     43:   Header Parser Management
                     44: </H2>
                     45: <P>
2.10      frystyk    46: Header Parsers can be registered to handle any header. The standard set of
                     47: HTTP/1.1 MIME parsers is registered by HTMIMEInit in the
                     48: <A HREF="HTInit.html">HTInit</A> module. The HTParserCallbacks are called
                     49: by the <A HREF="HTMIME.html">HTMIME</A> module.
                     50: <P>
                     51: HTParserCallbacks may be registered for known MIME headers (HTParser_*),
                     52: or for regular expressions (HTRegexParser_*). To data the regex support is
                     53: limited to the use of '*' for a wild card.
2.8       eric       54: <H2>
                     55:   Header Generator Management
                     56: </H2>
                     57: <P>
                     58: Header Generators can be use to add additional information to aprotocol request.
                     59: They will all be called.
2.1       frystyk    60: <PRE>
                     61: extern BOOL HTGenerator_add (HTList * gens, HTPostCallback * callback);
                     62: extern BOOL HTGenerator_delete (HTList * gens, HTPostCallback * callback);
                     63: extern BOOL HTGenerator_deleteAll (HTList * gens);
                     64: </PRE>
2.8       eric       65: <H2>
                     66:   Global List Of Parsers and Generators
                     67: </H2>
                     68: <P>
                     69: As in <A HREF="HTFormat.html">HTFormat module</A> you can register a list
                     70: globally or locally as you like. The local registrations is managed by
                     71: <A HREF="HTReq.html">Request Manager</A>
                     72: <H3>
                     73:   Header Parsers
                     74: </H3>
2.1       frystyk    75: <PRE>
2.8       eric       76: extern void HTHeader_setMIMEParseSet (HTMIMEParseSet * list);
                     77: extern HTMIMEParseSet * HTHeader_MIMEParseSet (void);
2.5       frystyk    78: extern BOOL HTHeader_addParser (const char * token, BOOL case_sensitive,
2.3       frystyk    79:                                HTParserCallback * callback);
2.8       eric       80: extern BOOL HTHeader_addRegexParser (const char * token, BOOL case_sensitive,
                     81:                                HTParserCallback * callback);
2.5       frystyk    82: extern BOOL HTHeader_deleteParser (const char * token);
2.1       frystyk    83: </PRE>
2.8       eric       84: <H3>
                     85:   Header Generation
                     86: </H3>
2.1       frystyk    87: <PRE>
                     88: extern void HTHeader_setGenerator (HTList * list);
2.4       frystyk    89: extern BOOL HTHeader_addGenerator (HTPostCallback * callback);
                     90: extern BOOL HTHeader_deleteGenerator (HTPostCallback * callback);
2.1       frystyk    91: extern HTList * HTHeader_generator (void);
                     92: </PRE>
2.8       eric       93: <H3>
                     94:   Delete all Global Lists
                     95: </H3>
2.1       frystyk    96: <PRE>
                     97: extern void HTHeader_deleteAll (void);
                     98: </PRE>
                     99: <PRE>
                    100: #endif /* HTHEADER_H */
                    101: </PRE>
2.8       eric      102: <P>
                    103:   <HR>
2.7       frystyk   104: <ADDRESS>
2.12    ! frystyk   105:   @(#) $Id: HTHeader.html,v 2.11 1997/02/16 18:42:21 frystyk Exp $
2.7       frystyk   106: </ADDRESS>
2.8       eric      107: </BODY></HTML>

Webmaster