action-chain

## action-chain action-chain |

## Synopsis

                        TplActionChain;
    TplActionChain *    tpl_actionchain_new                 (GObject *obj,
                                                             GAsyncReadyCallback cb,
                                                             gpointer user_data);
    void                tpl_actionchain_free                (TplActionChain *self);
    void                (*TplPendingAction)                 (TplActionChain *ctx,
                                                             gpointer user_data);
    void                tpl_actionchain_append              (TplActionChain *self,
                                                             TplPendingAction func,
                                                             gpointer user_data);
    void                tpl_actionchain_prepend             (TplActionChain *self,
                                                             TplPendingAction func,
                                                             gpointer user_data);
    void                tpl_actionchain_continue            (TplActionChain *self);
    void                tpl_actionchain_terminate           (TplActionChain *self);
    gpointer            tpl_actionchain_get_object          (TplActionChain *self);
    gboolean            tpl_actionchain_finish              (GAsyncResult *result);

## Description

## Details

### TplActionChain

    typedef struct {
        GQueue *chain;
        GSimpleAsyncResult *simple;
    } TplActionChain;

### tpl_actionchain_new ()

    TplActionChain *    tpl_actionchain_new                 (GObject *obj,
                                                             GAsyncReadyCallback cb,
                                                             gpointer user_data);

`obj` : |
`cb` : |
`user_data` : |
Returns : |

### tpl_actionchain_free ()

    void                tpl_actionchain_free                (TplActionChain *self);

`self` : |

### TplPendingAction ()

    void                (*TplPendingAction)                 (TplActionChain *ctx,
                                                             gpointer user_data);

`ctx` : |
`user_data` : |

### tpl_actionchain_append ()

    void                tpl_actionchain_append              (TplActionChain *self,
                                                             TplPendingAction func,
                                                             gpointer user_data);

`self` : |
`func` : |
`user_data` : |

### tpl_actionchain_prepend ()

    void                tpl_actionchain_prepend             (TplActionChain *self,
                                                             TplPendingAction func,
                                                             gpointer user_data);

`self` : |
`func` : |
`user_data` : |

### tpl_actionchain_continue ()

    void                tpl_actionchain_continue            (TplActionChain *self);

`self` : |

### tpl_actionchain_terminate ()

    void                tpl_actionchain_terminate           (TplActionChain *self);

`self` : |

### tpl_actionchain_get_object ()

    gpointer            tpl_actionchain_get_object          (TplActionChain *self);

`self` : |
Returns : |

### tpl_actionchain_finish ()

    gboolean            tpl_actionchain_finish              (GAsyncResult *result);

`result` : |
Returns : |