summaryrefslogtreecommitdiff
path: root/src/libical/icalvalue_cxx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libical/icalvalue_cxx.h')
-rw-r--r--src/libical/icalvalue_cxx.h162
1 files changed, 162 insertions, 0 deletions
diff --git a/src/libical/icalvalue_cxx.h b/src/libical/icalvalue_cxx.h
new file mode 100644
index 0000000..229b008
--- /dev/null
+++ b/src/libical/icalvalue_cxx.h
@@ -0,0 +1,162 @@
+/* -*- 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<ICalValue> ICalValueTmpPtr; /* see icptrholder.h for comments */
+
+#endif /*ICALVALUE_H*/