本文整理汇总了C++中icalcomponent_free函数的典型用法代码示例。如果您正苦于以下问题:C++ icalcomponent_free函数的具体用法?C++ icalcomponent_free怎么用?C++ icalcomponent_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了icalcomponent_free函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_remove_object
static void
test_remove_object (ETestServerFixture *fixture,
gconstpointer user_data)
{
ECal *cal;
icalcomponent *component;
icalcomponent *component_final;
gchar *uid;
cal = E_TEST_SERVER_UTILS_SERVICE (fixture, ECal);
component = icalcomponent_new (ICAL_VEVENT_COMPONENT);
uid = ecal_test_utils_cal_create_object (cal, component);
/* FIXME: In the same way test-ecal-create-object.c,
* this part of the test is broken, need to fix this.
*/
component_final = ecal_test_utils_cal_get_object (cal, uid);
/* ecal_test_utils_cal_assert_objects_equal_shallow (component, component_final); */
ecal_test_utils_cal_remove_object (cal, uid);
g_free (uid);
icalcomponent_free (component);
icalcomponent_free (component_final);
}
示例2: main
gint
main (gint argc,
gchar **argv)
{
ECalClient *cal_client;
GError *error = NULL;
icalcomponent *icalcomp;
struct icaltimetype now;
gchar *uid = NULL;
main_initialize ();
cal_client = new_temp_client (E_CAL_CLIENT_SOURCE_TYPE_EVENTS, NULL);
g_return_val_if_fail (cal_client != NULL, FALSE);
if (!e_client_open_sync (E_CLIENT (cal_client), FALSE, NULL, &error)) {
report_error ("client open sync", &error);
g_object_unref (cal_client);
return 1;
}
now = icaltime_current_time_with_zone (icaltimezone_get_utc_timezone ());
icalcomp = icalcomponent_new (ICAL_VEVENT_COMPONENT);
icalcomponent_set_summary (icalcomp, "Test event summary");
icalcomponent_set_dtstart (icalcomp, now);
icalcomponent_set_dtend (icalcomp, icaltime_from_timet (icaltime_as_timet (now) + 60 * 60 * 60, 0));
if (!e_cal_client_create_object_sync (cal_client, icalcomp, &uid, NULL, &error)) {
report_error ("create object sync", &error);
icalcomponent_free (icalcomp);
g_object_unref (cal_client);
return 1;
}
icalcomponent_free (icalcomp);
g_free (uid);
/* synchronously without main-loop */
if (!test_sync (cal_client)) {
g_object_unref (cal_client);
return 1;
}
start_in_thread_with_main_loop (test_sync_in_thread, cal_client);
if (!e_client_remove_sync (E_CLIENT (cal_client), NULL, &error)) {
report_error ("client remove sync", &error);
g_object_unref (cal_client);
return 1;
}
g_object_unref (cal_client);
if (get_main_loop_stop_result () == 0)
g_print ("Test finished successfully.\n");
return get_main_loop_stop_result ();
}
示例3: main
gint
main (gint argc,
gchar **argv)
{
ECal *cal;
gchar *uri = NULL;
ECalComponent *e_component;
ECalComponent *e_component_final;
icalcomponent *component;
icalcomponent *component_final;
struct icaltimetype icaltime;
gchar *uid;
g_type_init ();
cal = ecal_test_utils_cal_new_temp (&uri, E_CAL_SOURCE_TYPE_EVENT);
ecal_test_utils_cal_open (cal, FALSE);
ecal_test_utils_create_component (cal, INITIAL_BEGIN_TIME,
INITIAL_BEGIN_TIMEZONE, INITIAL_END_TIME,
INITIAL_END_TIMEZONE, EVENT_SUMMARY, &e_component,
&uid);
component = e_cal_component_get_icalcomponent (e_component);
component_final = ecal_test_utils_cal_get_object (cal, uid);
ecal_test_utils_cal_assert_objects_equal_shallow (component,
component_final);
icalcomponent_free (component_final);
/* make and commit changes */
icaltime = icaltime_from_string (FINAL_BEGIN_TIME);
icalcomponent_set_dtstart (component, icaltime);
ecal_test_utils_cal_component_set_icalcomponent (e_component,
component);
ecal_test_utils_cal_modify_object (cal, component, CALOBJ_MOD_ALL);
/* verify */
component_final = ecal_test_utils_cal_get_object (cal, uid);
e_component_final = e_cal_component_new ();
ecal_test_utils_cal_component_set_icalcomponent (e_component_final,
component_final);
ecal_test_utils_cal_assert_e_cal_components_equal (e_component,
e_component_final);
/* Clean-up */
ecal_test_utils_cal_remove (cal);
g_object_unref (e_component_final);
g_free (uid);
icalcomponent_free (component);
return 0;
}
示例4: deserialize
static gboolean
deserialize (ScalixObject * object, const char *string)
{
ScalixAppointmentPrivate *priv;
icalcomponent *icomp, *subcomp;
icalcomponent_kind kind;
icaltimezone *zone;
priv = SCALIX_APPOINTMENT_GET_PRIVATE (SCALIX_APPOINTMENT (object));
icomp = icalparser_parse_string (string);
if (icalcomponent_isa (icomp) != ICAL_VCALENDAR_COMPONENT) {
g_warning ("No VCALENAR while deserializing! (%s)\n", string);
icalcomponent_free (icomp);
return FALSE;
}
/* Grab the timezone if any */
subcomp = icalcomponent_get_first_component (icomp,
ICAL_VTIMEZONE_COMPONENT);
if (subcomp != NULL) {
zone = icaltimezone_new ();
icalcomponent_remove_component (icomp, subcomp);
if (icaltimezone_set_component (zone, subcomp))
priv->timezone = zone;
}
kind = ICAL_VEVENT_COMPONENT;
/* Grab the main VEVENT */
subcomp = icalcomponent_get_first_component (icomp, kind);
if (subcomp == NULL) {
icalcomponent_free (icomp);
return FALSE;
}
icalcomponent_remove_component (icomp, subcomp);
e_cal_component_set_icalcomponent (E_CAL_COMPONENT (object), subcomp);
e_cal_component_commit_sequence (E_CAL_COMPONENT (object));
priv->exceptions = NULL;
while ((subcomp = icalcomponent_get_next_component (icomp, kind))) {
icalcomponent_remove_component (icomp, subcomp);
priv->exceptions = g_slist_prepend (priv->exceptions, subcomp);
}
icalcomponent_free (icomp);
return TRUE;
}
示例5: get_vtimezone
/**
* get ICalendar VTIMEZONE block from ECalComponentWithTZ
*
* @param ectz
* An evolution event/task/note type which may contain a time zone.
*
* @return the ICalendar VTIMEZONE block
*/
static gchar*
get_vtimezone (const ECalComponentWithTZ *ectz)
{
icalcomponent *icc = NULL;
icalcomponent *cloned_icc = NULL;
icalproperty *dtstamp = NULL;
icalproperty *uid = NULL;
gchar *ical_str = NULL;
if (ectz == NULL || ectz->maincomp == NULL || ectz->timezone == NULL)
return NULL;
icc = e_cal_component_get_icalcomponent (ectz->timezone);
cloned_icc = icalcomponent_new_clone (icc);
/* uid and dtstamp are not needed (nor wanted) in timezone block */
uid = icalcomponent_get_first_property(cloned_icc, ICAL_UID_PROPERTY);
icalcomponent_remove_property (cloned_icc, uid);
free(uid);
dtstamp = icalcomponent_get_first_property(cloned_icc, ICAL_DTSTAMP_PROPERTY);
icalcomponent_remove_property (cloned_icc, dtstamp);
free(dtstamp);
/* memory returned by *_as_ical_string() is owned by libical */
ical_str = g_strdup (icalcomponent_as_ical_string (cloned_icc));
icalcomponent_free (cloned_icc);
return ical_str;
}
示例6: icalparser_free
void icalparser_free(icalparser *parser)
{
icalcomponent *c;
if (parser->root_component != 0) {
icalcomponent_free(parser->root_component);
}
while ((c = pvl_pop(parser->components)) != 0) {
icalcomponent_free(c);
}
pvl_free(parser->components);
free(parser);
}
示例7: vcal_get_preview
static GtkWidget *
vcal_get_preview (EImport *ei,
EImportTarget *target,
EImportImporter *im)
{
GtkWidget *preview;
EImportTargetURI *s = (EImportTargetURI *) target;
gchar *filename;
icalcomponent *icalcomp;
filename = g_filename_from_uri (s->uri_src, NULL, NULL);
if (filename == NULL) {
g_message (G_STRLOC ": Couldn't get filename from URI '%s'", s->uri_src);
return NULL;
}
icalcomp = load_vcalendar_file (filename);
g_free (filename);
if (!icalcomp)
return NULL;
preview = ical_get_preview (icalcomp);
icalcomponent_free (icalcomp);
return preview;
}
示例8: NS_ENSURE_ARG_POINTER
NS_IMETHODIMP
calICSService::ParseICS(const nsACString& serialized,
calITimezoneProvider *tzProvider,
calIIcalComponent **component)
{
NS_ENSURE_ARG_POINTER(component);
icalcomponent *ical =
icalparser_parse_string(PromiseFlatCString(serialized).get());
if (!ical) {
#ifdef DEBUG
fprintf(stderr, "Error parsing: '%20s': %d (%s)\n",
PromiseFlatCString(serialized).get(), icalerrno,
icalerror_strerror(icalerrno));
#endif
// The return values is calIError match with ical errors,
// so no need for a conversion table or anything.
return static_cast<nsresult>(calIErrors::ICS_ERROR_BASE + icalerrno);
}
calIcalComponent *comp = new calIcalComponent(ical, nullptr, tzProvider);
if (!comp) {
icalcomponent_free(ical);
return NS_ERROR_OUT_OF_MEMORY;
}
NS_ADDREF(*component = comp);
return NS_OK;
}
示例9: gn_icalstr2todo
GNOKII_API int gn_icalstr2todo(const char * ical, gn_todo *ctodo, int id)
{
#ifdef HAVE_LIBICAL
icalparser *parser = NULL;
icalcomponent *comp = NULL;
gn_error error;
parser = icalparser_new();
if (!parser) {
return GN_ERR_FAILED;
}
comp = icalparser_parse_string (ical);
if (!comp) {
icalparser_free(parser);
return GN_ERR_FAILED;
}
error = gn_ical2todo_real(comp, ctodo, id);
icalcomponent_free(comp);
icalparser_free(parser);
return error;
#else
return GN_ERR_NOTIMPLEMENTED;
#endif /* HAVE_LIBICAL */
}
示例10: strlen
/** Loads the builtin VTIMEZONE data for the given timezone. */
static void
icaltimezone_load_builtin_timezone (icaltimezone *zone)
{
char *filename;
unsigned int filename_len;
FILE *fp;
icalparser *parser;
icalcomponent *comp, *subcomp;
/* If the location isn't set, it isn't a builtin timezone. */
if (!zone->location || !zone->location[0])
return;
filename_len = strlen (get_zone_directory()) + strlen (zone->location) + 6;
filename = (char*) malloc (filename_len);
if (!filename) {
icalerror_set_errno(ICAL_NEWFAILED_ERROR);
return;
}
snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(),
zone->location);
fp = fopen (filename, "r");
free (filename);
if (!fp) {
icalerror_set_errno(ICAL_FILE_ERROR);
return;
}
/* ##### B.# Sun, 11 Nov 2001 04:04:29 +1100
this is where the MALFORMEDDATA error is being set, after the call to 'icalparser_parse'
fprintf(stderr, "** WARNING ** %s: %d %s\n", __FILE__, __LINE__, icalerror_strerror(icalerrno));
*/
parser = icalparser_new ();
icalparser_set_gen_data (parser, fp);
comp = icalparser_parse (parser, icaltimezone_load_get_line_fn);
icalparser_free (parser);
fclose (fp);
/* Find the VTIMEZONE component inside the VCALENDAR. There should be 1. */
subcomp = icalcomponent_get_first_component (comp,
ICAL_VTIMEZONE_COMPONENT);
if (!subcomp) {
icalerror_set_errno(ICAL_PARSE_ERROR);
return;
}
icaltimezone_get_vtimezone_properties (zone, subcomp);
icalcomponent_remove_component(comp,subcomp);
icalcomponent_free(comp);
}
示例11: gn_ical2calnote
/* read a vcalendar event given by id from file f and store the data in calnote */
GNOKII_API gn_error gn_ical2calnote(FILE *f, gn_calnote *calnote, int id)
{
#ifdef HAVE_LIBICAL
icalparser *parser = NULL;
icalcomponent *comp = NULL;
gn_error retval;
parser = icalparser_new();
if (!parser) {
return GN_ERR_FAILED;
}
icalparser_set_gen_data(parser, f);
comp = icalparser_parse(parser, ical_fgets);
if (!comp) {
icalparser_free(parser);
return GN_ERR_FAILED;
}
retval = gn_ical2calnote_real(comp, calnote, id);
icalcomponent_free(comp);
icalparser_free(parser);
return retval;
#else
return GN_ERR_NOTIMPLEMENTED;
#endif /* HAVE_LIBICAL */
}
示例12: ical_import_done
static void
ical_import_done(ICalImporterData *icidata)
{
g_object_unref (icidata->client);
icalcomponent_free (icidata->icalcomp);
g_free (icidata);
}
示例13: update_objects
static gboolean
update_objects (ECal *client, icalcomponent *icalcomp)
{
icalcomponent_kind kind;
icalcomponent *vcal;
gboolean success = TRUE;
kind = icalcomponent_isa (icalcomp);
if (kind == ICAL_VTODO_COMPONENT || kind == ICAL_VEVENT_COMPONENT) {
vcal = e_cal_util_new_top_level ();
if (icalcomponent_get_method (icalcomp) == ICAL_METHOD_CANCEL)
icalcomponent_set_method (vcal, ICAL_METHOD_CANCEL);
else
icalcomponent_set_method (vcal, ICAL_METHOD_PUBLISH);
icalcomponent_add_component (vcal, icalcomponent_new_clone (icalcomp));
} else if (kind == ICAL_VCALENDAR_COMPONENT) {
vcal = icalcomponent_new_clone (icalcomp);
if (!icalcomponent_get_first_property (vcal, ICAL_METHOD_PROPERTY))
icalcomponent_set_method (vcal, ICAL_METHOD_PUBLISH);
} else
return FALSE;
if (!e_cal_receive_objects (client, vcal, NULL))
success = FALSE;
icalcomponent_free (vcal);
return success;
}
示例14: prepare_tasks
/* This removes all components except VTODOs and VTIMEZONEs from the toplevel
icalcomponent, and adds the given list of VTODO components. The list is
freed afterwards. */
static void
prepare_tasks (icalcomponent *icalcomp, GList *vtodos)
{
icalcomponent *subcomp;
GList *elem;
icalcompiter iter;
iter = icalcomponent_begin_component (icalcomp, ICAL_ANY_COMPONENT);
while ((subcomp = icalcompiter_deref (&iter)) != NULL) {
icalcomponent_kind child_kind = icalcomponent_isa (subcomp);
if (child_kind != ICAL_VTODO_COMPONENT
&& child_kind != ICAL_VTIMEZONE_COMPONENT) {
icalcompiter_next (&iter);
icalcomponent_remove_component (icalcomp, subcomp);
icalcomponent_free (subcomp);
} else {
icalcompiter_next (&iter);
}
}
for (elem = vtodos; elem; elem = elem->next) {
icalcomponent_add_component (icalcomp, elem->data);
}
g_list_free (vtodos);
}
示例15: prepare_events
/* This removes all components except VEVENTs and VTIMEZONEs from the toplevel */
static void
prepare_events (icalcomponent *icalcomp, GList **vtodos)
{
icalcomponent *subcomp;
icalcompiter iter;
if (vtodos)
*vtodos = NULL;
iter = icalcomponent_begin_component (icalcomp, ICAL_ANY_COMPONENT);
while ((subcomp = icalcompiter_deref (&iter)) != NULL) {
icalcomponent_kind child_kind = icalcomponent_isa (subcomp);
if (child_kind != ICAL_VEVENT_COMPONENT
&& child_kind != ICAL_VTIMEZONE_COMPONENT) {
icalcompiter_next (&iter);
icalcomponent_remove_component (icalcomp, subcomp);
if (child_kind == ICAL_VTODO_COMPONENT && vtodos)
*vtodos = g_list_prepend (*vtodos, subcomp);
else
icalcomponent_free (subcomp);
} else {
icalcompiter_next (&iter);
}
}
}