### Class

# ECal ReminderWatcher

since: 3.30

#### Description [src]

    class ECal.ReminderWatcher : GObject.Object
    {
      /* No available fields */
    }

Contains only private data that should be read and manipulated using the functions below.

Available since: 3.30

#### Hierarchy

#### Ancestors

- GObject

#### Constructors

###### e_reminder_watcher_new

Creates a new `EReminderWatcher`, which will use the `registry`. It adds its own reference to `registry`. Free the created `EReminderWatcher` with `g_object_unref()` when no longer needed.

since: 3.30

#### Instance methods

###### e_reminder_watcher_describe_data

Returns a new string with a text description of the `rd`. The text format can be influenced with `flags`.

since: 3.30

###### e_reminder_watcher_dismiss

Asynchronously dismiss single reminder in the past or snoozed reminders.

since: 3.30

###### e_reminder_watcher_dismiss_all

Asynchronously dismiss all past reminders.

since: 3.30

###### e_reminder_watcher_dismiss_all_finish

Finishes the operation started with e_reminder_watcher_dismiss_all().

since: 3.30

###### e_reminder_watcher_dismiss_all_sync

Synchronously dismiss all past reminders. The operation stops after the first error is encountered, which can be before all the past reminders are dismissed.

since: 3.30

###### e_reminder_watcher_dismiss_finish

Finishes the operation started with e_reminder_watcher_dismiss().

since: 3.30

###### e_reminder_watcher_dismiss_sync

Synchronously dismiss single reminder in the past or snoozed reminders.

since: 3.30

###### e_reminder_watcher_dup_default_zone

No description available.

since: 3.30

###### e_reminder_watcher_dup_past

Gathers a `GSList` of all past reminders which had not been removed after EReminderWatcher::triggered signal. Such reminders are remembered across sessions, until they are dismissed by `e_reminder_watcher_dismiss()` or its synchronous variant. These reminders can be also snoozed with e_reminder_watcher_snooze(), which removes them from the past reminders into the list of snoozed reminders, see e_reminder_watcher_dup_snoozed().

since: 3.30

###### e_reminder_watcher_dup_snoozed

Gathers a `GSList` of currently snoozed reminder with e_reminder_watcher_snooze(). The snoozed reminders are remembered across sessions and they are re-triggered when their snooze time elapses, which can move them back to the list of past reminders.

since: 3.30

###### e_reminder_watcher_get_registry

No description available.

###### e_reminder_watcher_get_timers_enabled

No description available.

since: 3.30

###### e_reminder_watcher_ref_opened_client

No description available.

since: 3.30

###### e_reminder_watcher_set_default_zone

Sets the default zone for the `watcher`. This is used when calculating trigger times for floating component times. When the `zone` is `NULL`, then sets a UTC time zone.

since: 3.30

###### e_reminder_watcher_set_timers_enabled

The `watcher` can be used both for scheduling the timers for the reminders and respond to them through the “triggered” signal, or only to listen for changes on the past reminders. The default is to have timers enabled, thus to response to scheduled reminders. Disabling the timers also means there will be less resources needed by the `watcher`.

since: 3.30

###### e_reminder_watcher_snooze

Snoozes `rd` until `until`, which is an absolute time when the `rd` should be retriggered. This moves the `rd` from the list of past reminders into the list of snoozed reminders and invokes the “changed” signal.

since: 3.30

###### e_reminder_watcher_timer_elapsed

Notifies the #watcher that the timer previously scheduled with EReminderWatcherClass::schedule_timer elapsed. This can be used by the descendants which override the default implementation of EReminderWatcherClass::schedule_timer. There is always scheduled only one timer and once it’s elapsed it should be also removed, the same when the EReminderWatcherClass::schedule_timer is called and the previously scheduled timer was not elapsed yet, the previous should be removed first, aka every call to EReminderWatcherClass::schedule_timer replaces any previously scheduled timer.

since: 3.30

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

###### ECal.ReminderWatcher:default-zone

