Annotation of libwww/Library/src/HTReqMan.html, revision 2.25
2.1 frystyk 1: <HTML>
2: <HEAD>
2.24 frystyk 3: <!-- Changed by: Henrik Frystyk Nielsen, 1-Jun-1996 -->
2.23 frystyk 4: <TITLE>W3C Reference Library libwww Private Request Definition</TITLE>
2.1 frystyk 5: </HEAD>
6: <BODY>
2.23 frystyk 7: <H1>
8: Private Request Definition
9: </H1>
2.1 frystyk 10: <PRE>
11: /*
12: ** (c) COPYRIGHT MIT 1995.
13: ** Please first read the full copyright statement in the file COPYRIGH.
14: */
15: </PRE>
2.23 frystyk 16: <P>
17: This module is the private part of the request object. It has the functions
18: declarations that are private to the Library and that shouldn't be used by
19: applications. The module has been separated from the old HTAccess module.
20: See also the public part of the declarition in the <A HREF="HTReq.html">HTReq
21: Module</A>.
22: <P>
23: This module is implemented by <A HREF="HTReqMan.c">HTReqMan.c</A>, and it
24: is a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C Reference
25: Library</A>.
2.1 frystyk 26: <PRE>
27: #ifndef HTREQMAN_H
28: #define HTREQMAN_H
29:
30: #include "<A HREF="HTReq.html">HTReq.h</A>"
31: #include "<A HREF="HTList.html">HTList.h</A>"
32: #include "<A HREF="HTFormat.html">HTFormat.h</A>"
33: #include "<A HREF="HTAnchor.html">HTAnchor.h</A>"
34: #include "<A HREF="HTMethod.html">HTMethod.h</A>"
35: #include "<A HREF="HTAABrow.html">HTAABrow.h</A>"
36: #include "<A HREF="HTStream.html">HTStream.h</A>"
37: #include "<A HREF="HTNet.html">HTNet.h</A>"
2.25 ! eric 38: #include "<A HREF="HTMIMPrs.html">HTMIMPrs.h</A>"
2.1 frystyk 39: </PRE>
2.23 frystyk 40: <P>
41: When a request is handled, all kinds of things about it need to be passed
42: along together with a request. It is intended to live as long as the request
43: is still active, but can be deleted as soon as it has terminated. Only the
44: anchor object stays around after the request itself is terminated.
2.1 frystyk 45: <PRE>
46: struct _HTRequest {
2.14 frystyk 47:
48: BOOL internal; /* Does the app knows about this one? */
49:
2.1 frystyk 50: HTMethod method;
51: HTReload reload;
52:
2.6 frystyk 53: char * boundary; /* MIME multipart boundary */
2.1 frystyk 54: int retrys; /* Number of automatic reloads */
55: time_t retry_after; /* Absolut time for a retry */
56: HTNet * net; /* Information about socket etc. */
2.5 frystyk 57: HTPriority priority; /* Priority for this request */
2.1 frystyk 58: </PRE>
2.23 frystyk 59: <H3>
60: User Profile
61: </H3>
62: <P>
63: Each request can be assigned a <A HREF="HTUser.html">user profile</A> containing
64: information about this host and the user issuing the request.
65: <PRE>
66: HTUserProfile * userprofile;
67: </PRE>
68: <H3>
69: Accept headers
70: </H3>
2.1 frystyk 71: <PRE>
72: HTList * conversions;
73: BOOL conv_local;
74:
75: HTList * encodings;
76: BOOL enc_local;
77:
2.22 frystyk 78: HTList * ctes;
79: BOOL cte_local;
2.21 frystyk 80:
2.1 frystyk 81: HTList * languages;
82: BOOL lang_local;
83:
84: HTList * charsets;
85: BOOL char_local;
2.20 hallam 86:
87: HTList * befores;
88: BOOL befores_local;
89:
90: HTList * afters;
91: BOOL afters_local;
2.1 frystyk 92: </PRE>
2.23 frystyk 93: <H3>
94: Headers and header information
95: </H3>
2.1 frystyk 96: <PRE>
97: HTGnHd GenMask;
2.12 frystyk 98: HTRsHd ResponseMask;
2.1 frystyk 99: HTRqHd RequestMask;
100: HTEnHd EntityMask;
2.5 frystyk 101:
2.25 ! eric 102: HTMIMEParseSet * parseSet;
2.5 frystyk 103: BOOL pars_local;
104:
105: HTList * generators;
106: BOOL gens_local;
2.1 frystyk 107: </PRE>
2.23 frystyk 108: <H3>
109: Anchors
110: </H3>
2.1 frystyk 111: <PRE>
2.10 frystyk 112: HTParentAnchor * anchor; /* The Client anchor for this request */
113:
2.1 frystyk 114: HTChildAnchor * childAnchor; /* For element within the object */
115: HTParentAnchor * parentAnchor; /* For referer field */
116: </PRE>
2.23 frystyk 117: <H4>
118: Redirection
119: </H4>
120: <P>
121: If we get a redirection back then we return the new destination for this
122: request to the application using this anchor.
2.14 frystyk 123: <PRE>
124: HTAnchor * redirectionAnchor; /* Redirection URL */
125: </PRE>
2.23 frystyk 126: <H3>
127: Streams From Network to Application
128: </H3>
2.1 frystyk 129: <PRE>
130: HTStream * output_stream;
131: HTFormat output_format;
132:
133: HTStream* debug_stream;
134: HTFormat debug_format;
135: </PRE>
2.23 frystyk 136: <H3>
137: Streams From Application to Network
138: </H3>
2.1 frystyk 139: <PRE>
140: HTStream * input_stream;
141: HTFormat input_format;
142: </PRE>
2.23 frystyk 143: <H3>
144: Callback Function for getting data down the Input Stream
145: </H3>
2.1 frystyk 146: <PRE>
2.5 frystyk 147: HTPostCallback * PostCallback;
2.1 frystyk 148: </PRE>
2.23 frystyk 149: <H3>
150: Context Swapping
151: </H3>
2.1 frystyk 152: <PRE>
153: HTRequestCallback * callback;
154: void * context;
155: </PRE>
2.23 frystyk 156: <H3>
157: Other Flags
158: </H3>
2.1 frystyk 159: <PRE>
2.13 frystyk 160: BOOL preemptive;
2.1 frystyk 161: BOOL ContentNegotiation;
162: BOOL using_proxy;
163: </PRE>
2.23 frystyk 164: <H3>
165: Error Manager
166: </H3>
2.1 frystyk 167: <PRE>
168: HTList * error_stack; /* List of errors */
169: </PRE>
2.23 frystyk 170: <H3>
171: PostWeb Information
172: </H3>
2.1 frystyk 173: <PRE>
174: HTRequest * source; /* Source for request or itself */
2.16 frystyk 175: HTParentAnchor * source_anchor; /* Source anchor or itself */
176:
2.1 frystyk 177: HTRequest * mainDestination; /* For the typical case */
178: HTList * destinations; /* List of related requests */
179: int destRequests; /* Number of destination requests */
180: int destStreams; /* Number of destination streams */
181: </PRE>
2.23 frystyk 182: <H3>
183: Access Authentication Information
184: </H3>
185: <P>
186: The <CODE>challenge</CODE> and the <CODE>credentials</CODE> entries are use
187: by the authentication parsers and generators respectively. It is required
188: to have a <CODE>scheme</CODE> in order to find a parser for an authentication
189: scheme.
2.1 frystyk 190: <PRE>
2.17 frystyk 191: char * scheme; /* Current authentication scheme */
192: char * realm; /* Current realm */
2.18 frystyk 193:
2.17 frystyk 194: HTAssocList * challenge; /* Challenge received by client */
195: HTAssocList * credentials; /* Credentials received by server */
2.1 frystyk 196: </PRE>
2.23 frystyk 197: <H3>
198: Windows Specific Information
199: </H3>
2.1 frystyk 200: <PRE>
2.7 frystyk 201: #ifdef WWW_WIN_ASYNC
202: HWND hwnd; /* Windows handle for MSWindows */
203: unsigned long winMsg; /* msg number of Windows eloop */
204: #endif /* WWW_WIN_ASYNC */
2.1 frystyk 205: </PRE>
206: <PRE>
207: };
208: </PRE>
2.23 frystyk 209: <H2>
210: Post Web Management
211: </H2>
212: <P>
213: These functions are mainly used internally in the Library but there is no
214: reason for them not to be public.
2.1 frystyk 215: <PRE>
216: extern BOOL HTRequest_addDestination (HTRequest * src, HTRequest * dest);
217: extern BOOL HTRequest_removeDestination (HTRequest * dest);
2.14 frystyk 218: extern BOOL HTRequest_destinationsReady (HTRequest * me);
2.1 frystyk 219:
220: extern BOOL HTRequest_linkDestination (HTRequest * dest);
221: extern BOOL HTRequest_unlinkDestination (HTRequest * dest);
222:
223: extern BOOL HTRequest_removePostWeb (HTRequest * me);
224: extern BOOL HTRequest_killPostWeb (HTRequest * me);
225:
226: #define HTRequest_mainDestination(me) \
2.23 frystyk 227: ((me) && (me)->source ? (me)->source->mainDestination : NULL)
2.1 frystyk 228: #define HTRequest_isDestination(me) \
2.23 frystyk 229: ((me) && (me)->source && (me) != (me)->source)
2.1 frystyk 230: #define HTRequest_isMainDestination(me) \
2.23 frystyk 231: ((me) && (me)->source && \
232: (me) == (me)->source->mainDestination)
2.1 frystyk 233: #define HTRequest_isSource(me) \
2.23 frystyk 234: ((me) && (me)->source && (me) == (me)->source)
2.1 frystyk 235: </PRE>
2.23 frystyk 236: <P>
2.1 frystyk 237: End of Declaration
238: <PRE>
239: #endif /* HTREQMAN_H */
240: </PRE>
2.23 frystyk 241: <P>
242: <HR>
2.21 frystyk 243: <ADDRESS>
2.25 ! eric 244: @(#) $Id: HTReqMan.html,v 2.24 1996/06/02 00:34:59 frystyk Exp $
2.21 frystyk 245: </ADDRESS>
2.23 frystyk 246: </BODY></HTML>
Webmaster