/* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */This module is a part of the W3C Sample Code Library.
#ifndef HTMULPAR_H #define HTMULPAR_H #include "HTStream.h" #include "HTList.h" #ifdef __cplusplus extern "C" { #endifThe MIME multipart stream is used to parse MIME multipart messages. It works a bit like a structured stream in that it has some methods to begin and end MIME body just as a structured stream has methods for beginning and ending tags.
The HTMultipart stream
is a subclass of a Generic Stream Object. As always, we don't
have classes in basic C so we have to do this by hand!
typedef struct _HTMultipart HTMultipart; typedef struct _HTMultipartClass { char * name; int (*flush) (HTMultipart * me); int (*_free) (HTMultipart * me); int (*abort) (HTMultipart * me, HTList * errorlist); int (*put_character)(HTMultipart * me, char ch); int (*put_string) (HTMultipart * me, const char * str); int (*put_block) (HTMultipart * me, const char * str, int len);See the Generic Stream Definition for an explanation of these methods. Note that they all have a
HTMultipart
object a the parameter, not a generic
stream. This is to avoid incompatible pointer warnings
int (*begin_part) (HTMultipart * me, const char * boundary); int (*end_part) (HTMultipart * me); int (*preamble) (HTMultipart * me, const char * pre); int (*epilogue) (HTMultipart * me, const char * epi); } HTMultipartClass; #ifdef __cplusplus } #endif #endif /* HTMULPAR_H */