Back to index

lightning-sunbird  0.9+nobinonly
icalvalueimpl.h
Go to the documentation of this file.
00001 /* -*- Mode: C -*- */
00002 /*======================================================================
00003   FILE: icalvalue.c
00004   CREATOR: eric 02 May 1999
00005   
00006   $Id: icalvalueimpl.h,v 1.5 2002/05/28 14:08:00 acampi Exp $
00007 
00008 
00009  (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
00010 
00011  This program is free software; you can redistribute it and/or modify
00012  it under the terms of either: 
00013 
00014     The LGPL as published by the Free Software Foundation, version
00015     2.1, available at: http://www.fsf.org/copyleft/lesser.html
00016 
00017   Or:
00018 
00019     The Mozilla Public License Version 1.0. You may obtain a copy of
00020     the License at http://www.mozilla.org/MPL/
00021 
00022   The original code is icalvalue.c
00023 
00024   Contributions from:
00025      Graham Davison (g.m.davison@computer.org)
00026 
00027 
00028 ======================================================================*/
00029 
00030 #ifdef HAVE_CONFIG_H
00031 #include <config.h>
00032 #endif
00033 
00034 #ifndef ICALVALUEIMPL_H
00035 #define ICALVALUEIMPL_H
00036 
00037 #include "icalenums.h"
00038 #include "icalproperty.h"
00039 #include "icalderivedvalue.h"
00040 
00041 
00042 struct icalvalue_impl {
00043     icalvalue_kind kind; /*this is the kind that is visible from the outside*/
00044 
00045     char id[5];
00046     int size;
00047     icalproperty* parent;
00048     char* x_value;
00049 
00050     union data {
00051        icalattach *v_attach;              
00052        /* void *v_binary; */ /* use v_attach */
00053        const char *v_string;
00054        /*char *v_text;*/
00055        /*char *v_caladdress;*/
00056        /*char *v_uri;*/
00057        float v_float;
00058        int v_int;
00059        /*int v_boolean;*/
00060        /*int v_integer;*/
00061        struct icaldurationtype v_duration;
00062        /*int v_utcoffset;*/
00063        
00064        struct icalperiodtype v_period;
00065        /*struct icalperiodtype v_datetimeperiod;*/
00066        struct icalgeotype v_geo;
00067        /*time_t v_time;*/
00068        struct icaltimetype v_time;
00069        /*struct icaltimetype v_date;*/
00070        /*struct icaltimetype v_datetime;*/
00071        /*struct icaltimetype v_datetimedate;*/
00072        
00073         struct icalreqstattype v_requeststatus;
00074 
00075        /* struct icalrecurrencetype was once included
00076           directly ( not referenced ) in this union, but it
00077           contributes 2000 bytes to every value, so now it is
00078           a reference*/
00079        
00080        struct icalrecurrencetype *v_recur;
00081        struct icaltriggertype v_trigger;
00082 
00083         int v_enum;
00084         /* v_enum takes care of several enumerated types including: 
00085        icalproperty_method v_method;
00086        icalproperty_status v_status;
00087         icalproperty_action v_action;
00088         icalproperty_class v_class;
00089        icalproperty_transp v_transp;
00090         */
00091 
00092     } data;
00093 };
00094 
00095 #endif