diff options
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r-- | calendar/cal-client/cal-client.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c index 65c0c4aea4..d64026d6b2 100644 --- a/calendar/cal-client/cal-client.c +++ b/calendar/cal-client/cal-client.c @@ -605,6 +605,37 @@ cal_client_get_n_objects (CalClient *client, CalObjType type) } /** + * cal_client_object_exists: + * @client: A calendar client + * @uid: Unique identifier for a calendar component + * + * Checks to see if a uid exists in the backend + * + * Return value: True or false if uid exists and can be obtained + **/ +gboolean +cal_client_object_exists (CalClient *client, const char *uid) +{ + CalComponent *comp; + CalClientGetStatus status; + + status = cal_client_get_object (client, uid, &comp); + + switch (status) { + case CAL_CLIENT_GET_SUCCESS: + gtk_object_unref (GTK_OBJECT (comp)); + return TRUE; + + case CAL_CLIENT_GET_SYNTAX_ERROR: + case CAL_CLIENT_GET_NOT_FOUND: + return FALSE; + + default: + g_assert_not_reached (); + } +} + +/** * cal_client_get_object: * @client: A calendar client. * @uid: Unique identifier for a calendar component. |