Annotation of libwww/Library/src/HTMIME.html, revision 2.28

2.6       timbl       1: <HTML>
                      2: <HEAD>
2.24      frystyk     3:   <!-- Changed by: Henrik Frystyk Nielsen, 17-Apr-1996 -->
2.26      frystyk     4:   <TITLE>W3C Sample Code Library libwww MIME/RFC822 Parsers</TITLE>
2.6       timbl       5: </HEAD>
                      6: <BODY>
2.24      frystyk     7: <H1>
2.25      frystyk     8:   MIME Parsers
2.24      frystyk     9: </H1>
2.9       frystyk    10: <PRE>
                     11: /*
2.13      frystyk    12: **     (c) COPYRIGHT MIT 1995.
2.9       frystyk    13: **     Please first read the full copyright statement in the file COPYRIGH.
                     14: */
                     15: </PRE>
2.24      frystyk    16: <P>
                     17: The MIME parser stream presents a MIME document with a header and possibly
                     18: a footer. It recursively invokes the format manager to handle embedded formats
                     19: like MIME multipart. As well as stripping off and parsing the headers, the
                     20: MIME parser has to parse any weird MIME encodings it may meet within the
                     21: body parts of messages, and must deal with multipart messages.
                     22: <P>
                     23: This module is implemented to the level necessary for operation with WWW,
                     24: but is not currently complete for any arbitrary MIME message.
                     25: <P>
2.9       frystyk    26: This module is implemented by <A HREF="HTMIME.c">HTMIME.c</A>, and it is
2.28    ! frystyk    27: a part of the <A HREF="http://www.w3.org/Library/"> W3C Sample Code
2.24      frystyk    28: Library</A>.
2.9       frystyk    29: <PRE>
                     30: #ifndef HTMIME_H
2.1       timbl      31: #define HTMIME_H
                     32: 
                     33: #include "HTStream.h"
2.15      frystyk    34: #include "HTFormat.h"
2.6       timbl      35: </PRE>
2.24      frystyk    36: <H3>
                     37:   MIME header parser stream
                     38: </H3>
                     39: <P>
                     40: This stream parses a complete MIME header and if a content type header is
                     41: found then the stream stack is called. Any left over data is pumped right
                     42: through the stream.
2.8       frystyk    43: <PRE>
2.20      frystyk    44: extern HTConverter HTMIMEConvert;
2.18      frystyk    45: </PRE>
2.24      frystyk    46: <H3>
                     47:   MIME Header ONLY parser stream
                     48: </H3>
                     49: <P>
                     50: This stream parses a complete MIME header and then returnes HT_PAUSE. It
                     51: does not set up any streams and resting data stays in the buffer. This can
                     52: be used if you only want to parse the headers before you decide what to do
                     53: next. This is for example the case in a server app.
2.18      frystyk    54: <PRE>
2.20      frystyk    55: extern HTConverter HTMIMEHeader;
2.18      frystyk    56: </PRE>
2.24      frystyk    57: <H3>
                     58:   MIME Footer ONLY parser
                     59: </H3>
                     60: <P>
2.23      frystyk    61: Parse only a footer, for example after a chunked encoding.
2.18      frystyk    62: <PRE>
2.23      frystyk    63: extern HTConverter HTMIMEFooter;
                     64: </PRE>
2.25      frystyk    65: <H3>
2.27      frystyk    66:   MIME 1xx Continue Header Parser
                     67: </H3>
                     68: <P>
                     69: When parsed the header it returns HT_CONTINUE
                     70: <PRE>
                     71: extern HTConverter HTMIMEContinue;
                     72: </PRE>
                     73: <H3>
2.25      frystyk    74:   Partial MIME Response parser
                     75: </H3>
                     76: <P>
                     77: In case we sent a <I>Range conditional GET</I> we may get back a partial
                     78: response. This response must be appended to the already existing cache entry
                     79: before presented to the user. That is, first we load the cached object and
                     80: pump it down the pipe and then the new data follows. Only the latter part
                     81: gets appended to the cache, of course.
                     82: <PRE>
                     83: extern HTConverter HTMIMEPartial;
                     84: </PRE>
2.23      frystyk    85: <PRE>
2.1       timbl      86: #endif
2.8       frystyk    87: </PRE>
2.24      frystyk    88: <P>
                     89:   <HR>
2.22      frystyk    90: <ADDRESS>
2.28    ! frystyk    91:   @(#) $Id: HTMIME.html,v 2.27 1997/03/21 19:33:13 frystyk Exp $
2.22      frystyk    92: </ADDRESS>
2.24      frystyk    93: </BODY></HTML>

Webmaster