/* -*- Mode: C -*- */ /*====================================================================== FILE: icalvalue_cxx.h CREATOR: fnguyen 12/13/01 (C) COPYRIGHT 2001, Critical Path This program is free software; you can redistribute it and/or modify it under the terms of either: The LGPL as published by the Free Software Foundation, version 2.1, available at: http://www.fsf.org/copyleft/lesser.html Or: The Mozilla Public License Version 1.0. You may obtain a copy of the License at http://www.mozilla.org/MPL/ ======================================================================*/ #ifndef CP_ICALVALUE_H #define CP_ICALVALUE_H extern "C" { #include "ical.h" }; #include "icptrholder.h" typedef char* string; // Will use the string library from STL class ICalValue { public: ICalValue() throw(icalerrorenum); ICalValue(const ICalValue&) throw(icalerrorenum); ICalValue& operator=(const ICalValue&) throw(icalerrorenum); ~ICalValue(); ICalValue(icalvalue*) throw(icalerrorenum); ICalValue(icalvalue_kind kind) throw(icalerrorenum); ICalValue(icalvalue_kind kind, string str) throw(icalerrorenum); operator icalvalue* () { return imp; } void detach() { imp = NULL; } public: string as_ical_string(); bool is_valid(); icalvalue_kind isa(); int isa_value(void*); /* Special, non autogenerated value accessors */ void set_recur(struct icalrecurrencetype v); struct icalrecurrencetype get_recur(); void set_trigger(struct icaltriggertype v); struct icaltriggertype get_trigger(); void set_datetimeperiod(struct icaldatetimeperiodtype v); struct icaldatetimeperiodtype get_datetimeperiod(); public: static icalparameter_xliccomparetype compare(ICalValue& a, ICalValue& b); /* Convert enumerations */ static icalvalue_kind string_to_kind(string str); string kind_to_string(icalvalue_kind kind); public: /* BOOLEAN */ int get_boolean(); void set_boolean(int v); /* UTC-OFFSET */ int get_utcoffset(); void set_utcoffset(int v); /* METHOD */ enum icalproperty_method get_method(); void set_method(enum icalproperty_method v); /* CAL-ADDRESS */ string get_caladdress(); void set_caladdress(string v); /* PERIOD */ struct icalperiodtype get_period(); void set_period(struct icalperiodtype v); /* STATUS */ enum icalproperty_status get_status(); void set_status(enum icalproperty_status v); /* BINARY */ string get_binary(); void set_binary(string v); /* TEXT */ string get_text(); void set_text(string v); /* DURATION */ struct icaldurationtype get_duration(); void set_duration(struct icaldurationtype v); /* INTEGER */ int get_integer(); void set_integer(int v); /* URI */ string get_uri(); void set_uri(string v); /* ATTACH */ icalattach *get_attach(); void set_attach(icalattach *v); /* CLASS */ enum icalproperty_class get_class(); void set_class(enum icalproperty_class v); /* FLOAT */ float get_float(); void set_float(float v); /* QUERY */ string get_query(); void set_query(string v); /* STRING */ string get_string(); void set_string(string v); /* TRANSP */ enum icalproperty_transp get_transp(); void set_transp(enum icalproperty_transp v); /* DATE-TIME */ struct icaltimetype get_datetime(); void set_datetime(struct icaltimetype v); /* GEO */ struct icalgeotype get_geo(); void set_geo(struct icalgeotype v); /* DATE */ struct icaltimetype get_date(); void set_date(struct icaltimetype v); /* ACTION */ enum icalproperty_action get_action(); void set_action(enum icalproperty_action v); private: icalvalue* imp; }; typedef ICPointerHolder ICalValueTmpPtr; /* see icptrholder.h for comments */ #endif /*ICALVALUE_H*/