aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libical/icalvalueimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/libical/icalvalueimpl.h')
-rw-r--r--libical/src/libical/icalvalueimpl.h30
1 files changed, 28 insertions, 2 deletions
diff --git a/libical/src/libical/icalvalueimpl.h b/libical/src/libical/icalvalueimpl.h
index b103c9cb3f..8d39e6ca7f 100644
--- a/libical/src/libical/icalvalueimpl.h
+++ b/libical/src/libical/icalvalueimpl.h
@@ -35,7 +35,31 @@
#define ICALVALUEIMPL_H
#include "icalenums.h"
-
+#include "icalderivedvalue.h"
+#include "icalderivedproperty.h"
+
+/* Private structure for ATTACH values */
+struct icalattach_impl {
+ /* Reference count */
+ int refcount;
+
+ union {
+ /* URL attachment data */
+ struct {
+ char *url;
+ } url;
+
+ /* Inline data */
+ struct {
+ unsigned char *data;
+ icalattach_free_fn_t free_fn;
+ void *free_fn_data;
+ } data;
+ } u;
+
+ /* TRUE if URL, FALSE if inline data */
+ unsigned int is_url : 1;
+};
struct icalvalue_impl {
icalvalue_kind kind; /*this is the kind that is visible from the outside*/
@@ -46,7 +70,7 @@ struct icalvalue_impl {
const char* x_value;
union data {
- struct icalattachtype v_attach;
+ icalattach *v_attach;
/* void *v_binary; */ /* use v_attach */
const char *v_string;
/*char *v_text;*/
@@ -88,4 +112,6 @@ struct icalvalue_impl {
} data;
};
+struct icalvalue_impl *icalvalue_new_impl(icalvalue_kind kind);
+
#endif