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