### Struct

# ECal ComponentBagItem

#### Description

    struct ECalComponentBagItem {
      ECalClient* client;
      ECalComponent* comp;
      gchar* uid;
      gchar* rid;
      time_t start;
      guint64 duration_minutes;
      guint span_index;
      gpointer user_data;
      GBoxedCopyFunc copy_user_data;
      GBoxedFreeFunc free_user_data;
    }

No description available.

###### Structure members

`client:` `ECalClient`

  No description available.

`comp:` `ECalComponent`

  No description available.

`uid:` `gchar*`

  No description available.

`rid:` `gchar*`

  No description available.

`start:` `time_t`

  No description available.

`duration_minutes:` `guint64`

  No description available.

`span_index:` `guint`

  No description available.

`user_data:` `gpointer`

  No description available.

`copy_user_data:` `GBoxedCopyFunc`

  No description available.

`free_user_data:` `GBoxedFreeFunc`

  No description available.

#### Constructors

###### e_cal_component_bag_item_new

Creates a new `ECalComponentBagItem`, which will have prefilled all members except of those for the user data.

since: 3.58

#### Functions

###### e_cal_component_bag_item_equal_by_comp

Returns whether the `item1` and `item2` are equal regarding the component reference stored in them. Only the client, uid and rid members of the items are used here.

since: 3.58

###### e_cal_component_bag_item_hash_by_comp

Calculates hash of the `self`, considering only the client, uid and rid from the `self`, because the client with the component ID and the recurrence ID uniquely identify the component.

since: 3.58

#### Instance methods

###### e_cal_component_bag_item_copy

Creates an independent copy of the `self`. If there is set a copy_user_data, then also the user_data member is copied using this function, otherwise the user_data member is just carried over to the new copy.

since: 3.58

###### e_cal_component_bag_item_free

Frees the `self`. Does nothing when it’s `NULL`.

since: 3.58

###### e_cal_component_bag_item_read_times

Reads the start time and the duration from the set component, returning whether any of it changed.

since: 3.58

###### e_cal_component_bag_item_set_user_data

Sets the user data members of the `self` in a safe way, meaning the function does not change the user data when it’s the same as that already set; otherwise it frees the current user data, if the free function was previously provided, and the assigns the three members to the self.

since: 3.58