23 #include "icalerror_p.h"
30 VComponent::VComponent()
60 void VComponent::detach()
65 VComponent::~VComponent()
70 VComponent::VComponent(icalcomponent *v)
86 VComponent::VComponent(
const std::string &str)
105 std::string VComponent::as_ical_string()
116 bool VComponent::is_valid()
130 bool VComponent::isa_component(
const void *component)
135 void VComponent::new_from_string(
const std::string &str)
147 void VComponent::remove_property(
ICalProperty *property)
154 int VComponent::count_properties(
const icalproperty_kind &kind)
166 ICalProperty *VComponent::get_first_property(
const icalproperty_kind &kind)
172 ICalProperty *VComponent::get_next_property(
const icalproperty_kind &kind)
185 void VComponent::add_component(
VComponent *child)
190 void VComponent::remove_component(
VComponent *child)
210 return ((t != NULL) ?
new VComponent(t) : NULL);
232 result =
new VToDo(t);
264 result =
new VToDo(t);
298 VComponent *VComponent::current(icalcompiter *i)
337 void VComponent::set_dtstart(
const struct icaltimetype &v)
357 void VComponent::set_dtend(
const struct icaltimetype &v)
382 icalproperty_method VComponent::get_method()
const
387 void VComponent::set_method(
const icalproperty_method &method)
397 void VComponent::set_dtstamp(
const struct icaltimetype &v)
402 std::string VComponent::get_summary()
const
407 void VComponent::set_summary(
const std::string &v)
412 std::string VComponent::get_location()
const
417 void VComponent::set_location(
const std::string &v)
422 std::string VComponent::get_description()
const
427 void VComponent::set_description(
const std::string &v)
432 std::string VComponent::get_comment()
const
437 void VComponent::set_comment(
const std::string &v)
442 std::string VComponent::get_uid()
const
447 void VComponent::set_uid(
const std::string &v)
452 std::string VComponent::get_relcalid()
const
457 void VComponent::set_relcalid(
const std::string &v)
467 void VComponent::set_recurrenceid(
const struct icaltimetype &v)
472 int VComponent::get_sequence()
const
477 void VComponent::set_sequence(
const int &v)
487 void VComponent::set_status(
const enum icalproperty_status &v)
505 bool VComponent::recurrence_is_excluded(
struct icaltimetype *dtstart,
515 if (this->isa() != fromVC.isa()) {
521 for (propToBeRemoved = fromVC.get_first_property(ICAL_ANY_PROPERTY);
522 propToBeRemoved != NULL;
523 propToBeRemoved = fromVC.get_next_property(ICAL_ANY_PROPERTY)) {
527 for (p = this->get_first_property(propToBeRemoved->isa()); p != NULL; p = next_prop) {
528 next_prop = this->get_next_property(propToBeRemoved->isa());
530 this->remove_property(p);
532 if (p == propToBeRemoved) {
533 this->remove_property(p);
544 const std::string fromCompUid = comp->get_uid();
546 for (c = this->get_first_component(comp->isa()); c != NULL;
547 c = this->get_next_component(comp->isa())) {
548 if (strcmp(fromCompUid.c_str(), c->get_uid().c_str()) == 0) {
550 c->remove(*comp, ignoreValue);
553 if ((c->count_properties(ICAL_ANY_PROPERTY) == 0) &&
555 this->remove_component(c);
568 bool VComponent::update(
VComponent &fromC,
bool removeMissing)
571 if (this->isa() != fromC.isa()) {
577 for (prop = fromC.get_first_property(ICAL_ANY_PROPERTY); prop != NULL;
578 prop = fromC.get_next_property(ICAL_ANY_PROPERTY)) {
580 thisProp = this->get_first_property(prop->isa());
581 if (thisProp == NULL) {
585 const ICalValue *tempValue = prop->get_value();
587 thisProp->set_value(*value);
597 thisComp = this->get_first_component(comp->isa());
598 if (thisComp == NULL) {
600 this->add_component(thisComp);
602 const bool err = thisComp->update(*comp, removeMissing);
614 if (this->isa() != fromC.isa()) {
620 for (prop = fromC.get_first_property(ICAL_ANY_PROPERTY); prop != NULL;
621 prop = fromC.get_next_property(ICAL_ANY_PROPERTY)) {
640 VCalendar::VCalendar()
655 VComponent::operator=(v);
660 VCalendar::~VCalendar()
664 VCalendar::VCalendar(icalcomponent *v)
669 VCalendar::VCalendar(
const std::string &str)
681 VEvent::VEvent(
const VEvent &v)
691 VComponent::operator=(v);
700 VEvent::VEvent(icalcomponent *v)
705 VEvent::VEvent(
const std::string &str)
717 VToDo::VToDo(
const VToDo &v)
727 VComponent::operator=(v);
736 VToDo::VToDo(icalcomponent *v)
741 VToDo::VToDo(
const std::string &str)
753 VAgenda::VAgenda(
const VAgenda &v)
763 VComponent::operator=(v);
772 VAgenda::VAgenda(icalcomponent *v)
777 VAgenda::VAgenda(
const std::string &str)
789 VQuery::VQuery(
const VQuery &v)
799 VComponent::operator=(v);
808 VQuery::VQuery(icalcomponent *v)
813 VQuery::VQuery(
const std::string &str)
825 VJournal::VJournal(
const VJournal &v)
835 VComponent::operator=(v);
840 VJournal::~VJournal()
844 VJournal::VJournal(icalcomponent *v)
849 VJournal::VJournal(
const std::string &str)
861 VAlarm::VAlarm(
const VAlarm &v)
871 VComponent::operator=(v);
880 VAlarm::VAlarm(icalcomponent *v)
885 VAlarm::VAlarm(
const std::string &str)
895 if (trigger_prop == NULL) {
899 *tr = trigger_prop->get_trigger();
910 ICalParameter *related_param = trigger_prop->get_first_parameter(ICAL_RELATED_PARAMETER);
912 if ((related_param != NULL) && related_param->is_valid()) {
914 const icalparameter_related related = related_param->get_related();
918 case ICAL_RELATED_END:
924 const struct icaltimetype recur_time = c.get_recurrenceid();
931 const struct icaltimetype recur_time = c.get_recurrenceid();
938 case ICAL_RELATED_START:
940 case ICAL_RELATED_NONE:
942 tt = c.get_dtstart();
943 const struct icaltimetype recur_time = c.get_recurrenceid();
955 const struct icaltimetype recur_time = c.get_recurrenceid();
959 tt = c.get_dtstart();
965 delete related_param;
982 VFreeBusy::VFreeBusy()
997 VComponent::operator=(v);
1002 VFreeBusy::~VFreeBusy()
1006 VFreeBusy::VFreeBusy(icalcomponent *v)
1011 VFreeBusy::VFreeBusy(
const std::string &str)
1018 VTimezone::VTimezone()
1023 VTimezone::VTimezone(
const VTimezone &v)
1033 VComponent::operator=(v);
1038 VTimezone::~VTimezone()
1042 VTimezone::VTimezone(icalcomponent *v)
1047 VTimezone::VTimezone(
const std::string &str)
1054 XStandard::XStandard()
1059 XStandard::XStandard(
const XStandard &v)
1069 VComponent::operator=(v);
1074 XStandard::~XStandard()
1078 XStandard::XStandard(icalcomponent *v)
1083 XStandard::XStandard(
const std::string &str)
1090 XDaylight::XDaylight()
1095 XDaylight::XDaylight(
const XDaylight &v)
1105 VComponent::operator=(v);
1110 XDaylight::~XDaylight()
1114 XDaylight::XDaylight(icalcomponent *v)
1119 XDaylight::XDaylight(
const std::string &str)
icalcomponent * icalcomponent_get_first_component(icalcomponent *c, icalcomponent_kind kind)
const char * icalcomponent_get_summary(icalcomponent *comp)
icalcomponent * icalcompiter_prior(icalcompiter *i)
icalcomponent_kind icalcomponent_string_to_kind(const char *string)
struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent *comp)
icalcomponent * icalcompiter_next(icalcompiter *i)
void icalcomponent_remove_property(icalcomponent *component, icalproperty *property)
const char * icalcomponent_get_uid(icalcomponent *comp)
void convert_errors()
Convert some X-LIC-ERROR properties into RETURN-STATUS properties.
void icalcomponent_set_dtend(icalcomponent *comp, struct icaltimetype v)
icalcomponent * icalcomponent_get_current_component(icalcomponent *component)
void icalcomponent_set_relcalid(icalcomponent *comp, const char *v)
Common memory management routines.
icalproperty * icalcomponent_get_next_property(icalcomponent *c, icalproperty_kind kind)
icalcomponent * icalcomponent_new_vtimezone(void)
int icalcomponent_count_errors(icalcomponent *component)
void icalcomponent_set_summary(icalcomponent *comp, const char *v)
icalrequeststatus getTriggerTime(VComponent &c, struct icaltriggertype *tr)
icalcomponent * icalcomponent_new_vcalendar(void)
void icalcomponent_set_dtstart(icalcomponent *comp, struct icaltimetype v)
int icalcomponent_count_components(icalcomponent *component, icalcomponent_kind kind)
void icalcomponent_remove_component(icalcomponent *parent, icalcomponent *child)
void icalcomponent_add_component(icalcomponent *parent, icalcomponent *child)
icalcomponent * icalcomponent_new_from_string(const char *str)
icalcomponent * icalcomponent_get_inner(icalcomponent *comp)
icalcomponent * icalcomponent_clone(const icalcomponent *old)
int count_errors()
Working with embedded error properties.
void icalcomponent_set_recurrenceid(icalcomponent *comp, struct icaltimetype v)
bool icalproperty_recurrence_is_excluded(icalcomponent *comp, struct icaltimetype *dtstart, struct icaltimetype *recurtime)
Decides if a recurrence is acceptable.
void icalcomponent_strip_errors(icalcomponent *component)
bool remove(VComponent &, bool ignoreValue)
Note: the VComponent kind have to be the same.
icalcomponent * icalcomponent_get_first_real_component(const icalcomponent *c)
void icalcomponent_set_duration(icalcomponent *comp, struct icaldurationtype v)
icalcomponent * icalcomponent_new_vtodo(void)
icalcomponent * icalcomponent_new_vevent(void)
struct icaldurationtype icalcomponent_get_duration(icalcomponent *comp)
const char * icalcomponent_get_relcalid(icalcomponent *comp)
struct icaltimetype icalcomponent_get_dtstart(icalcomponent *comp)
icalproperty_method icalcomponent_get_method(icalcomponent *comp)
void icalcomponent_set_description(icalcomponent *comp, const char *v)
void strip_errors()
Remove all X-LIC-ERROR properties.
void icalcomponent_set_dtstamp(icalcomponent *comp, struct icaltimetype v)
void icalproperty_free(icalproperty *p)
void add_property(ICalProperty *property)
Working with properties.
icaltime_span icalcomponent_get_span(icalcomponent *comp)
void icalcomponent_set_status(icalcomponent *comp, enum icalproperty_status v)
void icalcomponent_set_method(icalcomponent *comp, icalproperty_method method)
icalproperty * icalcomponent_get_current_property(icalcomponent *component)
icalcompiter begin_component(const icalcomponent_kind &kind)
Using external iterators.
struct icaltimetype icalduration_extend(struct icaltimetype t, struct icaldurationtype d)
Extends a time duration.
struct icaltimetype icaltime_null_time(void)
struct icaltimetype get_dtend() const
icalcomponent * icalcomponent_new_xstandard(void)
Definition of C++ Wrapper for icalparameter.c.
C++ classes for the icalcomponent wrapper (VToDo VEvent, etc..).
char * icalcomponent_as_ical_string(const icalcomponent *component)
void icalcomponent_set_uid(icalcomponent *comp, const char *v)
const char * icalcomponent_get_comment(icalcomponent *comp)
struct icaltimetype icalcomponent_get_dtend(icalcomponent *comp)
const char * icalcomponent_get_description(icalcomponent *comp)
icalcomponent * icalcomponent_new_vagenda(void)
icalcomponent * icalcomponent_get_next_component(icalcomponent *c, icalcomponent_kind kind)
void icalcomponent_set_sequence(icalcomponent *comp, int v)
Definition of C++ Wrapper for icalvalue.c.
void icalcomponent_set_location(icalcomponent *comp, const char *v)
void icalcomponent_set_comment(icalcomponent *comp, const char *v)
struct icaldurationtype duration
struct icaltimetype icalcomponent_get_dtstamp(icalcomponent *comp)
bool icalcomponent_is_valid(const icalcomponent *component)
icalcomponent * icalcomponent_new(icalcomponent_kind kind)
icalcompiter icalcomponent_end_component(icalcomponent *component, icalcomponent_kind kind)
icalcomponent * icalcomponent_new_valarm(void)
struct icaltimetype icalcomponent_get_due(icalcomponent *comp)
icalcomponent * icalcompiter_deref(icalcompiter *i)
icalcomponent_kind icalcomponent_isa(const icalcomponent *component)
icalcomponent * icalcomponent_new_vjournal(void)
static icalcomponent_kind string_to_kind(const std::string &str)
Kind conversion routines.
bool icalcomponent_isa_component(const void *component)
void icalcomponent_convert_errors(icalcomponent *component)
struct icaldurationtype icalduration_from_times(struct icaltimetype t1, struct icaltimetype t2)
Creates a duration from two icaltimetype endpoints.
#define icalerrno
Access the current icalerrno value.
icalcomponent * icalcomponent_new_vquery(void)
bool icaltime_is_null_time(const struct icaltimetype t)
int icalcomponent_count_properties(icalcomponent *component, icalproperty_kind kind)
VComponent * get_first_real_component()
enum icalproperty_status icalcomponent_get_status(icalcomponent *comp)
void icalcomponent_free(icalcomponent *c)
int icalcomponent_get_sequence(icalcomponent *comp)
void icalcomponent_add_property(icalcomponent *component, icalproperty *property)
A class wrapping the libical icalcomponent functions.
const char * icalcomponent_get_location(icalcomponent *comp)
VComponent * get_current_component()
Iterate through components.
icalcomponent * icalcomponent_new_xdaylight(void)
icalcomponent * icalcomponent_new_vfreebusy(void)
Definition of C++ Wrapper for icalproperty.c.
void icalcomponent_set_due(icalcomponent *comp, struct icaltimetype v)
icalcompiter icalcomponent_begin_component(icalcomponent *component, icalcomponent_kind kind)
const char * icalcomponent_kind_to_string(icalcomponent_kind kind)
icalproperty * icalcomponent_get_first_property(icalcomponent *c, icalproperty_kind kind)