MilterDecoder
3
milter managerライブラリ

# MilterDecoder

## 概要

    #define             MILTER_DECODER_ERROR
    enum                MilterDecoderError;
    enum                MilterDecoderCompareType;
    struct              MilterDecoder;
    GQuark              milter_decoder_error_quark          (void);
    gboolean            milter_decoder_decode               (MilterDecoder *decoder,
                                                             const gchar *chunk,
                                                             gsize size,
                                                             GError **error);
    gboolean            milter_decoder_end_decode           (MilterDecoder *decoder,
                                                             GError **error);
    const gchar *       milter_decoder_get_buffer           (MilterDecoder *decoder);
    gint32              milter_decoder_get_command_length   (MilterDecoder *decoder);
    gboolean            milter_decoder_check_command_length (const gchar *buffer,
                                                             gint length,
                                                             gint expected_length,
                                                             MilterDecoderCompareType compare_type,
                                                             GError **error,
                                                             const gchar *target);
    gint                milter_decoder_decode_null_terminated_value
                                                            (const gchar *buffer,
                                                             gint length,
                                                             GError **error,
                                                             const gchar *message);
    gboolean            milter_decoder_decode_header_content
                                                            (const gchar *buffer,
                                                             gint length,
                                                             const gchar **name,
                                                             const gchar **value,
                                                             GError **error);
    MilterOption *      milter_decoder_decode_negotiate     (const gchar *buffer,
                                                             gint length,
                                                             gint *processed_length,
                                                             GError **error);

## オブジェクト階層

      GObject
       +----MilterDecoder

## 説明

## 詳細

### MILTER_DECODER_ERROR

    #define MILTER_DECODER_ERROR           (milter_decoder_error_quark())

### enum MilterDecoderError

    typedef enum {
        MILTER_DECODER_ERROR_SHORT_COMMAND_LENGTH,
        MILTER_DECODER_ERROR_LONG_COMMAND_LENGTH,
        MILTER_DECODER_ERROR_UNEXPECTED_END,
        MILTER_DECODER_ERROR_UNEXPECTED_COMMAND,
        MILTER_DECODER_ERROR_MISSING_NULL
    } MilterDecoderError;

### enum MilterDecoderCompareType

    typedef enum {
        MILTER_DECODER_COMPARE_AT_LEAST,
        MILTER_DECODER_COMPARE_EXACT
    } MilterDecoderCompareType;

### struct MilterDecoder

    struct MilterDecoder;

### milter_decoder_error_quark ()

    GQuark              milter_decoder_error_quark          (void);

### milter_decoder_decode ()

    gboolean            milter_decoder_decode               (MilterDecoder *decoder,
                                                             const gchar *chunk,
                                                             gsize size,
                                                             GError **error);

### milter_decoder_end_decode ()

    gboolean            milter_decoder_end_decode           (MilterDecoder *decoder,
                                                             GError **error);

### milter_decoder_get_buffer ()

    const gchar *       milter_decoder_get_buffer           (MilterDecoder *decoder);

### milter_decoder_get_command_length ()

    gint32              milter_decoder_get_command_length   (MilterDecoder *decoder);

### milter_decoder_check_command_length ()

    gboolean            milter_decoder_check_command_length (const gchar *buffer,
                                                             gint length,
                                                             gint expected_length,
                                                             MilterDecoderCompareType compare_type,
                                                             GError **error,
                                                             const gchar *target);

### milter_decoder_decode_null_terminated_value ()

    gint                milter_decoder_decode_null_terminated_value
                                                            (const gchar *buffer,
                                                             gint length,
                                                             GError **error,
                                                             const gchar *message);

### milter_decoder_decode_header_content ()

    gboolean            milter_decoder_decode_header_content
                                                            (const gchar *buffer,
                                                             gint length,
                                                             const gchar **name,
                                                             const gchar **value,
                                                             GError **error);

### milter_decoder_decode_negotiate ()

    MilterOption *      milter_decoder_decode_negotiate     (const gchar *buffer,
                                                             gint length,
                                                             gint *processed_length,
                                                             GError **error);