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()

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

### enum MilterManagerLeaderError

    typedef enum {
        MILTER_MANAGER_LEADER_ERROR_INVALID_STATE
    } MilterManagerLeaderError;

### MilterManagerLeader

    typedef struct {
        GObject object;
    } 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_error_quark ()

    GQuark              milter_manager_leader_error_quark   (void);

### milter_manager_leader_new ()

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

### milter_manager_leader_set_launcher_channel ()

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

### milter_manager_leader_negotiate ()

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

### 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_helo ()

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

### milter_manager_leader_envelope_from ()

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

### milter_manager_leader_envelope_recipient ()

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

### milter_manager_leader_data ()

    MilterStatus        milter_manager_leader_data          (MilterManagerLeader *leader);

### milter_manager_leader_unknown ()

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

### milter_manager_leader_header ()

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

### milter_manager_leader_end_of_header ()

    MilterStatus        milter_manager_leader_end_of_header (MilterManagerLeader *leader);

### milter_manager_leader_body ()

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

### milter_manager_leader_end_of_message ()

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

### milter_manager_leader_quit ()

    MilterStatus        milter_manager_leader_quit          (MilterManagerLeader *leader);

### milter_manager_leader_abort ()

    MilterStatus        milter_manager_leader_abort         (MilterManagerLeader *leader);

### milter_manager_leader_timeout ()

    void                milter_manager_leader_timeout       (MilterManagerLeader *leader);

### milter_manager_leader_define_macro ()

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