MilterManagerLeader 3 milter managerライブラリ
MilterManagerLeader

## 概要

    #define             MILTER_MANAGER_LEADER_ERROR
    #define             MILTER_MANAGER_LEADER               (obj)
    enum                MilterManagerLeaderError;
                        MilterManagerLeader;
    enum                MilterManagerLeaderState;
    GQuark              milter_manager_leader_error_quark   (void);
    MilterManagerLeader * milter_manager_leader_new         (MilterManagerConfiguration *configuration,
                                                             MilterClientContext *client_context);
    void                milter_manager_leader_set_launcher_channel
                                                            (MilterManagerLeader *leader,
                                                             GIOChannel *read_channel,
                                                             GIOChannel *write_channel);
    MilterStatus        milter_manager_leader_negotiate     (MilterManagerLeader *leader,
                                                             MilterOption *option,
                                                             MilterMacrosRequests *macros_requests);
    MilterStatus        milter_manager_leader_connect       (MilterManagerLeader *leader,
                                                             const gchar *host_name,
                                                             struct sockaddr *address,
                                                             socklen_t address_length);
    MilterStatus        milter_manager_leader_helo          (MilterManagerLeader *leader,
                                                             const gchar *fqdn);
    MilterStatus        milter_manager_leader_envelope_from (MilterManagerLeader *leader,
                                                             const gchar *from);
    MilterStatus        milter_manager_leader_envelope_recipient
                                                            (MilterManagerLeader *leader,
                                                             const gchar *recipient);
    MilterStatus        milter_manager_leader_data          (MilterManagerLeader *leader);
    MilterStatus        milter_manager_leader_unknown       (MilterManagerLeader *leader,
                                                             const gchar *command);
    MilterStatus        milter_manager_leader_header        (MilterManagerLeader *leader,
                                                             const gchar *name,
                                                             const gchar *value);
    MilterStatus        milter_manager_leader_end_of_header (MilterManagerLeader *leader);
    MilterStatus        milter_manager_leader_body          (MilterManagerLeader *leader,
                                                             const gchar *chunk,
                                                             gsize size);
    MilterStatus        milter_manager_leader_end_of_message
                                                            (MilterManagerLeader *leader,
                                                             const gchar *chunk,
                                                             gsize size);
    MilterStatus        milter_manager_leader_quit          (MilterManagerLeader *leader);
    MilterStatus        milter_manager_leader_abort         (MilterManagerLeader *leader);
    void                milter_manager_leader_timeout       (MilterManagerLeader *leader);
    void                milter_manager_leader_define_macro  (MilterManagerLeader *leader,
                                                             MilterCommand command,
                                                             GHashTable *macros);

## 説明

## 詳細

### MILTER_MANAGER_LEADER_ERROR

    #define MILTER_MANAGER_LEADER_ERROR           (milter_manager_leader_error_quark())

MILTER_MANAGER_LEADER_ERROR

### MILTER_MANAGER_LEADER()

    #define MILTER_MANAGER_LEADER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), MILTER_TYPE_MANAGER_LEADER, MilterManagerLeader))

MILTER_MANAGER_LEADER

### enum MilterManagerLeaderError

    typedef enum {
        MILTER_MANAGER_LEADER_ERROR_INVALID_STATE
    } MilterManagerLeaderError;

`MILTER_MANAGER_LEADER_ERROR_INVALID_STATE`

MilterManagerLeaderError

### MilterManagerLeader

    typedef struct {
        GObject object;
    } MilterManagerLeader;

MilterManagerLeader

