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

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

Webmaster