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

2.1       frystyk     1: <HTML>
                      2: <HEAD>
                      3: <TITLE>Extra Header Manager</TITLE>
2.3     ! frystyk     4: <!-- Changed by: Henrik Frystyk Nielsen, 19-Nov-1995 -->
2.1       frystyk     5: <NEXTID N="z11">
                      6: </HEAD>
                      7: <BODY>
                      8: 
                      9: <H1>Extra Header Manager</H1>
                     10: 
                     11: <PRE>
                     12: /*
                     13: **     (c) COPYRIGHT MIT 1995.
                     14: **     Please first read the full copyright statement in the file COPYRIGH.
                     15: */
                     16: </PRE>
                     17: 
                     18: This module handles lists of callback functions for generating and
                     19: parsing protocol headers. This works exactly like the lists in <A
                     20: HREF="HTFormat.html">HTFormat</A>.<P>
                     21: 
2.2       frystyk    22: This module is implemented by <A HREF="HTHeader.c">HTheader.c</A>, and
2.1       frystyk    23: it is a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C
                     24: Reference Library</A>. <P>
                     25: 
                     26: <PRE>
                     27: #ifndef HTHEADER_H
                     28: #define HTHEADER_H
                     29: 
                     30: #include "HTReq.h"
                     31: #include "HTStream.h"
                     32: </PRE>
                     33: 
                     34: We have two call back functions: the first is for generating
                     35: headers. This needs a stream to put down the extra headers. This one
                     36: is defined in the <A HREF="HTReq.html">Request Manager</A>. The other
                     37: one is for parsing. This needs the string to parse.
                     38: 
                     39: <PRE>
                     40: typedef int HTParserCallback (HTRequest * request, CONST char * token);
                     41: </PRE>
                     42: 
                     43: <H2>Header Parser Management</H3>
                     44: 
                     45: Header Parsers can be registered to handle any header that is not part
                     46: of the "default set" handled by the <A HREF="HTMIME.html">HTMIME
                     47: module</A>. This is mainlu the set defined by HTTP/1.1.
                     48: 
                     49: <H3>Add a Header Parser</H3>
                     50: 
                     51: Register a Header parser to be called if we encounter the token in teh
                     52: protocol response. Tokens can contain a wildcard '*' which will match
                     53: zero or more arbritary chars.
                     54: 
                     55: <PRE>
                     56: extern BOOL HTParser_add (HTList *             parsers,
                     57:                          CONST char *          token,
                     58:                          BOOL                  case_sensitive,
                     59:                          HTParserCallback *    callback);
                     60: </PRE>
                     61: 
                     62: <H3>Unregister a Header parser</H3>
                     63: 
                     64: <PRE>
                     65: extern BOOL HTParser_delete (HTList * parsers, CONST char * token);
                     66: </PRE>
                     67: 
                     68: <H3>Delete the list of registered header parsers.</H3>
                     69: 
                     70: <PRE>
                     71: extern BOOL HTParser_deleteAll (HTList * parsers);
                     72: </PRE>
                     73: 
                     74: <H3>Find a parser</H3>
                     75: 
                     76: Search registered parsers to find suitable one for this token If a
                     77: parser isn't found, the function returns NULL
                     78: 
                     79: <PRE>
                     80: extern HTParserCallback * HTParser_find (HTList *parsers, CONST char * token);
                     81: </PRE>
                     82: 
                     83: <H2>Header Generator Management</H2>
                     84: 
                     85: Header Generators can be use to add additional information to
                     86: aprotocol request. They will all be called.
                     87: 
                     88: <H3>Add a Header Generator</H3>
                     89: 
                     90: <PRE>
                     91: extern BOOL HTGenerator_add (HTList * gens, HTPostCallback * callback);
                     92: </PRE>
                     93: 
                     94: <H3>Unregister a Header generator</H3>
                     95: 
                     96: <PRE>
                     97: extern BOOL HTGenerator_delete (HTList * gens, HTPostCallback * callback);
                     98: </PRE>
                     99: 
                    100: <H3>Delete the list of registered header generators.</H3>
                    101: 
                    102: <PRE>
                    103: extern BOOL HTGenerator_deleteAll (HTList * gens);
                    104: </PRE>
                    105: 
                    106: 
                    107: <H2>Global List Of Parsers and Generators</H2>
                    108: 
                    109: As in <A HREF="HTFormat.html">HTFormat module</A> you can register a
                    110: list globally or locally as you like. The local registrations is
                    111: managed by <A HREF="HTReq.html">Request Manager</A>
                    112: 
                    113: <H3>Header Parsers</H3>
                    114: 
                    115: <PRE>
                    116: extern void HTHeader_setParser (HTList * list);
2.3     ! frystyk   117: extern BOOL HTHeader_addParser (CONST char * token, BOOL case_sensitive,
        !           118:                                HTParserCallback * callback);
2.1       frystyk   119: extern HTList * HTHeader_parser (void);
                    120: </PRE>
                    121: 
                    122: <H3>Header Generation</H3>
                    123: 
                    124: <PRE>
                    125: extern void HTHeader_setGenerator (HTList * list);
2.3     ! frystyk   126: extern BOOL HTHeader_addGenerator (CONST char * token, BOOL case_sensitive,
        !           127:                                   HTParserCallback * callback);
2.1       frystyk   128: extern HTList * HTHeader_generator (void);
                    129: </PRE>
                    130: 
                    131: <H3>Delete all Global Lists</H3>
                    132: 
                    133: <PRE>
                    134: extern void HTHeader_deleteAll (void);
                    135: </PRE>
                    136: 
                    137: <PRE>
                    138: #endif /* HTHEADER_H */
                    139: </PRE>
                    140: 
                    141: End of Declaration
                    142: 
                    143: </BODY>
                    144: </HTML>

Webmaster