Libical API Documentation  3.0
icalvalueimpl.h
1 /*======================================================================
2  FILE: icalvalue.c
3  CREATOR: eric 02 May 1999
4 
5  (C) COPYRIGHT 2000, Eric Busboom <eric@civicknowledge.com>
6 
7  This library is free software; you can redistribute it and/or modify
8  it under the terms of either:
9 
10  The LGPL as published by the Free Software Foundation, version
11  2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
12 
13  Or:
14 
15  The Mozilla Public License Version 2.0. You may obtain a copy of
16  the License at https://www.mozilla.org/MPL/
17 
18  Contributions from:
19  Graham Davison (g.m.davison@computer.org)
20 ======================================================================*/
21 
22 #ifndef ICALVALUEIMPL_H
23 #define ICALVALUEIMPL_H
24 
25 #include "icalproperty.h"
26 
28 {
29  icalvalue_kind kind; /*this is the kind that is visible from the outside */
30 
31  char id[5];
32  int size;
33  icalproperty *parent;
34  char *x_value;
35 
36  union data
37  {
38  icalattach *v_attach;
39  /* void *v_binary; *//* use v_attach */
40 
41  const char *v_string;
42  /*char *v_text; */ /* use v_string */
43  /*char *v_caladdress; *//* use v_string */
44  /*char *v_query; */ /* use v_string */
45  /*char *v_uri; */ /* use v_string */
46 
47  float v_float;
48 
49  int v_int;
50  /*int v_boolean; */ /* use v_int */
51  /*int v_integer; */ /* use v_int */
52  /*int v_utcoffset; *//* use v_int */
53 
54  struct icaldurationtype v_duration;
55 
56  struct icalperiodtype v_period;
57  /*struct icalperiodtype v_datetimeperiod; *//* use v_time/v_period */
58 
59  struct icalgeotype v_geo;
60 
61  struct icaltimetype v_time;
62  /*struct icaltimetype v_date; */ /* use v_time */
63  /*struct icaltimetype v_datetime; */ /* use v_time */
64  /*struct icaltimetype v_datetimedate; *//* use v_time */
65 
66  struct icalreqstattype v_requeststatus;
67 
68  /* struct icalrecurrencetype was once included
69  directly ( not referenced ) in this union, but it
70  contributes 2000 bytes to every value, so now it is
71  a reference */
72  struct icalrecurrencetype *v_recur;
73 
74  /*struct icaltriggertype v_trigger; *//* use v_time/v_duration */
75 
76  int v_enum;
77  /* v_enum takes care of several enumerated types including:
78  icalproperty_method v_method;
79  icalproperty_status v_status;
80  icalproperty_action v_action;
81  icalproperty_class v_class;
82  icalproperty_transp v_transp;
83  icalproperty_busytype v_busytype;
84  icalproperty_taskmode v_taskmode;
85  icalproperty_pollmode v_pollmode;
86  icalproperty_pollcompletion v_pollcomplete;
87  */
88 
89  } data;
90 };
91 
92 #endif
Struct to represent a period in time.
Definition: icalperiod.h:37
Definition: icaltypes.h:33
Definition: icalvalueimpl.h:36
Definition: icaltypes.h:64
A struct representing a duration.
Definition: icalduration.h:36
Definition: icaltime.h:104
Definition: icalrecur.h:151
Definition: icalattachimpl.h:25
Definition: icalvalueimpl.h:27