An `ICalTimezone` to be used as the default time zone.

since: 3.30

###### ECal.ReminderWatcher:registry

The `ESourceRegistry` which manages `ESource` instances.

since: 3.30

###### ECal.ReminderWatcher:timers-enabled

Whether timers are enabled for the `EReminderWatcher`. See `e_reminder_watcher_set_timers_enabled()` for more information what it means.

since: 3.30

#### Signals

###### ECal.ReminderWatcher::changed

Signal is emitted when the list of past or snoozed reminders changes. It’s called also when GSettings key for past reminders is notified as changed, because this list is not held in memory.

since: 3.30

###### ECal.ReminderWatcher::format-time

Formats time `itt` to a string and writes it to `inout_buffer`, which can hold up to `buffer_size` bytes. The first character of `inout_buffer` is the nul-byte when nothing wrote to it yet.

since: 3.30

###### ECal.ReminderWatcher::triggered

Signal is emitted when any reminder is either overdue or triggered.

since: 3.30

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct ECalReminderWatcherClass {
      GObjectClass parent_class;
      void (* schedule_timer) (
        EReminderWatcher* watcher,
        gint64 at_time
      );
      void (* format_time) (
        EReminderWatcher* watcher,
        const EReminderData* rd,
        ICalTime* itt,
        gchar** inout_buffer,
        gint buffer_size
      );
      void (* triggered) (
        EReminderWatcher* watcher,
        const GSList* reminders,
        gboolean snoozed
      );
      void (* changed) (
        EReminderWatcher* watcher
      );
      EClient* (* cal_client_connect_sync) (
        EReminderWatcher* watcher,
        ESource* source,
        ECalClientSourceType source_type,
        guint32 wait_for_connected_seconds,
        GCancellable* cancellable,
        GError** error
      );
      void (* cal_client_connect) (
        EReminderWatcher* watcher,
        ESource* source,
        ECalClientSourceType source_type,
        guint32 wait_for_connected_seconds,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      EClient* (* cal_client_connect_finish) (
        EReminderWatcher* watcher,
        GAsyncResult* result,
        GError** error
      );
      gpointer reserved;

    }

No description available.

###### Class members

`parent_class: GObjectClass`

  No description available.

`schedule_timer: void (* schedule_timer) ( EReminderWatcher* watcher, gint64 at_time )`

  No description available.

`format_time: void (* format_time) ( EReminderWatcher* watcher, const EReminderData* rd, ICalTime* itt, gchar** inout_buffer, gint buffer_size )`

  No description available.

`triggered: void (* triggered) ( EReminderWatcher* watcher, const GSList* reminders, gboolean snoozed )`

  No description available.

`changed: void (* changed) ( EReminderWatcher* watcher )`

  No description available.

`cal_client_connect_sync: EClient* (* cal_client_connect_sync) ( EReminderWatcher* watcher, ESource* source, ECalClientSourceType source_type, guint32 wait_for_connected_seconds, GCancellable* cancellable, GError** error )`

  No description available.

`cal_client_connect: void (* cal_client_connect) ( EReminderWatcher* watcher, ESource* source, ECalClientSourceType source_type, guint32 wait_for_connected_seconds, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )`

  No description available.

`cal_client_connect_finish: EClient* (* cal_client_connect_finish) ( EReminderWatcher* watcher, GAsyncResult* result, GError** error )`

  No description available.

`reserved: gpointer`

  No description available.

#### Virtual methods

###### ECal.ReminderWatcherClass.cal_client_connect

No description available.

###### ECal.ReminderWatcherClass.cal_client_connect_finish

No description available.

###### ECal.ReminderWatcherClass.cal_client_connect_sync

No description available.

###### ECal.ReminderWatcherClass.changed

No description available.

###### ECal.ReminderWatcherClass.format_time

No description available.

###### ECal.ReminderWatcherClass.schedule_timer

No description available.

###### ECal.ReminderWatcherClass.triggered

No description available.