## camel-weak-ref-group

camel-weak-ref-group — A weak ref group

## Functions

CamelWeakRefGroup * | camel_weak_ref_group_new ()
CamelWeakRefGroup * | camel_weak_ref_group_ref ()
void | camel_weak_ref_group_unref ()
void | camel_weak_ref_group_set ()
gpointer | camel_weak_ref_group_get ()

## Object Hierarchy

        GBoxed
        ╰── CamelWeakRefGroup

## Includes

    #include <camel/camel.h>

## Description

A GWeakRef as such is not suitable for large sets, because it causes big performance impact on free. This CamelWeakRefGroup groups together weak references for the same object to minimize the performance issue of the GWeakRef.

## Functions

### camel_weak_ref_group_new ()

    CamelWeakRefGroup *
    camel_weak_ref_group_new (void);

#### Returns

A new CamelWeakRefGroup instance, which should be freed with `camel_weak_ref_group_unref()` when no longer needed.

[transfer full]

Since: 3.24

### camel_weak_ref_group_ref ()

    CamelWeakRefGroup *
    camel_weak_ref_group_ref (CamelWeakRefGroup *group);

Increases a reference count of the `group` .

#### Parameters

group | a CamelWeakRefGroup |

#### Returns

the `group`

Since: 3.24

### camel_weak_ref_group_unref ()

    void
    camel_weak_ref_group_unref (CamelWeakRefGroup *group);

Decreases a reference count of the `group` . The `group` is freed when the reference count reaches zero.

#### Parameters

group | a CamelWeakRefGroup |

Since: 3.24

### camel_weak_ref_group_set ()

    void
    camel_weak_ref_group_set (CamelWeakRefGroup *group,
                              gpointer object);

Sets the `object` as the object help by this `group` . If the `object` is `NULL`, then unsets any previously set.

#### Parameters

group | a CamelWeakRefGroup |
object | a GObject descendant, or `NULL`. | [nullable]

Since: 3.24

### camel_weak_ref_group_get ()

    gpointer
    camel_weak_ref_group_get (CamelWeakRefGroup *group);

#### Parameters

group | a CamelWeakRefGroup |

#### Returns

A referenced object associated with `group` , or `NULL`, when no object had been set to it. Use `g_object_unref()` to free it, when no longer needed.

[transfer full][nullable]

Since: 3.24