Annotation of libwww/Library/src/HTHeader.html, revision 2.8
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:
31: #include "HTReq.h"
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>
! 40: typedef int HTParserCallback (HTRequest * request, char * token, char * value);
! 41: </PRE>
! 42: <H2>
! 43: Header Parser Management
! 44: </H2>
! 45: <P>
! 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 by
! 49: the <A HREF="HTMIME.html">HTMIME</A> module.
! 50: <P>
! 51: HTParserCallbacks may be registered for known MIME headers (HTParser_*), or for
! 52: regular expressions (HTRegexParser_*). To data the regex support is limited to
! 53: the use of '*' for a wild card.
! 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.
! 60: <H3>
! 61: Add a Header Generator
! 62: </H3>
2.1 frystyk 63: <PRE>
64: extern BOOL HTGenerator_add (HTList * gens, HTPostCallback * callback);
65: </PRE>
2.8 ! eric 66: <H3>
! 67: Unregister a Header generator
! 68: </H3>
2.1 frystyk 69: <PRE>
70: extern BOOL HTGenerator_delete (HTList * gens, HTPostCallback * callback);
71: </PRE>
2.8 ! eric 72: <H3>
! 73: Delete the list of registered header generators.
! 74: </H3>
2.1 frystyk 75: <PRE>
76: extern BOOL HTGenerator_deleteAll (HTList * gens);
77: </PRE>
2.8 ! eric 78: <H2>
! 79: Global List Of Parsers and Generators
! 80: </H2>
! 81: <P>
! 82: As in <A HREF="HTFormat.html">HTFormat module</A> you can register a list
! 83: globally or locally as you like. The local registrations is managed by
! 84: <A HREF="HTReq.html">Request Manager</A>
! 85: <H3>
! 86: Header Parsers
! 87: </H3>
2.1 frystyk 88: <PRE>
2.8 ! eric 89: extern void HTHeader_setMIMEParseSet (HTMIMEParseSet * list);
! 90: extern HTMIMEParseSet * HTHeader_MIMEParseSet (void);
2.5 frystyk 91: extern BOOL HTHeader_addParser (const char * token, BOOL case_sensitive,
2.3 frystyk 92: HTParserCallback * callback);
2.8 ! eric 93: extern BOOL HTHeader_addRegexParser (const char * token, BOOL case_sensitive,
! 94: HTParserCallback * callback);
2.5 frystyk 95: extern BOOL HTHeader_deleteParser (const char * token);
2.1 frystyk 96: </PRE>
2.8 ! eric 97: <H3>
! 98: Header Generation
! 99: </H3>
2.1 frystyk 100: <PRE>
101: extern void HTHeader_setGenerator (HTList * list);
2.4 frystyk 102: extern BOOL HTHeader_addGenerator (HTPostCallback * callback);
103: extern BOOL HTHeader_deleteGenerator (HTPostCallback * callback);
2.1 frystyk 104: extern HTList * HTHeader_generator (void);
105: </PRE>
2.8 ! eric 106: <H3>
! 107: Delete all Global Lists
! 108: </H3>
2.1 frystyk 109: <PRE>
110: extern void HTHeader_deleteAll (void);
111: </PRE>
112: <PRE>
113: #endif /* HTHEADER_H */
114: </PRE>
2.8 ! eric 115: <P>
! 116: <HR>
2.7 frystyk 117: <ADDRESS>
2.8 ! eric 118: @(#) $Id: HTHeader.html,v 2.7 1996/04/12 17:47:11 frystyk Exp $
2.7 frystyk 119: </ADDRESS>
2.8 ! eric 120: </BODY></HTML>
Webmaster