## camel-operation camel-operation |

## Functions

GCancellable * | camel_operation_new ()
void | camel_operation_cancel_all ()
void | camel_operation_push_message ()
void | camel_operation_pop_message ()
void | camel_operation_progress ()

## Signals

void | pop-message | Run Last
void | progress | Run Last
void | push-message | Run Last
void | status | Run Last

## Types and Values

struct | CamelOperation

## Object Hierarchy

        GObject
        ╰── GCancellable
            ╰── CamelOperation

## Description

## Functions

### camel_operation_new ()

    GCancellable *
    camel_operation_new (void);

Create a new camel operation handle. Camel operation handles can be used in a multithreaded application (or a single operation handle can be used in a non threaded appliation) to cancel running operations and to obtain notification messages of the internal status of messages.

#### Returns

A new operation handle.

### camel_operation_cancel_all ()

    void
    camel_operation_cancel_all (void);

Cancel all outstanding operations.

### camel_operation_push_message ()

    void
    camel_operation_push_message (GCancellable *cancellable,
                                  const gchar *format,
                                  ...);

Call this function to describe an operation being performed. Call `camel_operation_progress()` to report progress on the operation. Call `camel_operation_pop_message()` when the operation is complete.

This function only works if `cancellable` is a CamelOperation cast as a GCancellable. If `cancellable` is a plain GCancellable or `NULL`, the function does nothing and returns silently.

#### Parameters

cancellable | a GCancellable or `NULL` |
format | a standard `printf()` format string |
... | the parameters to insert into the format string |

### camel_operation_pop_message ()

    void
    camel_operation_pop_message (GCancellable *cancellable);

Pops the most recently pushed message.

This function only works if `cancellable` is a CamelOperation cast as a GCancellable. If `cancellable` is a plain GCancellable or `NULL`, the function does nothing and returns silently.

#### Parameters

cancellable | a GCancellable |

### camel_operation_progress ()

    void
    camel_operation_progress (GCancellable *cancellable,
                              gint percent);

Report progress on the current operation. `percent` reports the current percentage of completion, which should be in the range of 0 to 100.

This function only works if `cancellable` is a CamelOperation cast as a GCancellable. If `cancellable` is a plain GCancellable or `NULL`, the function does nothing and returns silently.

#### Parameters

cancellable | a GCancellable or `NULL` |
percent | percent complete, 0 to 100. |

## Types and Values

### struct CamelOperation

    struct CamelOperation;

## Signal Details

### The `“pop-message”` signal

    void
    user_function (CamelOperation *cameloperation,
                   gpointer        user_data)

Flags: Run Last

### The `“progress”` signal

    void
    user_function (CamelOperation *cameloperation,
                   gint            arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“push-message”` signal

    void
    user_function (CamelOperation *cameloperation,
                   gchar          *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“status”` signal

    void
    user_function (CamelOperation *cameloperation,
                   gchar          *arg1,
                   gint            arg2,
                   gpointer        user_data)

Flags: Run Last