diff options
Diffstat (limited to 'calendar/cal-client')
-rw-r--r-- | calendar/cal-client/cal-client.c | 31 | ||||
-rw-r--r-- | calendar/cal-client/cal-client.h | 1 |
2 files changed, 32 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. diff --git a/calendar/cal-client/cal-client.h b/calendar/cal-client/cal-client.h index 6747c7488e..bc08b2497a 100644 --- a/calendar/cal-client/cal-client.h +++ b/calendar/cal-client/cal-client.h @@ -88,6 +88,7 @@ gboolean cal_client_is_loaded (CalClient *client); int cal_client_get_n_objects (CalClient *client, CalObjType type); +gboolean cal_client_object_exists (CalClient *client, const char *uid); CalClientGetStatus cal_client_get_object (CalClient *client, const char *uid, CalComponent **comp); |