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) &amp;&amp; (me)-&gt;source ? (me)-&gt;source-&gt;mainDestination : NULL)
2.1       frystyk   228: #define HTRequest_isDestination(me) \
2.23      frystyk   229:        ((me) &amp;&amp; (me)-&gt;source &amp;&amp; (me) != (me)-&gt;source)
2.1       frystyk   230: #define HTRequest_isMainDestination(me) \
2.23      frystyk   231:        ((me) &amp;&amp; (me)-&gt;source &amp;&amp; \
                    232:        (me) == (me)-&gt;source-&gt;mainDestination)
2.1       frystyk   233: #define HTRequest_isSource(me) \
2.23      frystyk   234:        ((me) &amp;&amp; (me)-&gt;source &amp;&amp; (me) == (me)-&gt;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