### enum MilterManagerLeaderState

    typedef enum {
        MILTER_MANAGER_LEADER_STATE_INVALID,
        MILTER_MANAGER_LEADER_STATE_START,
        MILTER_MANAGER_LEADER_STATE_NEGOTIATE,
        MILTER_MANAGER_LEADER_STATE_NEGOTIATE_REPLIED,
        MILTER_MANAGER_LEADER_STATE_CONNECT,
        MILTER_MANAGER_LEADER_STATE_CONNECT_REPLIED,
        MILTER_MANAGER_LEADER_STATE_HELO,
        MILTER_MANAGER_LEADER_STATE_HELO_REPLIED,
        MILTER_MANAGER_LEADER_STATE_ENVELOPE_FROM,
        MILTER_MANAGER_LEADER_STATE_ENVELOPE_FROM_REPLIED,
        MILTER_MANAGER_LEADER_STATE_ENVELOPE_RECIPIENT,
        MILTER_MANAGER_LEADER_STATE_ENVELOPE_RECIPIENT_REPLIED,
        MILTER_MANAGER_LEADER_STATE_DATA,
        MILTER_MANAGER_LEADER_STATE_DATA_REPLIED,
        MILTER_MANAGER_LEADER_STATE_UNKNOWN,
        MILTER_MANAGER_LEADER_STATE_UNKNOWN_REPLIED,
        MILTER_MANAGER_LEADER_STATE_HEADER,
        MILTER_MANAGER_LEADER_STATE_HEADER_REPLIED,
        MILTER_MANAGER_LEADER_STATE_END_OF_HEADER,
        MILTER_MANAGER_LEADER_STATE_END_OF_HEADER_REPLIED,
        MILTER_MANAGER_LEADER_STATE_BODY,
        MILTER_MANAGER_LEADER_STATE_BODY_REPLIED,
        MILTER_MANAGER_LEADER_STATE_END_OF_MESSAGE,
        MILTER_MANAGER_LEADER_STATE_END_OF_MESSAGE_REPLIED,
        MILTER_MANAGER_LEADER_STATE_QUIT,
        MILTER_MANAGER_LEADER_STATE_QUIT_REPLIED,
        MILTER_MANAGER_LEADER_STATE_ABORT,
        MILTER_MANAGER_LEADER_STATE_ABORT_REPLIED
    } MilterManagerLeaderState;

`MILTER_MANAGER_LEADER_STATE_INVALID`

`MILTER_MANAGER_LEADER_STATE_START`

`MILTER_MANAGER_LEADER_STATE_NEGOTIATE`

`MILTER_MANAGER_LEADER_STATE_NEGOTIATE_REPLIED`

`MILTER_MANAGER_LEADER_STATE_CONNECT`

`MILTER_MANAGER_LEADER_STATE_CONNECT_REPLIED`

`MILTER_MANAGER_LEADER_STATE_HELO`

`MILTER_MANAGER_LEADER_STATE_HELO_REPLIED`

`MILTER_MANAGER_LEADER_STATE_ENVELOPE_FROM`

`MILTER_MANAGER_LEADER_STATE_ENVELOPE_FROM_REPLIED`

`MILTER_MANAGER_LEADER_STATE_ENVELOPE_RECIPIENT`

`MILTER_MANAGER_LEADER_STATE_ENVELOPE_RECIPIENT_REPLIED`

`MILTER_MANAGER_LEADER_STATE_DATA`

`MILTER_MANAGER_LEADER_STATE_DATA_REPLIED`

`MILTER_MANAGER_LEADER_STATE_UNKNOWN`

`MILTER_MANAGER_LEADER_STATE_UNKNOWN_REPLIED`

`MILTER_MANAGER_LEADER_STATE_HEADER`

`MILTER_MANAGER_LEADER_STATE_HEADER_REPLIED`

`MILTER_MANAGER_LEADER_STATE_END_OF_HEADER`

`MILTER_MANAGER_LEADER_STATE_END_OF_HEADER_REPLIED`

`MILTER_MANAGER_LEADER_STATE_BODY`

`MILTER_MANAGER_LEADER_STATE_BODY_REPLIED`

`MILTER_MANAGER_LEADER_STATE_END_OF_MESSAGE`

`MILTER_MANAGER_LEADER_STATE_END_OF_MESSAGE_REPLIED`

`MILTER_MANAGER_LEADER_STATE_QUIT`

