bump to 1.0.0 and clean up spec file
[platform/upstream/libical.git] / src / libical / icalvalueimpl.h
1 /* -*- Mode: C -*- */
2 /*======================================================================
3   FILE: icalvalue.c
4   CREATOR: eric 02 May 1999
5   
6   $Id: icalvalueimpl.h,v 1.7 2008-01-15 23:17:43 dothebart Exp $
7
8
9  (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
10      http://www.softwarestudio.org
11
12  This program is free software; you can redistribute it and/or modify
13  it under the terms of either: 
14
15     The LGPL as published by the Free Software Foundation, version
16     2.1, available at: http://www.fsf.org/copyleft/lesser.html
17
18   Or:
19
20     The Mozilla Public License Version 1.0. You may obtain a copy of
21     the License at http://www.mozilla.org/MPL/
22
23   The original code is icalvalue.c
24
25   Contributions from:
26      Graham Davison (g.m.davison@computer.org)
27
28
29 ======================================================================*/
30
31 #ifdef HAVE_CONFIG_H
32 #include "config.h"
33 #endif
34
35 #ifndef ICALVALUEIMPL_H
36 #define ICALVALUEIMPL_H
37
38 #include "icalenums.h"
39 #include "icalproperty.h"
40 #include "icalderivedvalue.h"
41
42
43 struct icalvalue_impl {
44     icalvalue_kind kind; /*this is the kind that is visible from the outside*/
45
46     char id[5];
47     int size;
48     icalproperty* parent;
49     char* x_value;
50
51     union data {
52         icalattach *v_attach;           
53         /* void *v_binary; */ /* use v_attach */
54         const char *v_string;
55         /*char *v_text;*/
56         /*char *v_caladdress;*/
57         /*char *v_uri;*/
58         float v_float;
59         int v_int;
60         /*int v_boolean;*/
61         /*int v_integer;*/
62         struct icaldurationtype v_duration;
63         /*int v_utcoffset;*/
64         
65         struct icalperiodtype v_period;
66         /*struct icalperiodtype v_datetimeperiod;*/
67         struct icalgeotype v_geo;
68         /*time_t v_time;*/
69         struct icaltimetype v_time;
70         /*struct icaltimetype v_date;*/
71         /*struct icaltimetype v_datetime;*/
72         /*struct icaltimetype v_datetimedate;*/
73         
74         struct icalreqstattype v_requeststatus;
75
76         /* struct icalrecurrencetype was once included
77            directly ( not referenced ) in this union, but it
78            contributes 2000 bytes to every value, so now it is
79            a reference*/
80         
81         struct icalrecurrencetype *v_recur;
82         struct icaltriggertype v_trigger;
83
84         int v_enum;
85         /* v_enum takes care of several enumerated types including: 
86         icalproperty_method v_method;
87         icalproperty_status v_status;
88         icalproperty_action v_action;
89         icalproperty_class v_class;
90         icalproperty_transp v_transp;
91         */
92
93     } data;
94 };
95
96 #endif