## camel-operation

camel-operation

## Synopsis

                        CamelOperation;
    void                (*CamelOperationStatusFunc)         (struct _CamelOperation *op,
                                                             const char *what,
                                                             int pc,
                                                             void *data);
    enum                camel_operation_status_t;
    CamelOperation*     camel_operation_new                 (CamelOperationStatusFunc status,
                                                             void *status_data);
    void                camel_operation_mute                (CamelOperation *cc);
    void                camel_operation_ref                 (CamelOperation *cc);
    void                camel_operation_unref               (CamelOperation *cc);
    void                camel_operation_cancel              (CamelOperation *cc);
    void                camel_operation_uncancel            (CamelOperation *cc);
    CamelOperation*     camel_operation_register            (CamelOperation *cc);
    void                camel_operation_unregister          (CamelOperation *cc);
    void                camel_operation_cancel_block        (CamelOperation *cc);
    void                camel_operation_cancel_unblock      (CamelOperation *cc);
    int                 camel_operation_cancel_check        (CamelOperation *cc);
    int                 camel_operation_cancel_fd           (CamelOperation *cc);
    struct PRFileDesc*  camel_operation_cancel_prfd         (CamelOperation *cc);
    CamelOperation*     camel_operation_registered          (void);
    void                camel_operation_start               (CamelOperation *cc,
                                                             char *what,
                                                             ...);
    void                camel_operation_start_transient     (CamelOperation *cc,
                                                             char *what,
                                                             ...);
    void                camel_operation_progress            (CamelOperation *cc,
                                                             int pc);
    void                camel_operation_progress_count      (CamelOperation *cc,
                                                             int sofar);
    void                camel_operation_end                 (CamelOperation *cc);

## Description

## Details

### CamelOperation

    typedef struct _CamelOperation CamelOperation;

### CamelOperationStatusFunc ()

    void                (*CamelOperationStatusFunc)         (struct _CamelOperation *op,
                                                             const char *what,
                                                             int pc,
                                                             void *data);

`op` : |
`what` : |
`pc` : |
`data` : |

### enum camel_operation_status_t

    typedef enum _camel_operation_status_t {
    	CAMEL_OPERATION_START = -1,
    	CAMEL_OPERATION_END = -2
    } camel_operation_status_t;

### camel_operation_new ()

    CamelOperation*     camel_operation_new                 (CamelOperationStatusFunc status,
                                                             void *status_data);

`status` : |
`status_data` : |
Returns : |

### camel_operation_mute ()

    void                camel_operation_mute                (CamelOperation *cc);

`cc` : |

### camel_operation_ref ()

    void                camel_operation_ref                 (CamelOperation *cc);

`cc` : |

### camel_operation_unref ()

    void                camel_operation_unref               (CamelOperation *cc);

`cc` : |

### camel_operation_cancel ()

    void                camel_operation_cancel              (CamelOperation *cc);

`cc` : |

### camel_operation_uncancel ()

    void                camel_operation_uncancel            (CamelOperation *cc);

`cc` : |

### camel_operation_register ()

    CamelOperation*     camel_operation_register            (CamelOperation *cc);

`cc` : |
Returns : |

### camel_operation_unregister ()

    void                camel_operation_unregister          (CamelOperation *cc);

`cc` : |

### camel_operation_cancel_block ()

    void                camel_operation_cancel_block        (CamelOperation *cc);

`cc` : |

### camel_operation_cancel_unblock ()

    void                camel_operation_cancel_unblock      (CamelOperation *cc);

`cc` : |

### camel_operation_cancel_check ()

    int                 camel_operation_cancel_check        (CamelOperation *cc);

`cc` : |
Returns : |

### camel_operation_cancel_fd ()

    int                 camel_operation_cancel_fd           (CamelOperation *cc);

`cc` : |
Returns : |

### camel_operation_cancel_prfd ()

    struct PRFileDesc*  camel_operation_cancel_prfd         (CamelOperation *cc);

`cc` : |
Returns : |

### camel_operation_registered ()

    CamelOperation*     camel_operation_registered          (void);

Returns : |

### camel_operation_start ()

    void                camel_operation_start               (CamelOperation *cc,
                                                             char *what,
                                                             ...);

`cc` : |
`what` : |
`...` : |

### camel_operation_start_transient ()

    void                camel_operation_start_transient     (CamelOperation *cc,
                                                             char *what,
                                                             ...);

`cc` : |
`what` : |
`...` : |

### camel_operation_progress ()

    void                camel_operation_progress            (CamelOperation *cc,
                                                             int pc);

`cc` : |
`pc` : |

### camel_operation_progress_count ()

    void                camel_operation_progress_count      (CamelOperation *cc,
                                                             int sofar);

`cc` : |
`sofar` : |

### camel_operation_end ()

    void                camel_operation_end                 (CamelOperation *cc);

`cc` : |