`MILTER_MANAGER_LEADER_STATE_QUIT_REPLIED`

`MILTER_MANAGER_LEADER_STATE_ABORT`

`MILTER_MANAGER_LEADER_STATE_ABORT_REPLIED`

MilterManagerLeaderState

### milter_manager_leader_error_quark ()

    GQuark              milter_manager_leader_error_quark   (void);

milter_manager_leader_error_quark

### milter_manager_leader_new ()

    MilterManagerLeader * milter_manager_leader_new         (MilterManagerConfiguration *configuration,
                                                             MilterClientContext *client_context);

milter_manager_leader_new

### milter_manager_leader_set_launcher_channel ()

    void                milter_manager_leader_set_launcher_channel
                                                            (MilterManagerLeader *leader,
                                                             GIOChannel *read_channel,
                                                             GIOChannel *write_channel);

milter_manager_leader_set_launcher_channel

### milter_manager_leader_negotiate ()

    MilterStatus        milter_manager_leader_negotiate     (MilterManagerLeader *leader,
                                                             MilterOption *option,
                                                             MilterMacrosRequests *macros_requests);

milter_manager_leader_negotiate

### milter_manager_leader_connect ()

    MilterStatus        milter_manager_leader_connect       (MilterManagerLeader *leader,
                                                             const gchar *host_name,
                                                             struct sockaddr *address,
                                                             socklen_t address_length);

milter_manager_leader_connect

### milter_manager_leader_helo ()

    MilterStatus        milter_manager_leader_helo          (MilterManagerLeader *leader,
                                                             const gchar *fqdn);

milter_manager_leader_helo

### milter_manager_leader_envelope_from ()

    MilterStatus        milter_manager_leader_envelope_from (MilterManagerLeader *leader,
                                                             const gchar *from);

milter_manager_leader_envelope_from

### milter_manager_leader_envelope_recipient ()

    MilterStatus        milter_manager_leader_envelope_recipient
                                                            (MilterManagerLeader *leader,
                                                             const gchar *recipient);

milter_manager_leader_envelope_recipient

### milter_manager_leader_data ()

    MilterStatus        milter_manager_leader_data          (MilterManagerLeader *leader);

milter_manager_leader_data

### milter_manager_leader_unknown ()

    MilterStatus        milter_manager_leader_unknown       (MilterManagerLeader *leader,
                                                             const gchar *command);

milter_manager_leader_unknown

### milter_manager_leader_header ()

    MilterStatus        milter_manager_leader_header        (MilterManagerLeader *leader,
                                                             const gchar *name,
                                                             const gchar *value);

milter_manager_leader_header

### milter_manager_leader_end_of_header ()

    MilterStatus        milter_manager_leader_end_of_header (MilterManagerLeader *leader);

milter_manager_leader_end_of_header

### milter_manager_leader_body ()

    MilterStatus        milter_manager_leader_body          (MilterManagerLeader *leader,
                                                             const gchar *chunk,
                                                             gsize size);

milter_manager_leader_body

### milter_manager_leader_end_of_message ()

    MilterStatus        milter_manager_leader_end_of_message
                                                            (MilterManagerLeader *leader,
                                                             const gchar *chunk,
                                                             gsize size);

milter_manager_leader_end_of_message

### milter_manager_leader_quit ()

    MilterStatus        milter_manager_leader_quit          (MilterManagerLeader *leader);

milter_manager_leader_quit

### milter_manager_leader_abort ()

    MilterStatus        milter_manager_leader_abort         (MilterManagerLeader *leader);

milter_manager_leader_abort

### milter_manager_leader_timeout ()

    void                milter_manager_leader_timeout       (MilterManagerLeader *leader);

milter_manager_leader_timeout

### milter_manager_leader_define_macro ()

    void                milter_manager_leader_define_macro  (MilterManagerLeader *leader,
                                                             MilterCommand command,
                                                             GHashTable *macros);

milter_manager_leader_define_macro