Annotation of libwww/Library/src/HTHeader.html, revision 2.5
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>
2.5 ! frystyk 40: typedef int HTParserCallback (HTRequest * request, const char * token);
2.1 frystyk 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,
2.5 ! frystyk 57: const char * token,
2.1 frystyk 58: BOOL case_sensitive,
59: HTParserCallback * callback);
60: </PRE>
61:
62: <H3>Unregister a Header parser</H3>
63:
64: <PRE>
2.5 ! frystyk 65: extern BOOL HTParser_delete (HTList * parsers, const char * token);
2.1 frystyk 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>
2.5 ! frystyk 80: extern HTParserCallback * HTParser_find (HTList *parsers, const char * token);
2.1 frystyk 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.5 ! frystyk 117: extern BOOL HTHeader_addParser (const char * token, BOOL case_sensitive,
2.3 frystyk 118: HTParserCallback * callback);
2.5 ! frystyk 119: extern BOOL HTHeader_deleteParser (const char * token);
2.1 frystyk 120: extern HTList * HTHeader_parser (void);
121: </PRE>
122:
123: <H3>Header Generation</H3>
124:
125: <PRE>
126: extern void HTHeader_setGenerator (HTList * list);
2.4 frystyk 127: extern BOOL HTHeader_addGenerator (HTPostCallback * callback);
128: extern BOOL HTHeader_deleteGenerator (HTPostCallback * callback);
2.1 frystyk 129: extern HTList * HTHeader_generator (void);
130: </PRE>
131:
132: <H3>Delete all Global Lists</H3>
133:
134: <PRE>
135: extern void HTHeader_deleteAll (void);
136: </PRE>
137:
138: <PRE>
139: #endif /* HTHEADER_H */
140: </PRE>
141:
142: End of Declaration
143:
144: </BODY>
145: </HTML>
Webmaster