15#include "libical_ical_export.h" 
   23    SSPM_IMAGE_MAJOR_TYPE,
 
   24    SSPM_AUDIO_MAJOR_TYPE,
 
   25    SSPM_VIDEO_MAJOR_TYPE,
 
   26    SSPM_APPLICATION_MAJOR_TYPE,
 
   27    SSPM_MULTIPART_MAJOR_TYPE,
 
   28    SSPM_MESSAGE_MAJOR_TYPE,
 
   29    SSPM_UNKNOWN_MAJOR_TYPE
 
   36    SSPM_PLAIN_MINOR_TYPE,
 
   37    SSPM_RFC822_MINOR_TYPE,
 
   38    SSPM_DIGEST_MINOR_TYPE,
 
   39    SSPM_CALENDAR_MINOR_TYPE,
 
   40    SSPM_MIXED_MINOR_TYPE,
 
   41    SSPM_RELATED_MINOR_TYPE,
 
   42    SSPM_ALTERNATIVE_MINOR_TYPE,
 
   43    SSPM_PARALLEL_MINOR_TYPE,
 
   44    SSPM_UNKNOWN_MINOR_TYPE
 
   50    SSPM_QUOTED_PRINTABLE_ENCODING,
 
   61    SSPM_UNEXPECTED_BOUNDARY_ERROR,
 
   62    SSPM_WRONG_BOUNDARY_ERROR,
 
   63    SSPM_NO_BOUNDARY_ERROR,
 
   65    SSPM_MALFORMED_HEADER_ERROR
 
   71    enum sspm_major_type major;
 
   72    enum sspm_minor_type minor;
 
   74    char **content_type_params;
 
   76    enum sspm_encoding encoding;
 
   79    enum sspm_error error;
 
 
   91    enum sspm_major_type major;
 
   92    enum sspm_minor_type minor;
 
   93    void *(*new_part)(void);
 
   94    void (*add_line)(
void *part, 
struct sspm_header *header, 
const char *line, 
size_t size);
 
   95    void *(*end_part)(
void *part);
 
   96    void (*free_part)(
void *part);
 
 
   99LIBICAL_ICAL_EXPORT 
const char *sspm_major_type_string(
enum sspm_major_type type);
 
  101LIBICAL_ICAL_EXPORT 
const char *sspm_minor_type_string(
enum sspm_minor_type type);
 
  103LIBICAL_ICAL_EXPORT 
const char *sspm_encoding_string(
enum sspm_encoding type);
 
  105LIBICAL_ICAL_EXPORT 
int sspm_parse_mime(
struct sspm_part *parts,
 
  108                                        char *(*get_string)(
char *s, 
size_t size, 
void *data),
 
  109                                        void *get_string_data, 
struct sspm_header *first_header);
 
  111LIBICAL_ICAL_EXPORT 
void sspm_free_parts(
struct sspm_part *parts, 
size_t max_parts);
 
  113LIBICAL_ICAL_EXPORT 
char *decode_quoted_printable(
char *dest, 
char *src, 
size_t *size);
 
  115LIBICAL_ICAL_EXPORT 
char *decode_base64(
char *dest, 
char *src, 
size_t *size);
 
  117LIBICAL_ICAL_EXPORT 
void sspm_write_mime(
struct sspm_part *parts, 
size_t num_parts,
 
  118                                         char **output_string, 
const char *header);