source: npl/overig/libical/libical-win32-add-generated-files.diff @ 5747ef0

Last change on this file since 5747ef0 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 534.9 KB
  • src/libical/icalderivedparameter.c

    diff -Nurb libical-0.42.orig/src/libical/icalderivedparameter.c libical-0.42/src/libical/icalderivedparameter.c
    old new  
     1/* -*- Mode: C -*-
     2  ======================================================================
     3  FILE: icalderivedparameters.{c,h}
     4  CREATOR: eric 09 May 1999
     5 
     6  $Id: icalderivedparameter.c.in,v 1.9 2008-01-15 23:17:40 dothebart Exp $
     7  $Locker:  $
     8   
     9
     10 (C) COPYRIGHT 2000, Eric Busboom, 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 icalderivedparameters.{c,h}
     24
     25  Contributions from:
     26     Graham Davison (g.m.davison@computer.org)
     27
     28 ======================================================================*/
     29/*#line 29 "icalparameter.c.in"*/
     30#ifdef HAVE_CONFIG_H
     31#include <config.h>
     32#endif
     33
     34
     35#include "icalparameter.h"
     36#include "icalparameterimpl.h"
     37
     38#include "icalproperty.h"
     39#include "icalerror.h"
     40#include "icalmemory.h"
     41
     42#include <stdlib.h> /* for malloc() */
     43#include <errno.h>
     44#include <string.h> /* for memset() */
     45
     46#ifdef WIN32
     47#define strcasecmp      stricmp
     48#endif
     49
     50icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
     51
     52struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind);
     53
     54/* This map associates each of the parameters with the string
     55   representation of the parameter's name */
     56struct icalparameter_kind_map {
     57    icalparameter_kind kind;
     58    const char *name;
     59   
     60};
     61
     62/* This map associates the enumerations for the VALUE parameter with
     63   the kinds of VALUEs. */
     64
     65struct icalparameter_value_kind_map {
     66    icalparameter_value value;
     67    icalvalue_kind kind;
     68};
     69
     70/* This map associates the parameter enumerations with a specific parameter and the string representation of the enumeration */
     71
     72struct icalparameter_map {
     73    icalparameter_kind kind;
     74    int enumeration;
     75    const char* str;
     76};
     77
     78
     79
     80static const struct icalparameter_value_kind_map value_kind_map[15] = {
     81    {ICAL_VALUE_BINARY,ICAL_BINARY_VALUE},
     82    {ICAL_VALUE_BOOLEAN,ICAL_BOOLEAN_VALUE},
     83    {ICAL_VALUE_DATE,ICAL_DATE_VALUE},
     84    {ICAL_VALUE_DURATION,ICAL_DURATION_VALUE},
     85    {ICAL_VALUE_FLOAT,ICAL_FLOAT_VALUE},
     86    {ICAL_VALUE_INTEGER,ICAL_INTEGER_VALUE},
     87    {ICAL_VALUE_PERIOD,ICAL_PERIOD_VALUE},
     88    {ICAL_VALUE_RECUR,ICAL_RECUR_VALUE},
     89    {ICAL_VALUE_TEXT,ICAL_TEXT_VALUE},
     90    {ICAL_VALUE_URI,ICAL_URI_VALUE},
     91    {ICAL_VALUE_DATETIME,ICAL_DATETIME_VALUE},
     92    {ICAL_VALUE_UTCOFFSET,ICAL_UTCOFFSET_VALUE},
     93    {ICAL_VALUE_CALADDRESS,ICAL_CALADDRESS_VALUE},
     94    {ICAL_VALUE_X,ICAL_X_VALUE},
     95    {ICAL_VALUE_NONE,ICAL_NO_VALUE}
     96};
     97
     98static const struct icalparameter_kind_map parameter_map[32] = {
     99    {ICAL_ACTIONPARAM_PARAMETER,"ACTIONPARAM"},
     100    {ICAL_ALTREP_PARAMETER,"ALTREP"},
     101    {ICAL_CHARSET_PARAMETER,"CHARSET"},
     102    {ICAL_CN_PARAMETER,"CN"},
     103    {ICAL_CUTYPE_PARAMETER,"CUTYPE"},
     104    {ICAL_DELEGATEDFROM_PARAMETER,"DELEGATED-FROM"},
     105    {ICAL_DELEGATEDTO_PARAMETER,"DELEGATED-TO"},
     106    {ICAL_DIR_PARAMETER,"DIR"},
     107    {ICAL_ENABLE_PARAMETER,"ENABLE"},
     108    {ICAL_ENCODING_PARAMETER,"ENCODING"},
     109    {ICAL_FBTYPE_PARAMETER,"FBTYPE"},
     110    {ICAL_FMTTYPE_PARAMETER,"FMTTYPE"},
     111    {ICAL_ID_PARAMETER,"ID"},
     112    {ICAL_LANGUAGE_PARAMETER,"LANGUAGE"},
     113    {ICAL_LATENCY_PARAMETER,"LATENCY"},
     114    {ICAL_LOCAL_PARAMETER,"LOCAL"},
     115    {ICAL_LOCALIZE_PARAMETER,"LOCALIZE"},
     116    {ICAL_MEMBER_PARAMETER,"MEMBER"},
     117    {ICAL_OPTIONS_PARAMETER,"OPTIONS"},
     118    {ICAL_PARTSTAT_PARAMETER,"PARTSTAT"},
     119    {ICAL_RANGE_PARAMETER,"RANGE"},
     120    {ICAL_RELATED_PARAMETER,"RELATED"},
     121    {ICAL_RELTYPE_PARAMETER,"RELTYPE"},
     122    {ICAL_ROLE_PARAMETER,"ROLE"},
     123    {ICAL_RSVP_PARAMETER,"RSVP"},
     124    {ICAL_SENTBY_PARAMETER,"SENT-BY"},
     125    {ICAL_TZID_PARAMETER,"TZID"},
     126    {ICAL_VALUE_PARAMETER,"VALUE"},
     127    {ICAL_X_PARAMETER,"X"},
     128    {ICAL_XLICCOMPARETYPE_PARAMETER,"X-LIC-COMPARETYPE"},
     129    {ICAL_XLICERRORTYPE_PARAMETER,"X-LIC-ERRORTYPE"},
     130    { ICAL_NO_PARAMETER, ""}
     131};
     132
     133static const struct icalparameter_map icalparameter_map[] = {
     134{ICAL_ANY_PARAMETER,0,""},
     135    {ICAL_ACTIONPARAM_PARAMETER,ICAL_ACTIONPARAM_ASK,"ASK"},
     136    {ICAL_ACTIONPARAM_PARAMETER,ICAL_ACTIONPARAM_ABORT,"ABORT"},
     137    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_INDIVIDUAL,"INDIVIDUAL"},
     138    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_GROUP,"GROUP"},
     139    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_RESOURCE,"RESOURCE"},
     140    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_ROOM,"ROOM"},
     141    {ICAL_CUTYPE_PARAMETER,ICAL_CUTYPE_UNKNOWN,"UNKNOWN"},
     142    {ICAL_ENABLE_PARAMETER,ICAL_ENABLE_TRUE,"TRUE"},
     143    {ICAL_ENABLE_PARAMETER,ICAL_ENABLE_FALSE,"FALSE"},
     144    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_8BIT,"8BIT"},
     145    {ICAL_ENCODING_PARAMETER,ICAL_ENCODING_BASE64,"BASE64"},
     146    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_FREE,"FREE"},
     147    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSY,"BUSY"},
     148    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYUNAVAILABLE,"BUSY-UNAVAILABLE"},
     149    {ICAL_FBTYPE_PARAMETER,ICAL_FBTYPE_BUSYTENTATIVE,"BUSY-TENTATIVE"},
     150    {ICAL_LOCAL_PARAMETER,ICAL_LOCAL_TRUE,"TRUE"},
     151    {ICAL_LOCAL_PARAMETER,ICAL_LOCAL_FALSE,"FALSE"},
     152    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_NEEDSACTION,"NEEDS-ACTION"},
     153    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_ACCEPTED,"ACCEPTED"},
     154    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DECLINED,"DECLINED"},
     155    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_TENTATIVE,"TENTATIVE"},
     156    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_DELEGATED,"DELEGATED"},
     157    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_COMPLETED,"COMPLETED"},
     158    {ICAL_PARTSTAT_PARAMETER,ICAL_PARTSTAT_INPROCESS,"INPROCESS"},
     159    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDPRIOR,"THISANDPRIOR"},
     160    {ICAL_RANGE_PARAMETER,ICAL_RANGE_THISANDFUTURE,"THISANDFUTURE"},
     161    {ICAL_RELATED_PARAMETER,ICAL_RELATED_START,"START"},
     162    {ICAL_RELATED_PARAMETER,ICAL_RELATED_END,"END"},
     163    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_PARENT,"PARENT"},
     164    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_CHILD,"CHILD"},
     165    {ICAL_RELTYPE_PARAMETER,ICAL_RELTYPE_SIBLING,"SIBLING"},
     166    {ICAL_ROLE_PARAMETER,ICAL_ROLE_CHAIR,"CHAIR"},
     167    {ICAL_ROLE_PARAMETER,ICAL_ROLE_REQPARTICIPANT,"REQ-PARTICIPANT"},
     168    {ICAL_ROLE_PARAMETER,ICAL_ROLE_OPTPARTICIPANT,"OPT-PARTICIPANT"},
     169    {ICAL_ROLE_PARAMETER,ICAL_ROLE_NONPARTICIPANT,"NON-PARTICIPANT"},
     170    {ICAL_RSVP_PARAMETER,ICAL_RSVP_TRUE,"TRUE"},
     171    {ICAL_RSVP_PARAMETER,ICAL_RSVP_FALSE,"FALSE"},
     172    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BINARY,"BINARY"},
     173    {ICAL_VALUE_PARAMETER,ICAL_VALUE_BOOLEAN,"BOOLEAN"},
     174    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATE,"DATE"},
     175    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DURATION,"DURATION"},
     176    {ICAL_VALUE_PARAMETER,ICAL_VALUE_FLOAT,"FLOAT"},
     177    {ICAL_VALUE_PARAMETER,ICAL_VALUE_INTEGER,"INTEGER"},
     178    {ICAL_VALUE_PARAMETER,ICAL_VALUE_PERIOD,"PERIOD"},
     179    {ICAL_VALUE_PARAMETER,ICAL_VALUE_RECUR,"RECUR"},
     180    {ICAL_VALUE_PARAMETER,ICAL_VALUE_TEXT,"TEXT"},
     181    {ICAL_VALUE_PARAMETER,ICAL_VALUE_URI,"URI"},
     182    {ICAL_VALUE_PARAMETER,ICAL_VALUE_ERROR,"ERROR"},
     183    {ICAL_VALUE_PARAMETER,ICAL_VALUE_DATETIME,"DATE-TIME"},
     184    {ICAL_VALUE_PARAMETER,ICAL_VALUE_UTCOFFSET,"UTC-OFFSET"},
     185    {ICAL_VALUE_PARAMETER,ICAL_VALUE_CALADDRESS,"CAL-ADDRESS"},
     186    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_EQUAL,"EQUAL"},
     187    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_NOTEQUAL,"NOTEQUAL"},
     188    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESS,"LESS"},
     189    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATER,"GREATER"},
     190    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_LESSEQUAL,"LESSEQUAL"},
     191    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_GREATEREQUAL,"GREATEREQUAL"},
     192    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_REGEX,"REGEX"},
     193    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_ISNULL,"ISNULL"},
     194    {ICAL_XLICCOMPARETYPE_PARAMETER,ICAL_XLICCOMPARETYPE_ISNOTNULL,"ISNOTNULL"},
     195    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_COMPONENTPARSEERROR,"COMPONENT-PARSE-ERROR"},
     196    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PROPERTYPARSEERROR,"PROPERTY-PARSE-ERROR"},
     197    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR,"PARAMETER-NAME-PARSE-ERROR"},
     198    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR,"PARAMETER-VALUE-PARSE-ERROR"},
     199    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_VALUEPARSEERROR,"VALUE-PARSE-ERROR"},
     200    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_INVALIDITIP,"INVALID-ITIP"},
     201    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR,"UNKNOWN-VCAL-PROP-ERROR"},
     202    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_MIMEPARSEERROR,"MIME-PARSE-ERROR"},
     203    {ICAL_XLICERRORTYPE_PARAMETER,ICAL_XLICERRORTYPE_VCALPROPPARSEERROR,"VCAL-PROP-PARSE-ERROR"},
     204    {ICAL_NO_PARAMETER,0,""}};
     205
     206/* ID */
     207icalparameter* icalparameter_new_id(const char* v)
     208{
     209   struct icalparameter_impl *impl;
     210   icalerror_clear_errno();
     211   icalerror_check_arg_rz( (v!=0),"v");
     212   impl = icalparameter_new_impl(ICAL_ID_PARAMETER);
     213   if (impl == 0) {
     214      return 0;
     215   }
     216
     217   icalparameter_set_id((icalparameter*) impl,v);
     218   if (icalerrno != ICAL_NO_ERROR) {
     219      icalparameter_free((icalparameter*) impl);
     220      return 0;
     221   }
     222
     223   return (icalparameter*) impl;
     224}
     225
     226const char* icalparameter_get_id(const icalparameter* param)
     227{
     228   icalerror_clear_errno();
     229    icalerror_check_arg_rz( (param!=0), "param");
     230    return param->string;
     231}
     232
     233void icalparameter_set_id(icalparameter* param, const char* v)
     234{
     235   icalerror_check_arg_rv( (v!=0),"v");
     236   icalerror_check_arg_rv( (param!=0), "param");
     237   icalerror_clear_errno();
     238   
     239   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     240}
     241
     242/* LOCALIZE */
     243icalparameter* icalparameter_new_localize(const char* v)
     244{
     245   struct icalparameter_impl *impl;
     246   icalerror_clear_errno();
     247   icalerror_check_arg_rz( (v!=0),"v");
     248   impl = icalparameter_new_impl(ICAL_LOCALIZE_PARAMETER);
     249   if (impl == 0) {
     250      return 0;
     251   }
     252
     253   icalparameter_set_localize((icalparameter*) impl,v);
     254   if (icalerrno != ICAL_NO_ERROR) {
     255      icalparameter_free((icalparameter*) impl);
     256      return 0;
     257   }
     258
     259   return (icalparameter*) impl;
     260}
     261
     262const char* icalparameter_get_localize(const icalparameter* param)
     263{
     264   icalerror_clear_errno();
     265    icalerror_check_arg_rz( (param!=0), "param");
     266    return param->string;
     267}
     268
     269void icalparameter_set_localize(icalparameter* param, const char* v)
     270{
     271   icalerror_check_arg_rv( (v!=0),"v");
     272   icalerror_check_arg_rv( (param!=0), "param");
     273   icalerror_clear_errno();
     274   
     275   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     276}
     277
     278/* LANGUAGE */
     279icalparameter* icalparameter_new_language(const char* v)
     280{
     281   struct icalparameter_impl *impl;
     282   icalerror_clear_errno();
     283   icalerror_check_arg_rz( (v!=0),"v");
     284   impl = icalparameter_new_impl(ICAL_LANGUAGE_PARAMETER);
     285   if (impl == 0) {
     286      return 0;
     287   }
     288
     289   icalparameter_set_language((icalparameter*) impl,v);
     290   if (icalerrno != ICAL_NO_ERROR) {
     291      icalparameter_free((icalparameter*) impl);
     292      return 0;
     293   }
     294
     295   return (icalparameter*) impl;
     296}
     297
     298const char* icalparameter_get_language(const icalparameter* param)
     299{
     300   icalerror_clear_errno();
     301    icalerror_check_arg_rz( (param!=0), "param");
     302    return param->string;
     303}
     304
     305void icalparameter_set_language(icalparameter* param, const char* v)
     306{
     307   icalerror_check_arg_rv( (v!=0),"v");
     308   icalerror_check_arg_rv( (param!=0), "param");
     309   icalerror_clear_errno();
     310   
     311   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     312}
     313
     314/* DIR */
     315icalparameter* icalparameter_new_dir(const char* v)
     316{
     317   struct icalparameter_impl *impl;
     318   icalerror_clear_errno();
     319   icalerror_check_arg_rz( (v!=0),"v");
     320   impl = icalparameter_new_impl(ICAL_DIR_PARAMETER);
     321   if (impl == 0) {
     322      return 0;
     323   }
     324
     325   icalparameter_set_dir((icalparameter*) impl,v);
     326   if (icalerrno != ICAL_NO_ERROR) {
     327      icalparameter_free((icalparameter*) impl);
     328      return 0;
     329   }
     330
     331   return (icalparameter*) impl;
     332}
     333
     334const char* icalparameter_get_dir(const icalparameter* param)
     335{
     336   icalerror_clear_errno();
     337    icalerror_check_arg_rz( (param!=0), "param");
     338    return param->string;
     339}
     340
     341void icalparameter_set_dir(icalparameter* param, const char* v)
     342{
     343   icalerror_check_arg_rv( (v!=0),"v");
     344   icalerror_check_arg_rv( (param!=0), "param");
     345   icalerror_clear_errno();
     346   
     347   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     348}
     349
     350/* RELTYPE */
     351icalparameter* icalparameter_new_reltype(icalparameter_reltype v)
     352{
     353   struct icalparameter_impl *impl;
     354   icalerror_clear_errno();
     355   icalerror_check_arg_rz(v >= ICAL_RELTYPE_X,"v");
     356    icalerror_check_arg_rz(v < ICAL_RELTYPE_NONE,"v");
     357   impl = icalparameter_new_impl(ICAL_RELTYPE_PARAMETER);
     358   if (impl == 0) {
     359      return 0;
     360   }
     361
     362   icalparameter_set_reltype((icalparameter*) impl,v);
     363   if (icalerrno != ICAL_NO_ERROR) {
     364      icalparameter_free((icalparameter*) impl);
     365      return 0;
     366   }
     367
     368   return (icalparameter*) impl;
     369}
     370
     371icalparameter_reltype icalparameter_get_reltype(const icalparameter* param)
     372{
     373   icalerror_clear_errno();
     374icalerror_check_arg( (param!=0), "param");
     375     if (param->string != 0){
     376        return ICAL_RELTYPE_X;
     377        }
     378
     379return (icalparameter_reltype)(param->data);
     380}
     381
     382void icalparameter_set_reltype(icalparameter* param, icalparameter_reltype v)
     383{
     384   icalerror_check_arg_rv(v >= ICAL_RELTYPE_X,"v");
     385    icalerror_check_arg_rv(v < ICAL_RELTYPE_NONE,"v");
     386   icalerror_check_arg_rv( (param!=0), "param");
     387   icalerror_clear_errno();
     388   
     389   ((struct icalparameter_impl*)param)->data = (int)v;
     390}
     391
     392/* FMTTYPE */
     393icalparameter* icalparameter_new_fmttype(const char* v)
     394{
     395   struct icalparameter_impl *impl;
     396   icalerror_clear_errno();
     397   icalerror_check_arg_rz( (v!=0),"v");
     398   impl = icalparameter_new_impl(ICAL_FMTTYPE_PARAMETER);
     399   if (impl == 0) {
     400      return 0;
     401   }
     402
     403   icalparameter_set_fmttype((icalparameter*) impl,v);
     404   if (icalerrno != ICAL_NO_ERROR) {
     405      icalparameter_free((icalparameter*) impl);
     406      return 0;
     407   }
     408
     409   return (icalparameter*) impl;
     410}
     411
     412const char* icalparameter_get_fmttype(const icalparameter* param)
     413{
     414   icalerror_clear_errno();
     415    icalerror_check_arg_rz( (param!=0), "param");
     416    return param->string;
     417}
     418
     419void icalparameter_set_fmttype(icalparameter* param, const char* v)
     420{
     421   icalerror_check_arg_rv( (v!=0),"v");
     422   icalerror_check_arg_rv( (param!=0), "param");
     423   icalerror_clear_errno();
     424   
     425   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     426}
     427
     428/* OPTIONS */
     429icalparameter* icalparameter_new_options(const char* v)
     430{
     431   struct icalparameter_impl *impl;
     432   icalerror_clear_errno();
     433   icalerror_check_arg_rz( (v!=0),"v");
     434   impl = icalparameter_new_impl(ICAL_OPTIONS_PARAMETER);
     435   if (impl == 0) {
     436      return 0;
     437   }
     438
     439   icalparameter_set_options((icalparameter*) impl,v);
     440   if (icalerrno != ICAL_NO_ERROR) {
     441      icalparameter_free((icalparameter*) impl);
     442      return 0;
     443   }
     444
     445   return (icalparameter*) impl;
     446}
     447
     448const char* icalparameter_get_options(const icalparameter* param)
     449{
     450   icalerror_clear_errno();
     451    icalerror_check_arg_rz( (param!=0), "param");
     452    return param->string;
     453}
     454
     455void icalparameter_set_options(icalparameter* param, const char* v)
     456{
     457   icalerror_check_arg_rv( (v!=0),"v");
     458   icalerror_check_arg_rv( (param!=0), "param");
     459   icalerror_clear_errno();
     460   
     461   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     462}
     463
     464/* TZID */
     465icalparameter* icalparameter_new_tzid(const char* v)
     466{
     467   struct icalparameter_impl *impl;
     468   icalerror_clear_errno();
     469   icalerror_check_arg_rz( (v!=0),"v");
     470   impl = icalparameter_new_impl(ICAL_TZID_PARAMETER);
     471   if (impl == 0) {
     472      return 0;
     473   }
     474
     475   icalparameter_set_tzid((icalparameter*) impl,v);
     476   if (icalerrno != ICAL_NO_ERROR) {
     477      icalparameter_free((icalparameter*) impl);
     478      return 0;
     479   }
     480
     481   return (icalparameter*) impl;
     482}
     483
     484const char* icalparameter_get_tzid(const icalparameter* param)
     485{
     486   icalerror_clear_errno();
     487    icalerror_check_arg_rz( (param!=0), "param");
     488    return param->string;
     489}
     490
     491void icalparameter_set_tzid(icalparameter* param, const char* v)
     492{
     493   icalerror_check_arg_rv( (v!=0),"v");
     494   icalerror_check_arg_rv( (param!=0), "param");
     495   icalerror_clear_errno();
     496   
     497   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     498}
     499
     500/* ENABLE */
     501icalparameter* icalparameter_new_enable(icalparameter_enable v)
     502{
     503   struct icalparameter_impl *impl;
     504   icalerror_clear_errno();
     505   icalerror_check_arg_rz(v >= ICAL_ENABLE_X,"v");
     506    icalerror_check_arg_rz(v < ICAL_ENABLE_NONE,"v");
     507   impl = icalparameter_new_impl(ICAL_ENABLE_PARAMETER);
     508   if (impl == 0) {
     509      return 0;
     510   }
     511
     512   icalparameter_set_enable((icalparameter*) impl,v);
     513   if (icalerrno != ICAL_NO_ERROR) {
     514      icalparameter_free((icalparameter*) impl);
     515      return 0;
     516   }
     517
     518   return (icalparameter*) impl;
     519}
     520
     521icalparameter_enable icalparameter_get_enable(const icalparameter* param)
     522{
     523   icalerror_clear_errno();
     524icalerror_check_arg( (param!=0), "param");
     525     if (param->string != 0){
     526        return ICAL_ENABLE_X;
     527        }
     528
     529return (icalparameter_enable)(param->data);
     530}
     531
     532void icalparameter_set_enable(icalparameter* param, icalparameter_enable v)
     533{
     534   icalerror_check_arg_rv(v >= ICAL_ENABLE_X,"v");
     535    icalerror_check_arg_rv(v < ICAL_ENABLE_NONE,"v");
     536   icalerror_check_arg_rv( (param!=0), "param");
     537   icalerror_clear_errno();
     538   
     539   ((struct icalparameter_impl*)param)->data = (int)v;
     540}
     541
     542/* RANGE */
     543icalparameter* icalparameter_new_range(icalparameter_range v)
     544{
     545   struct icalparameter_impl *impl;
     546   icalerror_clear_errno();
     547   icalerror_check_arg_rz(v >= ICAL_RANGE_X,"v");
     548    icalerror_check_arg_rz(v < ICAL_RANGE_NONE,"v");
     549   impl = icalparameter_new_impl(ICAL_RANGE_PARAMETER);
     550   if (impl == 0) {
     551      return 0;
     552   }
     553
     554   icalparameter_set_range((icalparameter*) impl,v);
     555   if (icalerrno != ICAL_NO_ERROR) {
     556      icalparameter_free((icalparameter*) impl);
     557      return 0;
     558   }
     559
     560   return (icalparameter*) impl;
     561}
     562
     563icalparameter_range icalparameter_get_range(const icalparameter* param)
     564{
     565   icalerror_clear_errno();
     566icalerror_check_arg( (param!=0), "param");
     567
     568return (icalparameter_range)(param->data);
     569}
     570
     571void icalparameter_set_range(icalparameter* param, icalparameter_range v)
     572{
     573   icalerror_check_arg_rv(v >= ICAL_RANGE_X,"v");
     574    icalerror_check_arg_rv(v < ICAL_RANGE_NONE,"v");
     575   icalerror_check_arg_rv( (param!=0), "param");
     576   icalerror_clear_errno();
     577   
     578   ((struct icalparameter_impl*)param)->data = (int)v;
     579}
     580
     581/* LATENCY */
     582icalparameter* icalparameter_new_latency(const char* v)
     583{
     584   struct icalparameter_impl *impl;
     585   icalerror_clear_errno();
     586   icalerror_check_arg_rz( (v!=0),"v");
     587   impl = icalparameter_new_impl(ICAL_LATENCY_PARAMETER);
     588   if (impl == 0) {
     589      return 0;
     590   }
     591
     592   icalparameter_set_latency((icalparameter*) impl,v);
     593   if (icalerrno != ICAL_NO_ERROR) {
     594      icalparameter_free((icalparameter*) impl);
     595      return 0;
     596   }
     597
     598   return (icalparameter*) impl;
     599}
     600
     601const char* icalparameter_get_latency(const icalparameter* param)
     602{
     603   icalerror_clear_errno();
     604    icalerror_check_arg_rz( (param!=0), "param");
     605    return param->string;
     606}
     607
     608void icalparameter_set_latency(icalparameter* param, const char* v)
     609{
     610   icalerror_check_arg_rv( (v!=0),"v");
     611   icalerror_check_arg_rv( (param!=0), "param");
     612   icalerror_clear_errno();
     613   
     614   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     615}
     616
     617/* DELEGATED-TO */
     618icalparameter* icalparameter_new_delegatedto(const char* v)
     619{
     620   struct icalparameter_impl *impl;
     621   icalerror_clear_errno();
     622   icalerror_check_arg_rz( (v!=0),"v");
     623   impl = icalparameter_new_impl(ICAL_DELEGATEDTO_PARAMETER);
     624   if (impl == 0) {
     625      return 0;
     626   }
     627
     628   icalparameter_set_delegatedto((icalparameter*) impl,v);
     629   if (icalerrno != ICAL_NO_ERROR) {
     630      icalparameter_free((icalparameter*) impl);
     631      return 0;
     632   }
     633
     634   return (icalparameter*) impl;
     635}
     636
     637const char* icalparameter_get_delegatedto(const icalparameter* param)
     638{
     639   icalerror_clear_errno();
     640    icalerror_check_arg_rz( (param!=0), "param");
     641    return param->string;
     642}
     643
     644void icalparameter_set_delegatedto(icalparameter* param, const char* v)
     645{
     646   icalerror_check_arg_rv( (v!=0),"v");
     647   icalerror_check_arg_rv( (param!=0), "param");
     648   icalerror_clear_errno();
     649   
     650   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     651}
     652
     653/* LOCAL */
     654icalparameter* icalparameter_new_local(icalparameter_local v)
     655{
     656   struct icalparameter_impl *impl;
     657   icalerror_clear_errno();
     658   icalerror_check_arg_rz(v >= ICAL_LOCAL_X,"v");
     659    icalerror_check_arg_rz(v < ICAL_LOCAL_NONE,"v");
     660   impl = icalparameter_new_impl(ICAL_LOCAL_PARAMETER);
     661   if (impl == 0) {
     662      return 0;
     663   }
     664
     665   icalparameter_set_local((icalparameter*) impl,v);
     666   if (icalerrno != ICAL_NO_ERROR) {
     667      icalparameter_free((icalparameter*) impl);
     668      return 0;
     669   }
     670
     671   return (icalparameter*) impl;
     672}
     673
     674icalparameter_local icalparameter_get_local(const icalparameter* param)
     675{
     676   icalerror_clear_errno();
     677icalerror_check_arg( (param!=0), "param");
     678     if (param->string != 0){
     679        return ICAL_LOCAL_X;
     680        }
     681
     682return (icalparameter_local)(param->data);
     683}
     684
     685void icalparameter_set_local(icalparameter* param, icalparameter_local v)
     686{
     687   icalerror_check_arg_rv(v >= ICAL_LOCAL_X,"v");
     688    icalerror_check_arg_rv(v < ICAL_LOCAL_NONE,"v");
     689   icalerror_check_arg_rv( (param!=0), "param");
     690   icalerror_clear_errno();
     691   
     692   ((struct icalparameter_impl*)param)->data = (int)v;
     693}
     694
     695/* CN */
     696icalparameter* icalparameter_new_cn(const char* v)
     697{
     698   struct icalparameter_impl *impl;
     699   icalerror_clear_errno();
     700   icalerror_check_arg_rz( (v!=0),"v");
     701   impl = icalparameter_new_impl(ICAL_CN_PARAMETER);
     702   if (impl == 0) {
     703      return 0;
     704   }
     705
     706   icalparameter_set_cn((icalparameter*) impl,v);
     707   if (icalerrno != ICAL_NO_ERROR) {
     708      icalparameter_free((icalparameter*) impl);
     709      return 0;
     710   }
     711
     712   return (icalparameter*) impl;
     713}
     714
     715const char* icalparameter_get_cn(const icalparameter* param)
     716{
     717   icalerror_clear_errno();
     718    icalerror_check_arg_rz( (param!=0), "param");
     719    return param->string;
     720}
     721
     722void icalparameter_set_cn(icalparameter* param, const char* v)
     723{
     724   icalerror_check_arg_rv( (v!=0),"v");
     725   icalerror_check_arg_rv( (param!=0), "param");
     726   icalerror_clear_errno();
     727   
     728   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     729}
     730
     731/* CHARSET */
     732icalparameter* icalparameter_new_charset(const char* v)
     733{
     734   struct icalparameter_impl *impl;
     735   icalerror_clear_errno();
     736   icalerror_check_arg_rz( (v!=0),"v");
     737   impl = icalparameter_new_impl(ICAL_CHARSET_PARAMETER);
     738   if (impl == 0) {
     739      return 0;
     740   }
     741
     742   icalparameter_set_charset((icalparameter*) impl,v);
     743   if (icalerrno != ICAL_NO_ERROR) {
     744      icalparameter_free((icalparameter*) impl);
     745      return 0;
     746   }
     747
     748   return (icalparameter*) impl;
     749}
     750
     751const char* icalparameter_get_charset(const icalparameter* param)
     752{
     753   icalerror_clear_errno();
     754    icalerror_check_arg_rz( (param!=0), "param");
     755    return param->string;
     756}
     757
     758void icalparameter_set_charset(icalparameter* param, const char* v)
     759{
     760   icalerror_check_arg_rv( (v!=0),"v");
     761   icalerror_check_arg_rv( (param!=0), "param");
     762   icalerror_clear_errno();
     763   
     764   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     765}
     766
     767/* ACTIONPARAM */
     768icalparameter* icalparameter_new_actionparam(icalparameter_action v)
     769{
     770   struct icalparameter_impl *impl;
     771   icalerror_clear_errno();
     772   icalerror_check_arg_rz(v >= ICAL_ACTIONPARAM_X,"v");
     773    icalerror_check_arg_rz(v < ICAL_ACTIONPARAM_NONE,"v");
     774   impl = icalparameter_new_impl(ICAL_ACTIONPARAM_PARAMETER);
     775   if (impl == 0) {
     776      return 0;
     777   }
     778
     779   icalparameter_set_actionparam((icalparameter*) impl,v);
     780   if (icalerrno != ICAL_NO_ERROR) {
     781      icalparameter_free((icalparameter*) impl);
     782      return 0;
     783   }
     784
     785   return (icalparameter*) impl;
     786}
     787
     788icalparameter_action icalparameter_get_actionparam(const icalparameter* param)
     789{
     790   icalerror_clear_errno();
     791icalerror_check_arg( (param!=0), "param");
     792     if (param->string != 0){
     793        return ICAL_ACTIONPARAM_X;
     794        }
     795
     796return (icalparameter_action)(param->data);
     797}
     798
     799void icalparameter_set_actionparam(icalparameter* param, icalparameter_action v)
     800{
     801   icalerror_check_arg_rv(v >= ICAL_ACTIONPARAM_X,"v");
     802    icalerror_check_arg_rv(v < ICAL_ACTIONPARAM_NONE,"v");
     803   icalerror_check_arg_rv( (param!=0), "param");
     804   icalerror_clear_errno();
     805   
     806   ((struct icalparameter_impl*)param)->data = (int)v;
     807}
     808
     809/* VALUE */
     810icalparameter* icalparameter_new_value(icalparameter_value v)
     811{
     812   struct icalparameter_impl *impl;
     813   icalerror_clear_errno();
     814   icalerror_check_arg_rz(v >= ICAL_VALUE_X,"v");
     815    icalerror_check_arg_rz(v < ICAL_VALUE_NONE,"v");
     816   impl = icalparameter_new_impl(ICAL_VALUE_PARAMETER);
     817   if (impl == 0) {
     818      return 0;
     819   }
     820
     821   icalparameter_set_value((icalparameter*) impl,v);
     822   if (icalerrno != ICAL_NO_ERROR) {
     823      icalparameter_free((icalparameter*) impl);
     824      return 0;
     825   }
     826
     827   return (icalparameter*) impl;
     828}
     829
     830icalparameter_value icalparameter_get_value(const icalparameter* param)
     831{
     832   icalerror_clear_errno();
     833icalerror_check_arg( (param!=0), "param");
     834     if (param->string != 0){
     835        return ICAL_VALUE_X;
     836        }
     837
     838return (icalparameter_value)(param->data);
     839}
     840
     841void icalparameter_set_value(icalparameter* param, icalparameter_value v)
     842{
     843   icalerror_check_arg_rv(v >= ICAL_VALUE_X,"v");
     844    icalerror_check_arg_rv(v < ICAL_VALUE_NONE,"v");
     845   icalerror_check_arg_rv( (param!=0), "param");
     846   icalerror_clear_errno();
     847   
     848   ((struct icalparameter_impl*)param)->data = (int)v;
     849}
     850
     851/* X-LIC-COMPARETYPE */
     852icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v)
     853{
     854   struct icalparameter_impl *impl;
     855   icalerror_clear_errno();
     856   icalerror_check_arg_rz(v >= ICAL_XLICCOMPARETYPE_X,"v");
     857    icalerror_check_arg_rz(v < ICAL_XLICCOMPARETYPE_NONE,"v");
     858   impl = icalparameter_new_impl(ICAL_XLICCOMPARETYPE_PARAMETER);
     859   if (impl == 0) {
     860      return 0;
     861   }
     862
     863   icalparameter_set_xliccomparetype((icalparameter*) impl,v);
     864   if (icalerrno != ICAL_NO_ERROR) {
     865      icalparameter_free((icalparameter*) impl);
     866      return 0;
     867   }
     868
     869   return (icalparameter*) impl;
     870}
     871
     872icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* param)
     873{
     874   icalerror_clear_errno();
     875icalerror_check_arg( (param!=0), "param");
     876
     877return (icalparameter_xliccomparetype)(param->data);
     878}
     879
     880void icalparameter_set_xliccomparetype(icalparameter* param, icalparameter_xliccomparetype v)
     881{
     882   icalerror_check_arg_rv(v >= ICAL_XLICCOMPARETYPE_X,"v");
     883    icalerror_check_arg_rv(v < ICAL_XLICCOMPARETYPE_NONE,"v");
     884   icalerror_check_arg_rv( (param!=0), "param");
     885   icalerror_clear_errno();
     886   
     887   ((struct icalparameter_impl*)param)->data = (int)v;
     888}
     889
     890/* X */
     891icalparameter* icalparameter_new_x(const char* v)
     892{
     893   struct icalparameter_impl *impl;
     894   icalerror_clear_errno();
     895   icalerror_check_arg_rz( (v!=0),"v");
     896   impl = icalparameter_new_impl(ICAL_X_PARAMETER);
     897   if (impl == 0) {
     898      return 0;
     899   }
     900
     901   icalparameter_set_x((icalparameter*) impl,v);
     902   if (icalerrno != ICAL_NO_ERROR) {
     903      icalparameter_free((icalparameter*) impl);
     904      return 0;
     905   }
     906
     907   return (icalparameter*) impl;
     908}
     909
     910const char* icalparameter_get_x(const icalparameter* param)
     911{
     912   icalerror_clear_errno();
     913    icalerror_check_arg_rz( (param!=0), "param");
     914    return param->string;
     915}
     916
     917void icalparameter_set_x(icalparameter* param, const char* v)
     918{
     919   icalerror_check_arg_rv( (v!=0),"v");
     920   icalerror_check_arg_rv( (param!=0), "param");
     921   icalerror_clear_errno();
     922   
     923   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     924}
     925
     926/* MEMBER */
     927icalparameter* icalparameter_new_member(const char* v)
     928{
     929   struct icalparameter_impl *impl;
     930   icalerror_clear_errno();
     931   icalerror_check_arg_rz( (v!=0),"v");
     932   impl = icalparameter_new_impl(ICAL_MEMBER_PARAMETER);
     933   if (impl == 0) {
     934      return 0;
     935   }
     936
     937   icalparameter_set_member((icalparameter*) impl,v);
     938   if (icalerrno != ICAL_NO_ERROR) {
     939      icalparameter_free((icalparameter*) impl);
     940      return 0;
     941   }
     942
     943   return (icalparameter*) impl;
     944}
     945
     946const char* icalparameter_get_member(const icalparameter* param)
     947{
     948   icalerror_clear_errno();
     949    icalerror_check_arg_rz( (param!=0), "param");
     950    return param->string;
     951}
     952
     953void icalparameter_set_member(icalparameter* param, const char* v)
     954{
     955   icalerror_check_arg_rv( (v!=0),"v");
     956   icalerror_check_arg_rv( (param!=0), "param");
     957   icalerror_clear_errno();
     958   
     959   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     960}
     961
     962/* SENT-BY */
     963icalparameter* icalparameter_new_sentby(const char* v)
     964{
     965   struct icalparameter_impl *impl;
     966   icalerror_clear_errno();
     967   icalerror_check_arg_rz( (v!=0),"v");
     968   impl = icalparameter_new_impl(ICAL_SENTBY_PARAMETER);
     969   if (impl == 0) {
     970      return 0;
     971   }
     972
     973   icalparameter_set_sentby((icalparameter*) impl,v);
     974   if (icalerrno != ICAL_NO_ERROR) {
     975      icalparameter_free((icalparameter*) impl);
     976      return 0;
     977   }
     978
     979   return (icalparameter*) impl;
     980}
     981
     982const char* icalparameter_get_sentby(const icalparameter* param)
     983{
     984   icalerror_clear_errno();
     985    icalerror_check_arg_rz( (param!=0), "param");
     986    return param->string;
     987}
     988
     989void icalparameter_set_sentby(icalparameter* param, const char* v)
     990{
     991   icalerror_check_arg_rv( (v!=0),"v");
     992   icalerror_check_arg_rv( (param!=0), "param");
     993   icalerror_clear_errno();
     994   
     995   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     996}
     997
     998/* CUTYPE */
     999icalparameter* icalparameter_new_cutype(icalparameter_cutype v)
     1000{
     1001   struct icalparameter_impl *impl;
     1002   icalerror_clear_errno();
     1003   icalerror_check_arg_rz(v >= ICAL_CUTYPE_X,"v");
     1004    icalerror_check_arg_rz(v < ICAL_CUTYPE_NONE,"v");
     1005   impl = icalparameter_new_impl(ICAL_CUTYPE_PARAMETER);
     1006   if (impl == 0) {
     1007      return 0;
     1008   }
     1009
     1010   icalparameter_set_cutype((icalparameter*) impl,v);
     1011   if (icalerrno != ICAL_NO_ERROR) {
     1012      icalparameter_free((icalparameter*) impl);
     1013      return 0;
     1014   }
     1015
     1016   return (icalparameter*) impl;
     1017}
     1018
     1019icalparameter_cutype icalparameter_get_cutype(const icalparameter* param)
     1020{
     1021   icalerror_clear_errno();
     1022icalerror_check_arg( (param!=0), "param");
     1023     if (param->string != 0){
     1024        return ICAL_CUTYPE_X;
     1025        }
     1026
     1027return (icalparameter_cutype)(param->data);
     1028}
     1029
     1030void icalparameter_set_cutype(icalparameter* param, icalparameter_cutype v)
     1031{
     1032   icalerror_check_arg_rv(v >= ICAL_CUTYPE_X,"v");
     1033    icalerror_check_arg_rv(v < ICAL_CUTYPE_NONE,"v");
     1034   icalerror_check_arg_rv( (param!=0), "param");
     1035   icalerror_clear_errno();
     1036   
     1037   ((struct icalparameter_impl*)param)->data = (int)v;
     1038}
     1039
     1040/* RSVP */
     1041icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v)
     1042{
     1043   struct icalparameter_impl *impl;
     1044   icalerror_clear_errno();
     1045   icalerror_check_arg_rz(v >= ICAL_RSVP_X,"v");
     1046    icalerror_check_arg_rz(v < ICAL_RSVP_NONE,"v");
     1047   impl = icalparameter_new_impl(ICAL_RSVP_PARAMETER);
     1048   if (impl == 0) {
     1049      return 0;
     1050   }
     1051
     1052   icalparameter_set_rsvp((icalparameter*) impl,v);
     1053   if (icalerrno != ICAL_NO_ERROR) {
     1054      icalparameter_free((icalparameter*) impl);
     1055      return 0;
     1056   }
     1057
     1058   return (icalparameter*) impl;
     1059}
     1060
     1061icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* param)
     1062{
     1063   icalerror_clear_errno();
     1064icalerror_check_arg( (param!=0), "param");
     1065
     1066return (icalparameter_rsvp)(param->data);
     1067}
     1068
     1069void icalparameter_set_rsvp(icalparameter* param, icalparameter_rsvp v)
     1070{
     1071   icalerror_check_arg_rv(v >= ICAL_RSVP_X,"v");
     1072    icalerror_check_arg_rv(v < ICAL_RSVP_NONE,"v");
     1073   icalerror_check_arg_rv( (param!=0), "param");
     1074   icalerror_clear_errno();
     1075   
     1076   ((struct icalparameter_impl*)param)->data = (int)v;
     1077}
     1078
     1079/* RELATED */
     1080icalparameter* icalparameter_new_related(icalparameter_related v)
     1081{
     1082   struct icalparameter_impl *impl;
     1083   icalerror_clear_errno();
     1084   icalerror_check_arg_rz(v >= ICAL_RELATED_X,"v");
     1085    icalerror_check_arg_rz(v < ICAL_RELATED_NONE,"v");
     1086   impl = icalparameter_new_impl(ICAL_RELATED_PARAMETER);
     1087   if (impl == 0) {
     1088      return 0;
     1089   }
     1090
     1091   icalparameter_set_related((icalparameter*) impl,v);
     1092   if (icalerrno != ICAL_NO_ERROR) {
     1093      icalparameter_free((icalparameter*) impl);
     1094      return 0;
     1095   }
     1096
     1097   return (icalparameter*) impl;
     1098}
     1099
     1100icalparameter_related icalparameter_get_related(const icalparameter* param)
     1101{
     1102   icalerror_clear_errno();
     1103icalerror_check_arg( (param!=0), "param");
     1104
     1105return (icalparameter_related)(param->data);
     1106}
     1107
     1108void icalparameter_set_related(icalparameter* param, icalparameter_related v)
     1109{
     1110   icalerror_check_arg_rv(v >= ICAL_RELATED_X,"v");
     1111    icalerror_check_arg_rv(v < ICAL_RELATED_NONE,"v");
     1112   icalerror_check_arg_rv( (param!=0), "param");
     1113   icalerror_clear_errno();
     1114   
     1115   ((struct icalparameter_impl*)param)->data = (int)v;
     1116}
     1117
     1118/* X-LIC-ERRORTYPE */
     1119icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v)
     1120{
     1121   struct icalparameter_impl *impl;
     1122   icalerror_clear_errno();
     1123   icalerror_check_arg_rz(v >= ICAL_XLICERRORTYPE_X,"v");
     1124    icalerror_check_arg_rz(v < ICAL_XLICERRORTYPE_NONE,"v");
     1125   impl = icalparameter_new_impl(ICAL_XLICERRORTYPE_PARAMETER);
     1126   if (impl == 0) {
     1127      return 0;
     1128   }
     1129
     1130   icalparameter_set_xlicerrortype((icalparameter*) impl,v);
     1131   if (icalerrno != ICAL_NO_ERROR) {
     1132      icalparameter_free((icalparameter*) impl);
     1133      return 0;
     1134   }
     1135
     1136   return (icalparameter*) impl;
     1137}
     1138
     1139icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* param)
     1140{
     1141   icalerror_clear_errno();
     1142icalerror_check_arg( (param!=0), "param");
     1143
     1144return (icalparameter_xlicerrortype)(param->data);
     1145}
     1146
     1147void icalparameter_set_xlicerrortype(icalparameter* param, icalparameter_xlicerrortype v)
     1148{
     1149   icalerror_check_arg_rv(v >= ICAL_XLICERRORTYPE_X,"v");
     1150    icalerror_check_arg_rv(v < ICAL_XLICERRORTYPE_NONE,"v");
     1151   icalerror_check_arg_rv( (param!=0), "param");
     1152   icalerror_clear_errno();
     1153   
     1154   ((struct icalparameter_impl*)param)->data = (int)v;
     1155}
     1156
     1157/* ENCODING */
     1158icalparameter* icalparameter_new_encoding(icalparameter_encoding v)
     1159{
     1160   struct icalparameter_impl *impl;
     1161   icalerror_clear_errno();
     1162   icalerror_check_arg_rz(v >= ICAL_ENCODING_X,"v");
     1163    icalerror_check_arg_rz(v < ICAL_ENCODING_NONE,"v");
     1164   impl = icalparameter_new_impl(ICAL_ENCODING_PARAMETER);
     1165   if (impl == 0) {
     1166      return 0;
     1167   }
     1168
     1169   icalparameter_set_encoding((icalparameter*) impl,v);
     1170   if (icalerrno != ICAL_NO_ERROR) {
     1171      icalparameter_free((icalparameter*) impl);
     1172      return 0;
     1173   }
     1174
     1175   return (icalparameter*) impl;
     1176}
     1177
     1178icalparameter_encoding icalparameter_get_encoding(const icalparameter* param)
     1179{
     1180   icalerror_clear_errno();
     1181icalerror_check_arg( (param!=0), "param");
     1182     if (param->string != 0){
     1183        return ICAL_ENCODING_X;
     1184        }
     1185
     1186return (icalparameter_encoding)(param->data);
     1187}
     1188
     1189void icalparameter_set_encoding(icalparameter* param, icalparameter_encoding v)
     1190{
     1191   icalerror_check_arg_rv(v >= ICAL_ENCODING_X,"v");
     1192    icalerror_check_arg_rv(v < ICAL_ENCODING_NONE,"v");
     1193   icalerror_check_arg_rv( (param!=0), "param");
     1194   icalerror_clear_errno();
     1195   
     1196   ((struct icalparameter_impl*)param)->data = (int)v;
     1197}
     1198
     1199/* ALTREP */
     1200icalparameter* icalparameter_new_altrep(const char* v)
     1201{
     1202   struct icalparameter_impl *impl;
     1203   icalerror_clear_errno();
     1204   icalerror_check_arg_rz( (v!=0),"v");
     1205   impl = icalparameter_new_impl(ICAL_ALTREP_PARAMETER);
     1206   if (impl == 0) {
     1207      return 0;
     1208   }
     1209
     1210   icalparameter_set_altrep((icalparameter*) impl,v);
     1211   if (icalerrno != ICAL_NO_ERROR) {
     1212      icalparameter_free((icalparameter*) impl);
     1213      return 0;
     1214   }
     1215
     1216   return (icalparameter*) impl;
     1217}
     1218
     1219const char* icalparameter_get_altrep(const icalparameter* param)
     1220{
     1221   icalerror_clear_errno();
     1222    icalerror_check_arg_rz( (param!=0), "param");
     1223    return param->string;
     1224}
     1225
     1226void icalparameter_set_altrep(icalparameter* param, const char* v)
     1227{
     1228   icalerror_check_arg_rv( (v!=0),"v");
     1229   icalerror_check_arg_rv( (param!=0), "param");
     1230   icalerror_clear_errno();
     1231   
     1232   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     1233}
     1234
     1235/* DELEGATED-FROM */
     1236icalparameter* icalparameter_new_delegatedfrom(const char* v)
     1237{
     1238   struct icalparameter_impl *impl;
     1239   icalerror_clear_errno();
     1240   icalerror_check_arg_rz( (v!=0),"v");
     1241   impl = icalparameter_new_impl(ICAL_DELEGATEDFROM_PARAMETER);
     1242   if (impl == 0) {
     1243      return 0;
     1244   }
     1245
     1246   icalparameter_set_delegatedfrom((icalparameter*) impl,v);
     1247   if (icalerrno != ICAL_NO_ERROR) {
     1248      icalparameter_free((icalparameter*) impl);
     1249      return 0;
     1250   }
     1251
     1252   return (icalparameter*) impl;
     1253}
     1254
     1255const char* icalparameter_get_delegatedfrom(const icalparameter* param)
     1256{
     1257   icalerror_clear_errno();
     1258    icalerror_check_arg_rz( (param!=0), "param");
     1259    return param->string;
     1260}
     1261
     1262void icalparameter_set_delegatedfrom(icalparameter* param, const char* v)
     1263{
     1264   icalerror_check_arg_rv( (v!=0),"v");
     1265   icalerror_check_arg_rv( (param!=0), "param");
     1266   icalerror_clear_errno();
     1267   
     1268   ((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);
     1269}
     1270
     1271/* FBTYPE */
     1272icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v)
     1273{
     1274   struct icalparameter_impl *impl;
     1275   icalerror_clear_errno();
     1276   icalerror_check_arg_rz(v >= ICAL_FBTYPE_X,"v");
     1277    icalerror_check_arg_rz(v < ICAL_FBTYPE_NONE,"v");
     1278   impl = icalparameter_new_impl(ICAL_FBTYPE_PARAMETER);
     1279   if (impl == 0) {
     1280      return 0;
     1281   }
     1282
     1283   icalparameter_set_fbtype((icalparameter*) impl,v);
     1284   if (icalerrno != ICAL_NO_ERROR) {
     1285      icalparameter_free((icalparameter*) impl);
     1286      return 0;
     1287   }
     1288
     1289   return (icalparameter*) impl;
     1290}
     1291
     1292icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* param)
     1293{
     1294   icalerror_clear_errno();
     1295icalerror_check_arg( (param!=0), "param");
     1296     if (param->string != 0){
     1297        return ICAL_FBTYPE_X;
     1298        }
     1299
     1300return (icalparameter_fbtype)(param->data);
     1301}
     1302
     1303void icalparameter_set_fbtype(icalparameter* param, icalparameter_fbtype v)
     1304{
     1305   icalerror_check_arg_rv(v >= ICAL_FBTYPE_X,"v");
     1306    icalerror_check_arg_rv(v < ICAL_FBTYPE_NONE,"v");
     1307   icalerror_check_arg_rv( (param!=0), "param");
     1308   icalerror_clear_errno();
     1309   
     1310   ((struct icalparameter_impl*)param)->data = (int)v;
     1311}
     1312
     1313/* PARTSTAT */
     1314icalparameter* icalparameter_new_partstat(icalparameter_partstat v)
     1315{
     1316   struct icalparameter_impl *impl;
     1317   icalerror_clear_errno();
     1318   icalerror_check_arg_rz(v >= ICAL_PARTSTAT_X,"v");
     1319    icalerror_check_arg_rz(v < ICAL_PARTSTAT_NONE,"v");
     1320   impl = icalparameter_new_impl(ICAL_PARTSTAT_PARAMETER);
     1321   if (impl == 0) {
     1322      return 0;
     1323   }
     1324
     1325   icalparameter_set_partstat((icalparameter*) impl,v);
     1326   if (icalerrno != ICAL_NO_ERROR) {
     1327      icalparameter_free((icalparameter*) impl);
     1328      return 0;
     1329   }
     1330
     1331   return (icalparameter*) impl;
     1332}
     1333
     1334icalparameter_partstat icalparameter_get_partstat(const icalparameter* param)
     1335{
     1336   icalerror_clear_errno();
     1337icalerror_check_arg( (param!=0), "param");
     1338     if (param->string != 0){
     1339        return ICAL_PARTSTAT_X;
     1340        }
     1341
     1342return (icalparameter_partstat)(param->data);
     1343}
     1344
     1345void icalparameter_set_partstat(icalparameter* param, icalparameter_partstat v)
     1346{
     1347   icalerror_check_arg_rv(v >= ICAL_PARTSTAT_X,"v");
     1348    icalerror_check_arg_rv(v < ICAL_PARTSTAT_NONE,"v");
     1349   icalerror_check_arg_rv( (param!=0), "param");
     1350   icalerror_clear_errno();
     1351   
     1352   ((struct icalparameter_impl*)param)->data = (int)v;
     1353}
     1354
     1355/* ROLE */
     1356icalparameter* icalparameter_new_role(icalparameter_role v)
     1357{
     1358   struct icalparameter_impl *impl;
     1359   icalerror_clear_errno();
     1360   icalerror_check_arg_rz(v >= ICAL_ROLE_X,"v");
     1361    icalerror_check_arg_rz(v < ICAL_ROLE_NONE,"v");
     1362   impl = icalparameter_new_impl(ICAL_ROLE_PARAMETER);
     1363   if (impl == 0) {
     1364      return 0;
     1365   }
     1366
     1367   icalparameter_set_role((icalparameter*) impl,v);
     1368   if (icalerrno != ICAL_NO_ERROR) {
     1369      icalparameter_free((icalparameter*) impl);
     1370      return 0;
     1371   }
     1372
     1373   return (icalparameter*) impl;
     1374}
     1375
     1376icalparameter_role icalparameter_get_role(const icalparameter* param)
     1377{
     1378   icalerror_clear_errno();
     1379icalerror_check_arg( (param!=0), "param");
     1380     if (param->string != 0){
     1381        return ICAL_ROLE_X;
     1382        }
     1383
     1384return (icalparameter_role)(param->data);
     1385}
     1386
     1387void icalparameter_set_role(icalparameter* param, icalparameter_role v)
     1388{
     1389   icalerror_check_arg_rv(v >= ICAL_ROLE_X,"v");
     1390    icalerror_check_arg_rv(v < ICAL_ROLE_NONE,"v");
     1391   icalerror_check_arg_rv( (param!=0), "param");
     1392   icalerror_clear_errno();
     1393   
     1394   ((struct icalparameter_impl*)param)->data = (int)v;
     1395}
     1396
     1397
     1398const char* icalparameter_kind_to_string(icalparameter_kind kind)
     1399{
     1400    int i;
     1401
     1402    for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) {
     1403        if (parameter_map[i].kind == kind) {
     1404            return parameter_map[i].name;
     1405        }
     1406    }
     1407
     1408    return 0;
     1409
     1410}
     1411
     1412icalparameter_kind icalparameter_string_to_kind(const char* string)
     1413{
     1414    int i;
     1415
     1416    if (string ==0 ) {
     1417        return ICAL_NO_PARAMETER;
     1418    }
     1419
     1420    for (i=0; parameter_map[i].kind  != ICAL_NO_PARAMETER; i++) {
     1421
     1422        if (strcasecmp(parameter_map[i].name, string) == 0) {
     1423            return parameter_map[i].kind;
     1424        }
     1425    }
     1426
     1427    if(strncmp(string,"X-",2)==0){
     1428        return ICAL_X_PARAMETER;
     1429    }
     1430
     1431    return ICAL_NO_PARAMETER;
     1432}
     1433
     1434
     1435icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value)
     1436{
     1437    int i;
     1438
     1439    for (i=0; value_kind_map[i].kind  != ICAL_NO_VALUE; i++) {
     1440
     1441        if (value_kind_map[i].value == value) {
     1442            return value_kind_map[i].kind;
     1443        }
     1444    }
     1445
     1446    return ICAL_NO_VALUE;
     1447}
     1448
     1449
     1450const char* icalparameter_enum_to_string(int e)
     1451{
     1452    int i;
     1453
     1454    icalerror_check_arg_rz(e >= ICALPARAMETER_FIRST_ENUM,"e");
     1455    icalerror_check_arg_rz(e <= ICALPARAMETER_LAST_ENUM,"e");
     1456
     1457    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
     1458        if(e == icalparameter_map[i].enumeration){
     1459            return icalparameter_map[i].str;
     1460        }
     1461    }
     1462
     1463    return 0;
     1464}
     1465
     1466int icalparameter_string_to_enum(const char* str)
     1467{
     1468    int i;
     1469
     1470    icalerror_check_arg_rz(str != 0,"str");
     1471
     1472    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
     1473        if(strcasecmp(str,icalparameter_map[i].str) == 0) {
     1474            return icalparameter_map[i].enumeration;
     1475        }
     1476    }
     1477
     1478    return 0;
     1479}
     1480
     1481icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val)
     1482{
     1483
     1484    struct icalparameter_impl* param=0;
     1485    int found_kind = 0;
     1486    int i;
     1487
     1488    icalerror_check_arg_rz((val!=0),"val");
     1489
     1490    /* Search through the parameter map to find a matching kind */
     1491
     1492    param = icalparameter_new_impl(kind);
     1493    if (!param)
     1494        return 0;
     1495
     1496    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
     1497        if(kind == icalparameter_map[i].kind) {
     1498            found_kind = 1;
     1499            if(strcasecmp(val,icalparameter_map[i].str) == 0) {
     1500
     1501                param->data = (int)icalparameter_map[i].enumeration;
     1502                return param;
     1503            }
     1504        }
     1505    }
     1506   
     1507    if(found_kind == 1){
     1508        /* The kind was in the parameter map, but the string did not
     1509           match, so assume that it is an alternate value, like an
     1510           X-value.*/
     1511       
     1512        icalparameter_set_xvalue(param, val);
     1513
     1514    } else {
     1515 
     1516        /* If the kind was not found, then it must be a string type */
     1517       
     1518        ((struct icalparameter_impl*)param)->string = icalmemory_strdup(val);
     1519
     1520    }
     1521
     1522   return param;
     1523}
     1524
     1525
     1526
     1527
     1528/* Everything below this line is machine generated. Do not edit. */
  • src/libical/icalderivedparameter.h

    diff -Nurb libical-0.42.orig/src/libical/icalderivedparameter.h libical-0.42/src/libical/icalderivedparameter.h
    old new  
     1/* -*- Mode: C -*- */
     2/*======================================================================
     3  FILE: icalparam.h
     4  CREATOR: eric 20 March 1999
     5
     6
     7  $Id: icalderivedparameter.h.in,v 1.4 2007-04-30 13:57:48 artcancro Exp $
     8  $Locker:  $
     9
     10 
     11
     12 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     13
     14 This program is free software; you can redistribute it and/or modify
     15 it under the terms of either:
     16
     17    The LGPL as published by the Free Software Foundation, version
     18    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     19
     20  Or:
     21
     22    The Mozilla Public License Version 1.0. You may obtain a copy of
     23    the License at http://www.mozilla.org/MPL/
     24
     25  The original code is icalparam.h
     26
     27  ======================================================================*/
     28
     29#ifndef ICALDERIVEDPARAMETER_H
     30#define ICALDERIVEDPARAMETER_H
     31
     32
     33typedef struct icalparameter_impl icalparameter;
     34
     35const char* icalparameter_enum_to_string(int e);
     36int icalparameter_string_to_enum(const char* str);
     37
     38typedef enum icalparameter_kind {
     39    ICAL_ANY_PARAMETER = 0,
     40    ICAL_ACTIONPARAM_PARAMETER,
     41    ICAL_ALTREP_PARAMETER,
     42    ICAL_CHARSET_PARAMETER,
     43    ICAL_CN_PARAMETER,
     44    ICAL_CUTYPE_PARAMETER,
     45    ICAL_DELEGATEDFROM_PARAMETER,
     46    ICAL_DELEGATEDTO_PARAMETER,
     47    ICAL_DIR_PARAMETER,
     48    ICAL_ENABLE_PARAMETER,
     49    ICAL_ENCODING_PARAMETER,
     50    ICAL_FBTYPE_PARAMETER,
     51    ICAL_FMTTYPE_PARAMETER,
     52    ICAL_ID_PARAMETER,
     53    ICAL_LANGUAGE_PARAMETER,
     54    ICAL_LATENCY_PARAMETER,
     55    ICAL_LOCAL_PARAMETER,
     56    ICAL_LOCALIZE_PARAMETER,
     57    ICAL_MEMBER_PARAMETER,
     58    ICAL_OPTIONS_PARAMETER,
     59    ICAL_PARTSTAT_PARAMETER,
     60    ICAL_RANGE_PARAMETER,
     61    ICAL_RELATED_PARAMETER,
     62    ICAL_RELTYPE_PARAMETER,
     63    ICAL_ROLE_PARAMETER,
     64    ICAL_RSVP_PARAMETER,
     65    ICAL_SENTBY_PARAMETER,
     66    ICAL_TZID_PARAMETER,
     67    ICAL_VALUE_PARAMETER,
     68    ICAL_X_PARAMETER,
     69    ICAL_XLICCOMPARETYPE_PARAMETER,
     70    ICAL_XLICERRORTYPE_PARAMETER,
     71    ICAL_NO_PARAMETER
     72} icalparameter_kind;
     73
     74#define ICALPARAMETER_FIRST_ENUM 20000
     75
     76typedef enum icalparameter_action {
     77    ICAL_ACTIONPARAM_X = 20000,
     78    ICAL_ACTIONPARAM_ASK = 20001,
     79    ICAL_ACTIONPARAM_ABORT = 20002,
     80    ICAL_ACTIONPARAM_NONE = 20003
     81} icalparameter_action;
     82
     83typedef enum icalparameter_cutype {
     84    ICAL_CUTYPE_X = 20004,
     85    ICAL_CUTYPE_INDIVIDUAL = 20005,
     86    ICAL_CUTYPE_GROUP = 20006,
     87    ICAL_CUTYPE_RESOURCE = 20007,
     88    ICAL_CUTYPE_ROOM = 20008,
     89    ICAL_CUTYPE_UNKNOWN = 20009,
     90    ICAL_CUTYPE_NONE = 20010
     91} icalparameter_cutype;
     92
     93typedef enum icalparameter_enable {
     94    ICAL_ENABLE_X = 20011,
     95    ICAL_ENABLE_TRUE = 20012,
     96    ICAL_ENABLE_FALSE = 20013,
     97    ICAL_ENABLE_NONE = 20014
     98} icalparameter_enable;
     99
     100typedef enum icalparameter_encoding {
     101    ICAL_ENCODING_X = 20015,
     102    ICAL_ENCODING_8BIT = 20016,
     103    ICAL_ENCODING_BASE64 = 20017,
     104    ICAL_ENCODING_NONE = 20018
     105} icalparameter_encoding;
     106
     107typedef enum icalparameter_fbtype {
     108    ICAL_FBTYPE_X = 20019,
     109    ICAL_FBTYPE_FREE = 20020,
     110    ICAL_FBTYPE_BUSY = 20021,
     111    ICAL_FBTYPE_BUSYUNAVAILABLE = 20022,
     112    ICAL_FBTYPE_BUSYTENTATIVE = 20023,
     113    ICAL_FBTYPE_NONE = 20024
     114} icalparameter_fbtype;
     115
     116typedef enum icalparameter_local {
     117    ICAL_LOCAL_X = 20025,
     118    ICAL_LOCAL_TRUE = 20026,
     119    ICAL_LOCAL_FALSE = 20027,
     120    ICAL_LOCAL_NONE = 20028
     121} icalparameter_local;
     122
     123typedef enum icalparameter_partstat {
     124    ICAL_PARTSTAT_X = 20029,
     125    ICAL_PARTSTAT_NEEDSACTION = 20030,
     126    ICAL_PARTSTAT_ACCEPTED = 20031,
     127    ICAL_PARTSTAT_DECLINED = 20032,
     128    ICAL_PARTSTAT_TENTATIVE = 20033,
     129    ICAL_PARTSTAT_DELEGATED = 20034,
     130    ICAL_PARTSTAT_COMPLETED = 20035,
     131    ICAL_PARTSTAT_INPROCESS = 20036,
     132    ICAL_PARTSTAT_NONE = 20037
     133} icalparameter_partstat;
     134
     135typedef enum icalparameter_range {
     136    ICAL_RANGE_X = 20038,
     137    ICAL_RANGE_THISANDPRIOR = 20039,
     138    ICAL_RANGE_THISANDFUTURE = 20040,
     139    ICAL_RANGE_NONE = 20041
     140} icalparameter_range;
     141
     142typedef enum icalparameter_related {
     143    ICAL_RELATED_X = 20042,
     144    ICAL_RELATED_START = 20043,
     145    ICAL_RELATED_END = 20044,
     146    ICAL_RELATED_NONE = 20045
     147} icalparameter_related;
     148
     149typedef enum icalparameter_reltype {
     150    ICAL_RELTYPE_X = 20046,
     151    ICAL_RELTYPE_PARENT = 20047,
     152    ICAL_RELTYPE_CHILD = 20048,
     153    ICAL_RELTYPE_SIBLING = 20049,
     154    ICAL_RELTYPE_NONE = 20050
     155} icalparameter_reltype;
     156
     157typedef enum icalparameter_role {
     158    ICAL_ROLE_X = 20051,
     159    ICAL_ROLE_CHAIR = 20052,
     160    ICAL_ROLE_REQPARTICIPANT = 20053,
     161    ICAL_ROLE_OPTPARTICIPANT = 20054,
     162    ICAL_ROLE_NONPARTICIPANT = 20055,
     163    ICAL_ROLE_NONE = 20056
     164} icalparameter_role;
     165
     166typedef enum icalparameter_rsvp {
     167    ICAL_RSVP_X = 20057,
     168    ICAL_RSVP_TRUE = 20058,
     169    ICAL_RSVP_FALSE = 20059,
     170    ICAL_RSVP_NONE = 20060
     171} icalparameter_rsvp;
     172
     173typedef enum icalparameter_value {
     174    ICAL_VALUE_X = 20061,
     175    ICAL_VALUE_BINARY = 20062,
     176    ICAL_VALUE_BOOLEAN = 20063,
     177    ICAL_VALUE_DATE = 20064,
     178    ICAL_VALUE_DURATION = 20065,
     179    ICAL_VALUE_FLOAT = 20066,
     180    ICAL_VALUE_INTEGER = 20067,
     181    ICAL_VALUE_PERIOD = 20068,
     182    ICAL_VALUE_RECUR = 20069,
     183    ICAL_VALUE_TEXT = 20070,
     184    ICAL_VALUE_URI = 20071,
     185    ICAL_VALUE_ERROR = 20072,
     186    ICAL_VALUE_DATETIME = 20073,
     187    ICAL_VALUE_UTCOFFSET = 20074,
     188    ICAL_VALUE_CALADDRESS = 20075,
     189    ICAL_VALUE_NONE = 20076
     190} icalparameter_value;
     191
     192typedef enum icalparameter_xliccomparetype {
     193    ICAL_XLICCOMPARETYPE_X = 20077,
     194    ICAL_XLICCOMPARETYPE_EQUAL = 20078,
     195    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20079,
     196    ICAL_XLICCOMPARETYPE_LESS = 20080,
     197    ICAL_XLICCOMPARETYPE_GREATER = 20081,
     198    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20082,
     199    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20083,
     200    ICAL_XLICCOMPARETYPE_REGEX = 20084,
     201    ICAL_XLICCOMPARETYPE_ISNULL = 20085,
     202    ICAL_XLICCOMPARETYPE_ISNOTNULL = 20086,
     203    ICAL_XLICCOMPARETYPE_NONE = 20087
     204} icalparameter_xliccomparetype;
     205
     206typedef enum icalparameter_xlicerrortype {
     207    ICAL_XLICERRORTYPE_X = 20088,
     208    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20089,
     209    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20090,
     210    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20091,
     211    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20092,
     212    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20093,
     213    ICAL_XLICERRORTYPE_INVALIDITIP = 20094,
     214    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20095,
     215    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20096,
     216    ICAL_XLICERRORTYPE_VCALPROPPARSEERROR = 20097,
     217    ICAL_XLICERRORTYPE_NONE = 20098
     218} icalparameter_xlicerrortype;
     219
     220#define ICALPARAMETER_LAST_ENUM 20099
     221
     222/* ID */
     223icalparameter* icalparameter_new_id(const char* v);
     224const char* icalparameter_get_id(const icalparameter* value);
     225void icalparameter_set_id(icalparameter* value, const char* v);
     226
     227/* LOCALIZE */
     228icalparameter* icalparameter_new_localize(const char* v);
     229const char* icalparameter_get_localize(const icalparameter* value);
     230void icalparameter_set_localize(icalparameter* value, const char* v);
     231
     232/* LANGUAGE */
     233icalparameter* icalparameter_new_language(const char* v);
     234const char* icalparameter_get_language(const icalparameter* value);
     235void icalparameter_set_language(icalparameter* value, const char* v);
     236
     237/* DIR */
     238icalparameter* icalparameter_new_dir(const char* v);
     239const char* icalparameter_get_dir(const icalparameter* value);
     240void icalparameter_set_dir(icalparameter* value, const char* v);
     241
     242/* RELTYPE */
     243icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
     244icalparameter_reltype icalparameter_get_reltype(const icalparameter* value);
     245void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
     246
     247/* FMTTYPE */
     248icalparameter* icalparameter_new_fmttype(const char* v);
     249const char* icalparameter_get_fmttype(const icalparameter* value);
     250void icalparameter_set_fmttype(icalparameter* value, const char* v);
     251
     252/* OPTIONS */
     253icalparameter* icalparameter_new_options(const char* v);
     254const char* icalparameter_get_options(const icalparameter* value);
     255void icalparameter_set_options(icalparameter* value, const char* v);
     256
     257/* TZID */
     258icalparameter* icalparameter_new_tzid(const char* v);
     259const char* icalparameter_get_tzid(const icalparameter* value);
     260void icalparameter_set_tzid(icalparameter* value, const char* v);
     261
     262/* ENABLE */
     263icalparameter* icalparameter_new_enable(icalparameter_enable v);
     264icalparameter_enable icalparameter_get_enable(const icalparameter* value);
     265void icalparameter_set_enable(icalparameter* value, icalparameter_enable v);
     266
     267/* RANGE */
     268icalparameter* icalparameter_new_range(icalparameter_range v);
     269icalparameter_range icalparameter_get_range(const icalparameter* value);
     270void icalparameter_set_range(icalparameter* value, icalparameter_range v);
     271
     272/* LATENCY */
     273icalparameter* icalparameter_new_latency(const char* v);
     274const char* icalparameter_get_latency(const icalparameter* value);
     275void icalparameter_set_latency(icalparameter* value, const char* v);
     276
     277/* DELEGATED-TO */
     278icalparameter* icalparameter_new_delegatedto(const char* v);
     279const char* icalparameter_get_delegatedto(const icalparameter* value);
     280void icalparameter_set_delegatedto(icalparameter* value, const char* v);
     281
     282/* LOCAL */
     283icalparameter* icalparameter_new_local(icalparameter_local v);
     284icalparameter_local icalparameter_get_local(const icalparameter* value);
     285void icalparameter_set_local(icalparameter* value, icalparameter_local v);
     286
     287/* CN */
     288icalparameter* icalparameter_new_cn(const char* v);
     289const char* icalparameter_get_cn(const icalparameter* value);
     290void icalparameter_set_cn(icalparameter* value, const char* v);
     291
     292/* CHARSET */
     293icalparameter* icalparameter_new_charset(const char* v);
     294const char* icalparameter_get_charset(const icalparameter* value);
     295void icalparameter_set_charset(icalparameter* value, const char* v);
     296
     297/* ACTIONPARAM */
     298icalparameter* icalparameter_new_actionparam(icalparameter_action v);
     299icalparameter_action icalparameter_get_actionparam(const icalparameter* value);
     300void icalparameter_set_actionparam(icalparameter* value, icalparameter_action v);
     301
     302/* VALUE */
     303icalparameter* icalparameter_new_value(icalparameter_value v);
     304icalparameter_value icalparameter_get_value(const icalparameter* value);
     305void icalparameter_set_value(icalparameter* value, icalparameter_value v);
     306
     307/* X-LIC-COMPARETYPE */
     308icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
     309icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* value);
     310void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
     311
     312/* X */
     313icalparameter* icalparameter_new_x(const char* v);
     314const char* icalparameter_get_x(const icalparameter* value);
     315void icalparameter_set_x(icalparameter* value, const char* v);
     316
     317/* MEMBER */
     318icalparameter* icalparameter_new_member(const char* v);
     319const char* icalparameter_get_member(const icalparameter* value);
     320void icalparameter_set_member(icalparameter* value, const char* v);
     321
     322/* SENT-BY */
     323icalparameter* icalparameter_new_sentby(const char* v);
     324const char* icalparameter_get_sentby(const icalparameter* value);
     325void icalparameter_set_sentby(icalparameter* value, const char* v);
     326
     327/* CUTYPE */
     328icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
     329icalparameter_cutype icalparameter_get_cutype(const icalparameter* value);
     330void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
     331
     332/* RSVP */
     333icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
     334icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* value);
     335void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
     336
     337/* RELATED */
     338icalparameter* icalparameter_new_related(icalparameter_related v);
     339icalparameter_related icalparameter_get_related(const icalparameter* value);
     340void icalparameter_set_related(icalparameter* value, icalparameter_related v);
     341
     342/* X-LIC-ERRORTYPE */
     343icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
     344icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* value);
     345void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
     346
     347/* ENCODING */
     348icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
     349icalparameter_encoding icalparameter_get_encoding(const icalparameter* value);
     350void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
     351
     352/* ALTREP */
     353icalparameter* icalparameter_new_altrep(const char* v);
     354const char* icalparameter_get_altrep(const icalparameter* value);
     355void icalparameter_set_altrep(icalparameter* value, const char* v);
     356
     357/* DELEGATED-FROM */
     358icalparameter* icalparameter_new_delegatedfrom(const char* v);
     359const char* icalparameter_get_delegatedfrom(const icalparameter* value);
     360void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
     361
     362/* FBTYPE */
     363icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
     364icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* value);
     365void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
     366
     367/* PARTSTAT */
     368icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
     369icalparameter_partstat icalparameter_get_partstat(const icalparameter* value);
     370void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
     371
     372/* ROLE */
     373icalparameter* icalparameter_new_role(icalparameter_role v);
     374icalparameter_role icalparameter_get_role(const icalparameter* value);
     375void icalparameter_set_role(icalparameter* value, icalparameter_role v);
     376
     377#endif /*ICALPARAMETER_H*/
     378
     379/* Everything below this line is machine generated. Do not edit. */
  • src/libical/icalderivedproperty.c

    diff -Nurb libical-0.42.orig/src/libical/icalderivedproperty.c libical-0.42/src/libical/icalderivedproperty.c
    old new  
     1/* -*- Mode: C -*- */
     2
     3/*======================================================================
     4  FILE: icalderivedproperty.c
     5  CREATOR: eric 15 Feb 2001
     6 
     7  $Id: icalderivedproperty.c.in,v 1.15 2008-01-28 22:34:37 artcancro Exp $
     8
     9
     10 (C) COPYRIGHT 2000, Eric Busboom, 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 icalproperty.c
     24
     25======================================================================*/
     26
     27#ifdef HAVE_CONFIG_H
     28#include <config.h>
     29#endif
     30
     31#include "icalproperty.h"
     32#include "icalcomponent.h"
     33#include "pvl.h"
     34#include "icalenums.h"
     35#include "icalerror.h"
     36#include "icalmemory.h"
     37#include "icalparser.h"
     38#include "icaltimezone.h"
     39
     40#include <string.h> /* For icalmemory_strdup, rindex */
     41#include <assert.h>
     42#include <stdlib.h>
     43#include <errno.h>
     44#include <stdio.h> /* for printf */
     45#include <stdarg.h> /* for va_list, va_start, etc. */
     46                                               
     47#ifdef WIN32
     48#define strcasecmp      stricmp
     49#endif
     50
     51struct icalproperty_impl*
     52icalproperty_new_impl (icalproperty_kind kind);
     53void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
     54
     55/* This map associates the property kinds with the string
     56   representation of the property name and the kind of VALUE that the
     57   property uses as a default */
     58
     59struct  icalproperty_map {
     60        icalproperty_kind kind;
     61        const char *name;
     62        icalvalue_kind value;
     63
     64};
     65
     66/* This map associates the property enumerations with the king of
     67   property that they are used in and the string representation of the
     68   enumeration */
     69
     70struct icalproperty_enum_map {
     71    icalproperty_kind prop;
     72    int prop_enum;
     73    const char* str;
     74};
     75
     76
     77static const struct icalproperty_map property_map[101] = {
     78{ICAL_ACTION_PROPERTY,"ACTION",ICAL_ACTION_VALUE},
     79{ICAL_ALLOWCONFLICT_PROPERTY,"ALLOW-CONFLICT",ICAL_TEXT_VALUE},
     80{ICAL_ANY_PROPERTY,"ANY",ICAL_NO_VALUE},
     81{ICAL_ATTACH_PROPERTY,"ATTACH",ICAL_ATTACH_VALUE},
     82{ICAL_ATTENDEE_PROPERTY,"ATTENDEE",ICAL_CALADDRESS_VALUE},
     83{ICAL_CALID_PROPERTY,"CALID",ICAL_TEXT_VALUE},
     84{ICAL_CALMASTER_PROPERTY,"CALMASTER",ICAL_TEXT_VALUE},
     85{ICAL_CALSCALE_PROPERTY,"CALSCALE",ICAL_TEXT_VALUE},
     86{ICAL_CAPVERSION_PROPERTY,"CAP-VERSION",ICAL_TEXT_VALUE},
     87{ICAL_CARLEVEL_PROPERTY,"CAR-LEVEL",ICAL_CARLEVEL_VALUE},
     88{ICAL_CARID_PROPERTY,"CARID",ICAL_TEXT_VALUE},
     89{ICAL_CATEGORIES_PROPERTY,"CATEGORIES",ICAL_TEXT_VALUE},
     90{ICAL_CLASS_PROPERTY,"CLASS",ICAL_CLASS_VALUE},
     91{ICAL_CMD_PROPERTY,"CMD",ICAL_CMD_VALUE},
     92{ICAL_COMMENT_PROPERTY,"COMMENT",ICAL_TEXT_VALUE},
     93{ICAL_COMPLETED_PROPERTY,"COMPLETED",ICAL_DATETIME_VALUE},
     94{ICAL_COMPONENTS_PROPERTY,"COMPONENTS",ICAL_TEXT_VALUE},
     95{ICAL_CONTACT_PROPERTY,"CONTACT",ICAL_TEXT_VALUE},
     96{ICAL_CREATED_PROPERTY,"CREATED",ICAL_DATETIME_VALUE},
     97{ICAL_CSID_PROPERTY,"CSID",ICAL_URI_VALUE},
     98{ICAL_DATEMAX_PROPERTY,"DATE-MAX",ICAL_DATETIME_VALUE},
     99{ICAL_DATEMIN_PROPERTY,"DATE-MIN",ICAL_DATETIME_VALUE},
     100{ICAL_DECREED_PROPERTY,"DECREED",ICAL_TEXT_VALUE},
     101{ICAL_DEFAULTCHARSET_PROPERTY,"DEFAULT-CHARSET",ICAL_TEXT_VALUE},
     102{ICAL_DEFAULTLOCALE_PROPERTY,"DEFAULT-LOCALE",ICAL_TEXT_VALUE},
     103{ICAL_DEFAULTTZID_PROPERTY,"DEFAULT-TZID",ICAL_TEXT_VALUE},
     104{ICAL_DEFAULTVCARS_PROPERTY,"DEFAULT-VCARS",ICAL_TEXT_VALUE},
     105{ICAL_DENY_PROPERTY,"DENY",ICAL_TEXT_VALUE},
     106{ICAL_DESCRIPTION_PROPERTY,"DESCRIPTION",ICAL_TEXT_VALUE},
     107{ICAL_DTEND_PROPERTY,"DTEND",ICAL_DATETIME_VALUE},
     108{ICAL_DTSTAMP_PROPERTY,"DTSTAMP",ICAL_DATETIME_VALUE},
     109{ICAL_DTSTART_PROPERTY,"DTSTART",ICAL_DATETIME_VALUE},
     110{ICAL_DUE_PROPERTY,"DUE",ICAL_DATETIME_VALUE},
     111{ICAL_DURATION_PROPERTY,"DURATION",ICAL_DURATION_VALUE},
     112{ICAL_EXDATE_PROPERTY,"EXDATE",ICAL_DATETIME_VALUE},
     113{ICAL_EXPAND_PROPERTY,"EXPAND",ICAL_INTEGER_VALUE},
     114{ICAL_EXRULE_PROPERTY,"EXRULE",ICAL_RECUR_VALUE},
     115{ICAL_FREEBUSY_PROPERTY,"FREEBUSY",ICAL_PERIOD_VALUE},
     116{ICAL_GEO_PROPERTY,"GEO",ICAL_GEO_VALUE},
     117{ICAL_GRANT_PROPERTY,"GRANT",ICAL_TEXT_VALUE},
     118{ICAL_ITIPVERSION_PROPERTY,"ITIP-VERSION",ICAL_TEXT_VALUE},
     119{ICAL_LASTMODIFIED_PROPERTY,"LAST-MODIFIED",ICAL_DATETIME_VALUE},
     120{ICAL_LOCATION_PROPERTY,"LOCATION",ICAL_TEXT_VALUE},
     121{ICAL_MAXCOMPONENTSIZE_PROPERTY,"MAX-COMPONENT-SIZE",ICAL_INTEGER_VALUE},
     122{ICAL_MAXDATE_PROPERTY,"MAXDATE",ICAL_DATETIME_VALUE},
     123{ICAL_MAXRESULTS_PROPERTY,"MAXRESULTS",ICAL_INTEGER_VALUE},
     124{ICAL_MAXRESULTSSIZE_PROPERTY,"MAXRESULTSSIZE",ICAL_INTEGER_VALUE},
     125{ICAL_METHOD_PROPERTY,"METHOD",ICAL_METHOD_VALUE},
     126{ICAL_MINDATE_PROPERTY,"MINDATE",ICAL_DATETIME_VALUE},
     127{ICAL_MULTIPART_PROPERTY,"MULTIPART",ICAL_TEXT_VALUE},
     128{ICAL_NAME_PROPERTY,"NAME",ICAL_TEXT_VALUE},
     129{ICAL_ORGANIZER_PROPERTY,"ORGANIZER",ICAL_CALADDRESS_VALUE},
     130{ICAL_OWNER_PROPERTY,"OWNER",ICAL_TEXT_VALUE},
     131{ICAL_PERCENTCOMPLETE_PROPERTY,"PERCENT-COMPLETE",ICAL_INTEGER_VALUE},
     132{ICAL_PERMISSION_PROPERTY,"PERMISSION",ICAL_TEXT_VALUE},
     133{ICAL_PRIORITY_PROPERTY,"PRIORITY",ICAL_INTEGER_VALUE},
     134{ICAL_PRODID_PROPERTY,"PRODID",ICAL_TEXT_VALUE},
     135{ICAL_QUERY_PROPERTY,"QUERY",ICAL_QUERY_VALUE},
     136{ICAL_QUERYLEVEL_PROPERTY,"QUERY-LEVEL",ICAL_QUERYLEVEL_VALUE},
     137{ICAL_QUERYID_PROPERTY,"QUERYID",ICAL_TEXT_VALUE},
     138{ICAL_QUERYNAME_PROPERTY,"QUERYNAME",ICAL_TEXT_VALUE},
     139{ICAL_RDATE_PROPERTY,"RDATE",ICAL_DATETIMEPERIOD_VALUE},
     140{ICAL_RECURACCEPTED_PROPERTY,"RECUR-ACCEPTED",ICAL_TEXT_VALUE},
     141{ICAL_RECUREXPAND_PROPERTY,"RECUR-EXPAND",ICAL_TEXT_VALUE},
     142{ICAL_RECURLIMIT_PROPERTY,"RECUR-LIMIT",ICAL_TEXT_VALUE},
     143{ICAL_RECURRENCEID_PROPERTY,"RECURRENCE-ID",ICAL_DATETIME_VALUE},
     144{ICAL_RELATEDTO_PROPERTY,"RELATED-TO",ICAL_TEXT_VALUE},
     145{ICAL_RELCALID_PROPERTY,"RELCALID",ICAL_TEXT_VALUE},
     146{ICAL_REPEAT_PROPERTY,"REPEAT",ICAL_INTEGER_VALUE},
     147{ICAL_REQUESTSTATUS_PROPERTY,"REQUEST-STATUS",ICAL_REQUESTSTATUS_VALUE},
     148{ICAL_RESOURCES_PROPERTY,"RESOURCES",ICAL_TEXT_VALUE},
     149{ICAL_RESTRICTION_PROPERTY,"RESTRICTION",ICAL_QUERY_VALUE},
     150{ICAL_RRULE_PROPERTY,"RRULE",ICAL_RECUR_VALUE},
     151{ICAL_SCOPE_PROPERTY,"SCOPE",ICAL_TEXT_VALUE},
     152{ICAL_SEQUENCE_PROPERTY,"SEQUENCE",ICAL_INTEGER_VALUE},
     153{ICAL_STATUS_PROPERTY,"STATUS",ICAL_STATUS_VALUE},
     154{ICAL_STORESEXPANDED_PROPERTY,"STORES-EXPANDED",ICAL_TEXT_VALUE},
     155{ICAL_SUMMARY_PROPERTY,"SUMMARY",ICAL_TEXT_VALUE},
     156{ICAL_TARGET_PROPERTY,"TARGET",ICAL_CALADDRESS_VALUE},
     157{ICAL_TRANSP_PROPERTY,"TRANSP",ICAL_TRANSP_VALUE},
     158{ICAL_TRIGGER_PROPERTY,"TRIGGER",ICAL_TRIGGER_VALUE},
     159{ICAL_TZID_PROPERTY,"TZID",ICAL_TEXT_VALUE},
     160{ICAL_TZNAME_PROPERTY,"TZNAME",ICAL_TEXT_VALUE},
     161{ICAL_TZOFFSETFROM_PROPERTY,"TZOFFSETFROM",ICAL_UTCOFFSET_VALUE},
     162{ICAL_TZOFFSETTO_PROPERTY,"TZOFFSETTO",ICAL_UTCOFFSET_VALUE},
     163{ICAL_TZURL_PROPERTY,"TZURL",ICAL_URI_VALUE},
     164{ICAL_UID_PROPERTY,"UID",ICAL_TEXT_VALUE},
     165{ICAL_URL_PROPERTY,"URL",ICAL_URI_VALUE},
     166{ICAL_VERSION_PROPERTY,"VERSION",ICAL_TEXT_VALUE},
     167{ICAL_X_PROPERTY,"X",ICAL_X_VALUE},
     168{ICAL_XLICCLASS_PROPERTY,"X-LIC-CLASS",ICAL_XLICCLASS_VALUE},
     169{ICAL_XLICCLUSTERCOUNT_PROPERTY,"X-LIC-CLUSTERCOUNT",ICAL_STRING_VALUE},
     170{ICAL_XLICERROR_PROPERTY,"X-LIC-ERROR",ICAL_TEXT_VALUE},
     171{ICAL_XLICMIMECHARSET_PROPERTY,"X-LIC-MIMECHARSET",ICAL_STRING_VALUE},
     172{ICAL_XLICMIMECID_PROPERTY,"X-LIC-MIMECID",ICAL_STRING_VALUE},
     173{ICAL_XLICMIMECONTENTTYPE_PROPERTY,"X-LIC-MIMECONTENTTYPE",ICAL_STRING_VALUE},
     174{ICAL_XLICMIMEENCODING_PROPERTY,"X-LIC-MIMEENCODING",ICAL_STRING_VALUE},
     175{ICAL_XLICMIMEFILENAME_PROPERTY,"X-LIC-MIMEFILENAME",ICAL_STRING_VALUE},
     176{ICAL_XLICMIMEOPTINFO_PROPERTY,"X-LIC-MIMEOPTINFO",ICAL_STRING_VALUE},
     177{ICAL_NO_PROPERTY,"",ICAL_NO_VALUE}};
     178
     179static const struct icalproperty_enum_map enum_map[98] = {
     180    {ICAL_ACTION_PROPERTY,ICAL_ACTION_X,"" }, /*10000*/
     181    {ICAL_ACTION_PROPERTY,ICAL_ACTION_AUDIO,"AUDIO" }, /*10001*/
     182    {ICAL_ACTION_PROPERTY,ICAL_ACTION_DISPLAY,"DISPLAY" }, /*10002*/
     183    {ICAL_ACTION_PROPERTY,ICAL_ACTION_EMAIL,"EMAIL" }, /*10003*/
     184    {ICAL_ACTION_PROPERTY,ICAL_ACTION_PROCEDURE,"PROCEDURE" }, /*10004*/
     185    {ICAL_ACTION_PROPERTY,ICAL_ACTION_NONE,"" }, /*10005*/
     186    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_X,"" }, /*10006*/
     187    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARNONE,"CAR-NONE" }, /*10007*/
     188    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARMIN,"CAR-MIN" }, /*10008*/
     189    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_CARFULL1,"CAR-FULL-1" }, /*10009*/
     190    {ICAL_CARLEVEL_PROPERTY,ICAL_CARLEVEL_NONE,"" }, /*10010*/
     191    {ICAL_CLASS_PROPERTY,ICAL_CLASS_X,"" }, /*10011*/
     192    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PUBLIC,"PUBLIC" }, /*10012*/
     193    {ICAL_CLASS_PROPERTY,ICAL_CLASS_PRIVATE,"PRIVATE" }, /*10013*/
     194    {ICAL_CLASS_PROPERTY,ICAL_CLASS_CONFIDENTIAL,"CONFIDENTIAL" }, /*10014*/
     195    {ICAL_CLASS_PROPERTY,ICAL_CLASS_NONE,"" }, /*10015*/
     196    {ICAL_CMD_PROPERTY,ICAL_CMD_X,"" }, /*10016*/
     197    {ICAL_CMD_PROPERTY,ICAL_CMD_ABORT,"ABORT" }, /*10017*/
     198    {ICAL_CMD_PROPERTY,ICAL_CMD_CONTINUE,"CONTINUE" }, /*10018*/
     199    {ICAL_CMD_PROPERTY,ICAL_CMD_CREATE,"CREATE" }, /*10019*/
     200    {ICAL_CMD_PROPERTY,ICAL_CMD_DELETE,"DELETE" }, /*10020*/
     201    {ICAL_CMD_PROPERTY,ICAL_CMD_GENERATEUID,"GENERATE-UID" }, /*10021*/
     202    {ICAL_CMD_PROPERTY,ICAL_CMD_GETCAPABILITY,"GET-CAPABILITY" }, /*10022*/
     203    {ICAL_CMD_PROPERTY,ICAL_CMD_IDENTIFY,"IDENTIFY" }, /*10023*/
     204    {ICAL_CMD_PROPERTY,ICAL_CMD_MODIFY,"MODIFY" }, /*10024*/
     205    {ICAL_CMD_PROPERTY,ICAL_CMD_MOVE,"MOVE" }, /*10025*/
     206    {ICAL_CMD_PROPERTY,ICAL_CMD_REPLY,"REPLY" }, /*10026*/
     207    {ICAL_CMD_PROPERTY,ICAL_CMD_SEARCH,"SEARCH" }, /*10027*/
     208    {ICAL_CMD_PROPERTY,ICAL_CMD_SETLOCALE,"SET-LOCALE" }, /*10028*/
     209    {ICAL_CMD_PROPERTY,ICAL_CMD_NONE,"" }, /*10029*/
     210    {ICAL_METHOD_PROPERTY,ICAL_METHOD_X,"" }, /*10030*/
     211    {ICAL_METHOD_PROPERTY,ICAL_METHOD_PUBLISH,"PUBLISH" }, /*10031*/
     212    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REQUEST,"REQUEST" }, /*10032*/
     213    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REPLY,"REPLY" }, /*10033*/
     214    {ICAL_METHOD_PROPERTY,ICAL_METHOD_ADD,"ADD" }, /*10034*/
     215    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CANCEL,"CANCEL" }, /*10035*/
     216    {ICAL_METHOD_PROPERTY,ICAL_METHOD_REFRESH,"REFRESH" }, /*10036*/
     217    {ICAL_METHOD_PROPERTY,ICAL_METHOD_COUNTER,"COUNTER" }, /*10037*/
     218    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DECLINECOUNTER,"DECLINECOUNTER" }, /*10038*/
     219    {ICAL_METHOD_PROPERTY,ICAL_METHOD_CREATE,"CREATE" }, /*10039*/
     220    {ICAL_METHOD_PROPERTY,ICAL_METHOD_READ,"READ" }, /*10040*/
     221    {ICAL_METHOD_PROPERTY,ICAL_METHOD_RESPONSE,"RESPONSE" }, /*10041*/
     222    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MOVE,"MOVE" }, /*10042*/
     223    {ICAL_METHOD_PROPERTY,ICAL_METHOD_MODIFY,"MODIFY" }, /*10043*/
     224    {ICAL_METHOD_PROPERTY,ICAL_METHOD_GENERATEUID,"GENERATEUID" }, /*10044*/
     225    {ICAL_METHOD_PROPERTY,ICAL_METHOD_DELETE,"DELETE" }, /*10045*/
     226    {ICAL_METHOD_PROPERTY,ICAL_METHOD_NONE,"" }, /*10046*/
     227    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_X,"" }, /*10047*/
     228    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_CALQL1,"CAL-QL-1" }, /*10048*/
     229    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_CALQLNONE,"CAL-QL-NONE" }, /*10049*/
     230    {ICAL_QUERYLEVEL_PROPERTY,ICAL_QUERYLEVEL_NONE,"" }, /*10050*/
     231    {ICAL_STATUS_PROPERTY,ICAL_STATUS_X,"" }, /*10051*/
     232    {ICAL_STATUS_PROPERTY,ICAL_STATUS_TENTATIVE,"TENTATIVE" }, /*10052*/
     233    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CONFIRMED,"CONFIRMED" }, /*10053*/
     234    {ICAL_STATUS_PROPERTY,ICAL_STATUS_COMPLETED,"COMPLETED" }, /*10054*/
     235    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NEEDSACTION,"NEEDS-ACTION" }, /*10055*/
     236    {ICAL_STATUS_PROPERTY,ICAL_STATUS_CANCELLED,"CANCELLED" }, /*10056*/
     237    {ICAL_STATUS_PROPERTY,ICAL_STATUS_INPROCESS,"IN-PROCESS" }, /*10057*/
     238    {ICAL_STATUS_PROPERTY,ICAL_STATUS_DRAFT,"DRAFT" }, /*10058*/
     239    {ICAL_STATUS_PROPERTY,ICAL_STATUS_FINAL,"FINAL" }, /*10059*/
     240    {ICAL_STATUS_PROPERTY,ICAL_STATUS_NONE,"" }, /*10060*/
     241    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_X,"" }, /*10061*/
     242    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_OPAQUE,"OPAQUE" }, /*10062*/
     243    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_OPAQUENOCONFLICT,"OPAQUE-NOCONFLICT" }, /*10063*/
     244    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_TRANSPARENT,"TRANSPARENT" }, /*10064*/
     245    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_TRANSPARENTNOCONFLICT,"TRANSPARENT-NOCONFLICT" }, /*10065*/
     246    {ICAL_TRANSP_PROPERTY,ICAL_TRANSP_NONE,"" }, /*10066*/
     247    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_X,"" }, /*10067*/
     248    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHNEW,"PUBLISH-NEW" }, /*10068*/
     249    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHUPDATE,"PUBLISH-UPDATE" }, /*10069*/
     250    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_PUBLISHFREEBUSY,"PUBLISH-FREEBUSY" }, /*10070*/
     251    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTNEW,"REQUEST-NEW" }, /*10071*/
     252    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTUPDATE,"REQUEST-UPDATE" }, /*10072*/
     253    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTRESCHEDULE,"REQUEST-RESCHEDULE" }, /*10073*/
     254    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTDELEGATE,"REQUEST-DELEGATE" }, /*10074*/
     255    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTNEWORGANIZER,"REQUEST-NEW-ORGANIZER" }, /*10075*/
     256    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTFORWARD,"REQUEST-FORWARD" }, /*10076*/
     257    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTSTATUS,"REQUEST-STATUS" }, /*10077*/
     258    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REQUESTFREEBUSY,"REQUEST-FREEBUSY" }, /*10078*/
     259    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYACCEPT,"REPLY-ACCEPT" }, /*10079*/
     260    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYDECLINE,"REPLY-DECLINE" }, /*10080*/
     261    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYDELEGATE,"REPLY-DELEGATE" }, /*10081*/
     262    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYCRASHERACCEPT,"REPLY-CRASHER-ACCEPT" }, /*10082*/
     263    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REPLYCRASHERDECLINE,"REPLY-CRASHER-DECLINE" }, /*10083*/
     264    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_ADDINSTANCE,"ADD-INSTANCE" }, /*10084*/
     265    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELEVENT,"CANCEL-EVENT" }, /*10085*/
     266    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELINSTANCE,"CANCEL-INSTANCE" }, /*10086*/
     267    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_CANCELALL,"CANCEL-ALL" }, /*10087*/
     268    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_REFRESH,"REFRESH" }, /*10088*/
     269    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_COUNTER,"COUNTER" }, /*10089*/
     270    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_DECLINECOUNTER,"DECLINECOUNTER" }, /*10090*/
     271    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_MALFORMED,"MALFORMED" }, /*10091*/
     272    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_OBSOLETE,"OBSOLETE" }, /*10092*/
     273    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_MISSEQUENCED,"MISSEQUENCED" }, /*10093*/
     274    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_UNKNOWN,"UNKNOWN" }, /*10094*/
     275    {ICAL_XLICCLASS_PROPERTY,ICAL_XLICCLASS_NONE,"" }, /*10095*/
     276    {ICAL_NO_PROPERTY,0,""}
     277};
     278
     279icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...){
     280   va_list args;
     281   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);   
     282   icalproperty_set_action((icalproperty*)impl,v);
     283   va_start(args,v);
     284   icalproperty_add_parameters(impl, args);
     285   va_end(args);
     286   return (icalproperty*)impl;
     287}
     288
     289/* ACTION */
     290icalproperty* icalproperty_new_action(enum icalproperty_action v) {
     291   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ACTION_PROPERTY);   
     292   icalproperty_set_action((icalproperty*)impl,v);
     293   return (icalproperty*)impl;
     294}
     295
     296void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v){
     297   
     298    icalerror_check_arg_rv( (prop!=0),"prop");
     299    icalproperty_set_value(prop,icalvalue_new_action(v));
     300}
     301enum icalproperty_action icalproperty_get_action(const icalproperty* prop){
     302    icalerror_check_arg( (prop!=0),"prop");
     303    return icalvalue_get_action(icalproperty_get_value(prop));
     304}
     305icalproperty* icalproperty_vanew_allowconflict(const char* v, ...){
     306   va_list args;
     307   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ALLOWCONFLICT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     308
     309   icalproperty_set_allowconflict((icalproperty*)impl,v);
     310   va_start(args,v);
     311   icalproperty_add_parameters(impl, args);
     312   va_end(args);
     313   return (icalproperty*)impl;
     314}
     315
     316/* ALLOW-CONFLICT */
     317icalproperty* icalproperty_new_allowconflict(const char* v) {
     318   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ALLOWCONFLICT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     319
     320   icalproperty_set_allowconflict((icalproperty*)impl,v);
     321   return (icalproperty*)impl;
     322}
     323
     324void icalproperty_set_allowconflict(icalproperty* prop, const char* v){
     325    icalerror_check_arg_rv( (v!=0),"v");
     326
     327    icalerror_check_arg_rv( (prop!=0),"prop");
     328    icalproperty_set_value(prop,icalvalue_new_text(v));
     329}
     330const char* icalproperty_get_allowconflict(const icalproperty* prop){
     331    icalerror_check_arg( (prop!=0),"prop");
     332    return icalvalue_get_text(icalproperty_get_value(prop));
     333}
     334icalproperty* icalproperty_vanew_attach(icalattach * v, ...){
     335   va_list args;
     336   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     337
     338   icalproperty_set_attach((icalproperty*)impl,v);
     339   va_start(args,v);
     340   icalproperty_add_parameters(impl, args);
     341   va_end(args);
     342   return (icalproperty*)impl;
     343}
     344
     345/* ATTACH */
     346icalproperty* icalproperty_new_attach(icalattach * v) {
     347   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTACH_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     348
     349   icalproperty_set_attach((icalproperty*)impl,v);
     350   return (icalproperty*)impl;
     351}
     352
     353void icalproperty_set_attach(icalproperty* prop, icalattach * v){
     354    icalerror_check_arg_rv( (v!=0),"v");
     355
     356    icalerror_check_arg_rv( (prop!=0),"prop");
     357    icalproperty_set_value(prop,icalvalue_new_attach(v));
     358}
     359icalattach * icalproperty_get_attach(const icalproperty* prop){
     360    icalerror_check_arg( (prop!=0),"prop");
     361    return icalvalue_get_attach(icalproperty_get_value(prop));
     362}
     363icalproperty* icalproperty_vanew_attendee(const char* v, ...){
     364   va_list args;
     365   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     366
     367   icalproperty_set_attendee((icalproperty*)impl,v);
     368   va_start(args,v);
     369   icalproperty_add_parameters(impl, args);
     370   va_end(args);
     371   return (icalproperty*)impl;
     372}
     373
     374/* ATTENDEE */
     375icalproperty* icalproperty_new_attendee(const char* v) {
     376   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ATTENDEE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     377
     378   icalproperty_set_attendee((icalproperty*)impl,v);
     379   return (icalproperty*)impl;
     380}
     381
     382void icalproperty_set_attendee(icalproperty* prop, const char* v){
     383    icalerror_check_arg_rv( (v!=0),"v");
     384
     385    icalerror_check_arg_rv( (prop!=0),"prop");
     386    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
     387}
     388const char* icalproperty_get_attendee(const icalproperty* prop){
     389    icalerror_check_arg( (prop!=0),"prop");
     390    return icalvalue_get_caladdress(icalproperty_get_value(prop));
     391}
     392icalproperty* icalproperty_vanew_calid(const char* v, ...){
     393   va_list args;
     394   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     395
     396   icalproperty_set_calid((icalproperty*)impl,v);
     397   va_start(args,v);
     398   icalproperty_add_parameters(impl, args);
     399   va_end(args);
     400   return (icalproperty*)impl;
     401}
     402
     403/* CALID */
     404icalproperty* icalproperty_new_calid(const char* v) {
     405   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     406
     407   icalproperty_set_calid((icalproperty*)impl,v);
     408   return (icalproperty*)impl;
     409}
     410
     411void icalproperty_set_calid(icalproperty* prop, const char* v){
     412    icalerror_check_arg_rv( (v!=0),"v");
     413
     414    icalerror_check_arg_rv( (prop!=0),"prop");
     415    icalproperty_set_value(prop,icalvalue_new_text(v));
     416}
     417const char* icalproperty_get_calid(const icalproperty* prop){
     418    icalerror_check_arg( (prop!=0),"prop");
     419    return icalvalue_get_text(icalproperty_get_value(prop));
     420}
     421icalproperty* icalproperty_vanew_calmaster(const char* v, ...){
     422   va_list args;
     423   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALMASTER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     424
     425   icalproperty_set_calmaster((icalproperty*)impl,v);
     426   va_start(args,v);
     427   icalproperty_add_parameters(impl, args);
     428   va_end(args);
     429   return (icalproperty*)impl;
     430}
     431
     432/* CALMASTER */
     433icalproperty* icalproperty_new_calmaster(const char* v) {
     434   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALMASTER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     435
     436   icalproperty_set_calmaster((icalproperty*)impl,v);
     437   return (icalproperty*)impl;
     438}
     439
     440void icalproperty_set_calmaster(icalproperty* prop, const char* v){
     441    icalerror_check_arg_rv( (v!=0),"v");
     442
     443    icalerror_check_arg_rv( (prop!=0),"prop");
     444    icalproperty_set_value(prop,icalvalue_new_text(v));
     445}
     446const char* icalproperty_get_calmaster(const icalproperty* prop){
     447    icalerror_check_arg( (prop!=0),"prop");
     448    return icalvalue_get_text(icalproperty_get_value(prop));
     449}
     450icalproperty* icalproperty_vanew_calscale(const char* v, ...){
     451   va_list args;
     452   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     453
     454   icalproperty_set_calscale((icalproperty*)impl,v);
     455   va_start(args,v);
     456   icalproperty_add_parameters(impl, args);
     457   va_end(args);
     458   return (icalproperty*)impl;
     459}
     460
     461/* CALSCALE */
     462icalproperty* icalproperty_new_calscale(const char* v) {
     463   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CALSCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     464
     465   icalproperty_set_calscale((icalproperty*)impl,v);
     466   return (icalproperty*)impl;
     467}
     468
     469void icalproperty_set_calscale(icalproperty* prop, const char* v){
     470    icalerror_check_arg_rv( (v!=0),"v");
     471
     472    icalerror_check_arg_rv( (prop!=0),"prop");
     473    icalproperty_set_value(prop,icalvalue_new_text(v));
     474}
     475const char* icalproperty_get_calscale(const icalproperty* prop){
     476    icalerror_check_arg( (prop!=0),"prop");
     477    return icalvalue_get_text(icalproperty_get_value(prop));
     478}
     479icalproperty* icalproperty_vanew_capversion(const char* v, ...){
     480   va_list args;
     481   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CAPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     482
     483   icalproperty_set_capversion((icalproperty*)impl,v);
     484   va_start(args,v);
     485   icalproperty_add_parameters(impl, args);
     486   va_end(args);
     487   return (icalproperty*)impl;
     488}
     489
     490/* CAP-VERSION */
     491icalproperty* icalproperty_new_capversion(const char* v) {
     492   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CAPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     493
     494   icalproperty_set_capversion((icalproperty*)impl,v);
     495   return (icalproperty*)impl;
     496}
     497
     498void icalproperty_set_capversion(icalproperty* prop, const char* v){
     499    icalerror_check_arg_rv( (v!=0),"v");
     500
     501    icalerror_check_arg_rv( (prop!=0),"prop");
     502    icalproperty_set_value(prop,icalvalue_new_text(v));
     503}
     504const char* icalproperty_get_capversion(const icalproperty* prop){
     505    icalerror_check_arg( (prop!=0),"prop");
     506    return icalvalue_get_text(icalproperty_get_value(prop));
     507}
     508icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...){
     509   va_list args;
     510   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARLEVEL_PROPERTY);   
     511   icalproperty_set_carlevel((icalproperty*)impl,v);
     512   va_start(args,v);
     513   icalproperty_add_parameters(impl, args);
     514   va_end(args);
     515   return (icalproperty*)impl;
     516}
     517
     518/* CAR-LEVEL */
     519icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v) {
     520   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARLEVEL_PROPERTY);   
     521   icalproperty_set_carlevel((icalproperty*)impl,v);
     522   return (icalproperty*)impl;
     523}
     524
     525void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v){
     526   
     527    icalerror_check_arg_rv( (prop!=0),"prop");
     528    icalproperty_set_value(prop,icalvalue_new_carlevel(v));
     529}
     530enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop){
     531    icalerror_check_arg( (prop!=0),"prop");
     532    return icalvalue_get_carlevel(icalproperty_get_value(prop));
     533}
     534icalproperty* icalproperty_vanew_carid(const char* v, ...){
     535   va_list args;
     536   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     537
     538   icalproperty_set_carid((icalproperty*)impl,v);
     539   va_start(args,v);
     540   icalproperty_add_parameters(impl, args);
     541   va_end(args);
     542   return (icalproperty*)impl;
     543}
     544
     545/* CARID */
     546icalproperty* icalproperty_new_carid(const char* v) {
     547   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CARID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     548
     549   icalproperty_set_carid((icalproperty*)impl,v);
     550   return (icalproperty*)impl;
     551}
     552
     553void icalproperty_set_carid(icalproperty* prop, const char* v){
     554    icalerror_check_arg_rv( (v!=0),"v");
     555
     556    icalerror_check_arg_rv( (prop!=0),"prop");
     557    icalproperty_set_value(prop,icalvalue_new_text(v));
     558}
     559const char* icalproperty_get_carid(const icalproperty* prop){
     560    icalerror_check_arg( (prop!=0),"prop");
     561    return icalvalue_get_text(icalproperty_get_value(prop));
     562}
     563icalproperty* icalproperty_vanew_categories(const char* v, ...){
     564   va_list args;
     565   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     566
     567   icalproperty_set_categories((icalproperty*)impl,v);
     568   va_start(args,v);
     569   icalproperty_add_parameters(impl, args);
     570   va_end(args);
     571   return (icalproperty*)impl;
     572}
     573
     574/* CATEGORIES */
     575icalproperty* icalproperty_new_categories(const char* v) {
     576   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CATEGORIES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     577
     578   icalproperty_set_categories((icalproperty*)impl,v);
     579   return (icalproperty*)impl;
     580}
     581
     582void icalproperty_set_categories(icalproperty* prop, const char* v){
     583    icalerror_check_arg_rv( (v!=0),"v");
     584
     585    icalerror_check_arg_rv( (prop!=0),"prop");
     586    icalproperty_set_value(prop,icalvalue_new_text(v));
     587}
     588const char* icalproperty_get_categories(const icalproperty* prop){
     589    icalerror_check_arg( (prop!=0),"prop");
     590    return icalvalue_get_text(icalproperty_get_value(prop));
     591}
     592icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...){
     593   va_list args;
     594   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);   
     595   icalproperty_set_class((icalproperty*)impl,v);
     596   va_start(args,v);
     597   icalproperty_add_parameters(impl, args);
     598   va_end(args);
     599   return (icalproperty*)impl;
     600}
     601
     602/* CLASS */
     603icalproperty* icalproperty_new_class(enum icalproperty_class v) {
     604   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CLASS_PROPERTY);   
     605   icalproperty_set_class((icalproperty*)impl,v);
     606   return (icalproperty*)impl;
     607}
     608
     609void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v){
     610   
     611    icalerror_check_arg_rv( (prop!=0),"prop");
     612    icalproperty_set_value(prop,icalvalue_new_class(v));
     613}
     614enum icalproperty_class icalproperty_get_class(const icalproperty* prop){
     615    icalerror_check_arg( (prop!=0),"prop");
     616    return icalvalue_get_class(icalproperty_get_value(prop));
     617}
     618icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...){
     619   va_list args;
     620   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CMD_PROPERTY);   
     621   icalproperty_set_cmd((icalproperty*)impl,v);
     622   va_start(args,v);
     623   icalproperty_add_parameters(impl, args);
     624   va_end(args);
     625   return (icalproperty*)impl;
     626}
     627
     628/* CMD */
     629icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v) {
     630   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CMD_PROPERTY);   
     631   icalproperty_set_cmd((icalproperty*)impl,v);
     632   return (icalproperty*)impl;
     633}
     634
     635void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v){
     636   
     637    icalerror_check_arg_rv( (prop!=0),"prop");
     638    icalproperty_set_value(prop,icalvalue_new_cmd(v));
     639}
     640enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop){
     641    icalerror_check_arg( (prop!=0),"prop");
     642    return icalvalue_get_cmd(icalproperty_get_value(prop));
     643}
     644icalproperty* icalproperty_vanew_comment(const char* v, ...){
     645   va_list args;
     646   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     647
     648   icalproperty_set_comment((icalproperty*)impl,v);
     649   va_start(args,v);
     650   icalproperty_add_parameters(impl, args);
     651   va_end(args);
     652   return (icalproperty*)impl;
     653}
     654
     655/* COMMENT */
     656icalproperty* icalproperty_new_comment(const char* v) {
     657   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMMENT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     658
     659   icalproperty_set_comment((icalproperty*)impl,v);
     660   return (icalproperty*)impl;
     661}
     662
     663void icalproperty_set_comment(icalproperty* prop, const char* v){
     664    icalerror_check_arg_rv( (v!=0),"v");
     665
     666    icalerror_check_arg_rv( (prop!=0),"prop");
     667    icalproperty_set_value(prop,icalvalue_new_text(v));
     668}
     669const char* icalproperty_get_comment(const icalproperty* prop){
     670    icalerror_check_arg( (prop!=0),"prop");
     671    return icalvalue_get_text(icalproperty_get_value(prop));
     672}
     673icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...){
     674   va_list args;
     675   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);   
     676   icalproperty_set_completed((icalproperty*)impl,v);
     677   va_start(args,v);
     678   icalproperty_add_parameters(impl, args);
     679   va_end(args);
     680   return (icalproperty*)impl;
     681}
     682
     683/* COMPLETED */
     684icalproperty* icalproperty_new_completed(struct icaltimetype v) {
     685   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPLETED_PROPERTY);   
     686   icalproperty_set_completed((icalproperty*)impl,v);
     687   return (icalproperty*)impl;
     688}
     689
     690void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v){
     691   
     692    icalerror_check_arg_rv( (prop!=0),"prop");
     693    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     694}
     695struct icaltimetype icalproperty_get_completed(const icalproperty* prop){
     696    icalerror_check_arg( (prop!=0),"prop");
     697    return icalvalue_get_datetime(icalproperty_get_value(prop));
     698}
     699icalproperty* icalproperty_vanew_components(const char* v, ...){
     700   va_list args;
     701   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPONENTS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     702
     703   icalproperty_set_components((icalproperty*)impl,v);
     704   va_start(args,v);
     705   icalproperty_add_parameters(impl, args);
     706   va_end(args);
     707   return (icalproperty*)impl;
     708}
     709
     710/* COMPONENTS */
     711icalproperty* icalproperty_new_components(const char* v) {
     712   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_COMPONENTS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     713
     714   icalproperty_set_components((icalproperty*)impl,v);
     715   return (icalproperty*)impl;
     716}
     717
     718void icalproperty_set_components(icalproperty* prop, const char* v){
     719    icalerror_check_arg_rv( (v!=0),"v");
     720
     721    icalerror_check_arg_rv( (prop!=0),"prop");
     722    icalproperty_set_value(prop,icalvalue_new_text(v));
     723}
     724const char* icalproperty_get_components(const icalproperty* prop){
     725    icalerror_check_arg( (prop!=0),"prop");
     726    return icalvalue_get_text(icalproperty_get_value(prop));
     727}
     728icalproperty* icalproperty_vanew_contact(const char* v, ...){
     729   va_list args;
     730   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     731
     732   icalproperty_set_contact((icalproperty*)impl,v);
     733   va_start(args,v);
     734   icalproperty_add_parameters(impl, args);
     735   va_end(args);
     736   return (icalproperty*)impl;
     737}
     738
     739/* CONTACT */
     740icalproperty* icalproperty_new_contact(const char* v) {
     741   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CONTACT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     742
     743   icalproperty_set_contact((icalproperty*)impl,v);
     744   return (icalproperty*)impl;
     745}
     746
     747void icalproperty_set_contact(icalproperty* prop, const char* v){
     748    icalerror_check_arg_rv( (v!=0),"v");
     749
     750    icalerror_check_arg_rv( (prop!=0),"prop");
     751    icalproperty_set_value(prop,icalvalue_new_text(v));
     752}
     753const char* icalproperty_get_contact(const icalproperty* prop){
     754    icalerror_check_arg( (prop!=0),"prop");
     755    return icalvalue_get_text(icalproperty_get_value(prop));
     756}
     757icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...){
     758   va_list args;
     759   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);   
     760   icalproperty_set_created((icalproperty*)impl,v);
     761   va_start(args,v);
     762   icalproperty_add_parameters(impl, args);
     763   va_end(args);
     764   return (icalproperty*)impl;
     765}
     766
     767/* CREATED */
     768icalproperty* icalproperty_new_created(struct icaltimetype v) {
     769   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CREATED_PROPERTY);   
     770   icalproperty_set_created((icalproperty*)impl,v);
     771   return (icalproperty*)impl;
     772}
     773
     774void icalproperty_set_created(icalproperty* prop, struct icaltimetype v){
     775   
     776    icalerror_check_arg_rv( (prop!=0),"prop");
     777    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     778}
     779struct icaltimetype icalproperty_get_created(const icalproperty* prop){
     780    icalerror_check_arg( (prop!=0),"prop");
     781    return icalvalue_get_datetime(icalproperty_get_value(prop));
     782}
     783icalproperty* icalproperty_vanew_csid(const char* v, ...){
     784   va_list args;
     785   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CSID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     786
     787   icalproperty_set_csid((icalproperty*)impl,v);
     788   va_start(args,v);
     789   icalproperty_add_parameters(impl, args);
     790   va_end(args);
     791   return (icalproperty*)impl;
     792}
     793
     794/* CSID */
     795icalproperty* icalproperty_new_csid(const char* v) {
     796   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_CSID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     797
     798   icalproperty_set_csid((icalproperty*)impl,v);
     799   return (icalproperty*)impl;
     800}
     801
     802void icalproperty_set_csid(icalproperty* prop, const char* v){
     803    icalerror_check_arg_rv( (v!=0),"v");
     804
     805    icalerror_check_arg_rv( (prop!=0),"prop");
     806    icalproperty_set_value(prop,icalvalue_new_uri(v));
     807}
     808const char* icalproperty_get_csid(const icalproperty* prop){
     809    icalerror_check_arg( (prop!=0),"prop");
     810    return icalvalue_get_uri(icalproperty_get_value(prop));
     811}
     812icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...){
     813   va_list args;
     814   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMAX_PROPERTY);   
     815   icalproperty_set_datemax((icalproperty*)impl,v);
     816   va_start(args,v);
     817   icalproperty_add_parameters(impl, args);
     818   va_end(args);
     819   return (icalproperty*)impl;
     820}
     821
     822/* DATE-MAX */
     823icalproperty* icalproperty_new_datemax(struct icaltimetype v) {
     824   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMAX_PROPERTY);   
     825   icalproperty_set_datemax((icalproperty*)impl,v);
     826   return (icalproperty*)impl;
     827}
     828
     829void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v){
     830   
     831    icalerror_check_arg_rv( (prop!=0),"prop");
     832    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     833}
     834struct icaltimetype icalproperty_get_datemax(const icalproperty* prop){
     835    icalerror_check_arg( (prop!=0),"prop");
     836    return icalvalue_get_datetime(icalproperty_get_value(prop));
     837}
     838icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...){
     839   va_list args;
     840   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMIN_PROPERTY);   
     841   icalproperty_set_datemin((icalproperty*)impl,v);
     842   va_start(args,v);
     843   icalproperty_add_parameters(impl, args);
     844   va_end(args);
     845   return (icalproperty*)impl;
     846}
     847
     848/* DATE-MIN */
     849icalproperty* icalproperty_new_datemin(struct icaltimetype v) {
     850   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DATEMIN_PROPERTY);   
     851   icalproperty_set_datemin((icalproperty*)impl,v);
     852   return (icalproperty*)impl;
     853}
     854
     855void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v){
     856   
     857    icalerror_check_arg_rv( (prop!=0),"prop");
     858    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     859}
     860struct icaltimetype icalproperty_get_datemin(const icalproperty* prop){
     861    icalerror_check_arg( (prop!=0),"prop");
     862    return icalvalue_get_datetime(icalproperty_get_value(prop));
     863}
     864icalproperty* icalproperty_vanew_decreed(const char* v, ...){
     865   va_list args;
     866   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DECREED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     867
     868   icalproperty_set_decreed((icalproperty*)impl,v);
     869   va_start(args,v);
     870   icalproperty_add_parameters(impl, args);
     871   va_end(args);
     872   return (icalproperty*)impl;
     873}
     874
     875/* DECREED */
     876icalproperty* icalproperty_new_decreed(const char* v) {
     877   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DECREED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     878
     879   icalproperty_set_decreed((icalproperty*)impl,v);
     880   return (icalproperty*)impl;
     881}
     882
     883void icalproperty_set_decreed(icalproperty* prop, const char* v){
     884    icalerror_check_arg_rv( (v!=0),"v");
     885
     886    icalerror_check_arg_rv( (prop!=0),"prop");
     887    icalproperty_set_value(prop,icalvalue_new_text(v));
     888}
     889const char* icalproperty_get_decreed(const icalproperty* prop){
     890    icalerror_check_arg( (prop!=0),"prop");
     891    return icalvalue_get_text(icalproperty_get_value(prop));
     892}
     893icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...){
     894   va_list args;
     895   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTCHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     896
     897   icalproperty_set_defaultcharset((icalproperty*)impl,v);
     898   va_start(args,v);
     899   icalproperty_add_parameters(impl, args);
     900   va_end(args);
     901   return (icalproperty*)impl;
     902}
     903
     904/* DEFAULT-CHARSET */
     905icalproperty* icalproperty_new_defaultcharset(const char* v) {
     906   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTCHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     907
     908   icalproperty_set_defaultcharset((icalproperty*)impl,v);
     909   return (icalproperty*)impl;
     910}
     911
     912void icalproperty_set_defaultcharset(icalproperty* prop, const char* v){
     913    icalerror_check_arg_rv( (v!=0),"v");
     914
     915    icalerror_check_arg_rv( (prop!=0),"prop");
     916    icalproperty_set_value(prop,icalvalue_new_text(v));
     917}
     918const char* icalproperty_get_defaultcharset(const icalproperty* prop){
     919    icalerror_check_arg( (prop!=0),"prop");
     920    return icalvalue_get_text(icalproperty_get_value(prop));
     921}
     922icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...){
     923   va_list args;
     924   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTLOCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     925
     926   icalproperty_set_defaultlocale((icalproperty*)impl,v);
     927   va_start(args,v);
     928   icalproperty_add_parameters(impl, args);
     929   va_end(args);
     930   return (icalproperty*)impl;
     931}
     932
     933/* DEFAULT-LOCALE */
     934icalproperty* icalproperty_new_defaultlocale(const char* v) {
     935   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTLOCALE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     936
     937   icalproperty_set_defaultlocale((icalproperty*)impl,v);
     938   return (icalproperty*)impl;
     939}
     940
     941void icalproperty_set_defaultlocale(icalproperty* prop, const char* v){
     942    icalerror_check_arg_rv( (v!=0),"v");
     943
     944    icalerror_check_arg_rv( (prop!=0),"prop");
     945    icalproperty_set_value(prop,icalvalue_new_text(v));
     946}
     947const char* icalproperty_get_defaultlocale(const icalproperty* prop){
     948    icalerror_check_arg( (prop!=0),"prop");
     949    return icalvalue_get_text(icalproperty_get_value(prop));
     950}
     951icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...){
     952   va_list args;
     953   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTTZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     954
     955   icalproperty_set_defaulttzid((icalproperty*)impl,v);
     956   va_start(args,v);
     957   icalproperty_add_parameters(impl, args);
     958   va_end(args);
     959   return (icalproperty*)impl;
     960}
     961
     962/* DEFAULT-TZID */
     963icalproperty* icalproperty_new_defaulttzid(const char* v) {
     964   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTTZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     965
     966   icalproperty_set_defaulttzid((icalproperty*)impl,v);
     967   return (icalproperty*)impl;
     968}
     969
     970void icalproperty_set_defaulttzid(icalproperty* prop, const char* v){
     971    icalerror_check_arg_rv( (v!=0),"v");
     972
     973    icalerror_check_arg_rv( (prop!=0),"prop");
     974    icalproperty_set_value(prop,icalvalue_new_text(v));
     975}
     976const char* icalproperty_get_defaulttzid(const icalproperty* prop){
     977    icalerror_check_arg( (prop!=0),"prop");
     978    return icalvalue_get_text(icalproperty_get_value(prop));
     979}
     980icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...){
     981   va_list args;
     982   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTVCARS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     983
     984   icalproperty_set_defaultvcars((icalproperty*)impl,v);
     985   va_start(args,v);
     986   icalproperty_add_parameters(impl, args);
     987   va_end(args);
     988   return (icalproperty*)impl;
     989}
     990
     991/* DEFAULT-VCARS */
     992icalproperty* icalproperty_new_defaultvcars(const char* v) {
     993   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DEFAULTVCARS_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     994
     995   icalproperty_set_defaultvcars((icalproperty*)impl,v);
     996   return (icalproperty*)impl;
     997}
     998
     999void icalproperty_set_defaultvcars(icalproperty* prop, const char* v){
     1000    icalerror_check_arg_rv( (v!=0),"v");
     1001
     1002    icalerror_check_arg_rv( (prop!=0),"prop");
     1003    icalproperty_set_value(prop,icalvalue_new_text(v));
     1004}
     1005const char* icalproperty_get_defaultvcars(const icalproperty* prop){
     1006    icalerror_check_arg( (prop!=0),"prop");
     1007    return icalvalue_get_text(icalproperty_get_value(prop));
     1008}
     1009icalproperty* icalproperty_vanew_deny(const char* v, ...){
     1010   va_list args;
     1011   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DENY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1012
     1013   icalproperty_set_deny((icalproperty*)impl,v);
     1014   va_start(args,v);
     1015   icalproperty_add_parameters(impl, args);
     1016   va_end(args);
     1017   return (icalproperty*)impl;
     1018}
     1019
     1020/* DENY */
     1021icalproperty* icalproperty_new_deny(const char* v) {
     1022   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DENY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1023
     1024   icalproperty_set_deny((icalproperty*)impl,v);
     1025   return (icalproperty*)impl;
     1026}
     1027
     1028void icalproperty_set_deny(icalproperty* prop, const char* v){
     1029    icalerror_check_arg_rv( (v!=0),"v");
     1030
     1031    icalerror_check_arg_rv( (prop!=0),"prop");
     1032    icalproperty_set_value(prop,icalvalue_new_text(v));
     1033}
     1034const char* icalproperty_get_deny(const icalproperty* prop){
     1035    icalerror_check_arg( (prop!=0),"prop");
     1036    return icalvalue_get_text(icalproperty_get_value(prop));
     1037}
     1038icalproperty* icalproperty_vanew_description(const char* v, ...){
     1039   va_list args;
     1040   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1041
     1042   icalproperty_set_description((icalproperty*)impl,v);
     1043   va_start(args,v);
     1044   icalproperty_add_parameters(impl, args);
     1045   va_end(args);
     1046   return (icalproperty*)impl;
     1047}
     1048
     1049/* DESCRIPTION */
     1050icalproperty* icalproperty_new_description(const char* v) {
     1051   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DESCRIPTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1052
     1053   icalproperty_set_description((icalproperty*)impl,v);
     1054   return (icalproperty*)impl;
     1055}
     1056
     1057void icalproperty_set_description(icalproperty* prop, const char* v){
     1058    icalerror_check_arg_rv( (v!=0),"v");
     1059
     1060    icalerror_check_arg_rv( (prop!=0),"prop");
     1061    icalproperty_set_value(prop,icalvalue_new_text(v));
     1062}
     1063const char* icalproperty_get_description(const icalproperty* prop){
     1064    icalerror_check_arg( (prop!=0),"prop");
     1065    return icalvalue_get_text(icalproperty_get_value(prop));
     1066}
     1067icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...){
     1068   va_list args;
     1069   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);   
     1070   icalproperty_set_dtend((icalproperty*)impl,v);
     1071   va_start(args,v);
     1072   icalproperty_add_parameters(impl, args);
     1073   va_end(args);
     1074   return (icalproperty*)impl;
     1075}
     1076
     1077/* DTEND */
     1078icalproperty* icalproperty_new_dtend(struct icaltimetype v) {
     1079   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTEND_PROPERTY);   
     1080   icalproperty_set_dtend((icalproperty*)impl,v);
     1081   return (icalproperty*)impl;
     1082}
     1083
     1084void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v){
     1085    icalvalue *value;
     1086   
     1087    icalerror_check_arg_rv( (prop!=0),"prop");
     1088    if (v.is_date)
     1089        value = icalvalue_new_date(v);
     1090    else
     1091        value = icalvalue_new_datetime(v);
     1092    icalproperty_set_value(prop,value);
     1093}
     1094struct icaltimetype icalproperty_get_dtend(const icalproperty* prop){
     1095    icalerror_check_arg( (prop!=0),"prop");
     1096    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1097}
     1098icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...){
     1099   va_list args;
     1100   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);   
     1101   icalproperty_set_dtstamp((icalproperty*)impl,v);
     1102   va_start(args,v);
     1103   icalproperty_add_parameters(impl, args);
     1104   va_end(args);
     1105   return (icalproperty*)impl;
     1106}
     1107
     1108/* DTSTAMP */
     1109icalproperty* icalproperty_new_dtstamp(struct icaltimetype v) {
     1110   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTAMP_PROPERTY);   
     1111   icalproperty_set_dtstamp((icalproperty*)impl,v);
     1112   return (icalproperty*)impl;
     1113}
     1114
     1115void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v){
     1116   
     1117    icalerror_check_arg_rv( (prop!=0),"prop");
     1118    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     1119}
     1120struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop){
     1121    icalerror_check_arg( (prop!=0),"prop");
     1122    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1123}
     1124icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...){
     1125   va_list args;
     1126   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);   
     1127   icalproperty_set_dtstart((icalproperty*)impl,v);
     1128   va_start(args,v);
     1129   icalproperty_add_parameters(impl, args);
     1130   va_end(args);
     1131   return (icalproperty*)impl;
     1132}
     1133
     1134/* DTSTART */
     1135icalproperty* icalproperty_new_dtstart(struct icaltimetype v) {
     1136   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DTSTART_PROPERTY);   
     1137   icalproperty_set_dtstart((icalproperty*)impl,v);
     1138   return (icalproperty*)impl;
     1139}
     1140
     1141void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v){
     1142    icalvalue *value;
     1143   
     1144    icalerror_check_arg_rv( (prop!=0),"prop");
     1145    if (v.is_date)
     1146        value = icalvalue_new_date(v);
     1147    else
     1148        value = icalvalue_new_datetime(v);
     1149    icalproperty_set_value(prop,value);
     1150}
     1151struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop){
     1152    icalerror_check_arg( (prop!=0),"prop");
     1153    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1154}
     1155icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...){
     1156   va_list args;
     1157   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);   
     1158   icalproperty_set_due((icalproperty*)impl,v);
     1159   va_start(args,v);
     1160   icalproperty_add_parameters(impl, args);
     1161   va_end(args);
     1162   return (icalproperty*)impl;
     1163}
     1164
     1165/* DUE */
     1166icalproperty* icalproperty_new_due(struct icaltimetype v) {
     1167   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DUE_PROPERTY);   
     1168   icalproperty_set_due((icalproperty*)impl,v);
     1169   return (icalproperty*)impl;
     1170}
     1171
     1172void icalproperty_set_due(icalproperty* prop, struct icaltimetype v){
     1173    icalvalue *value;
     1174   
     1175    icalerror_check_arg_rv( (prop!=0),"prop");
     1176    if (v.is_date)
     1177        value = icalvalue_new_date(v);
     1178    else
     1179        value = icalvalue_new_datetime(v);
     1180    icalproperty_set_value(prop,value);
     1181}
     1182struct icaltimetype icalproperty_get_due(const icalproperty* prop){
     1183    icalerror_check_arg( (prop!=0),"prop");
     1184    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1185}
     1186icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...){
     1187   va_list args;
     1188   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);   
     1189   icalproperty_set_duration((icalproperty*)impl,v);
     1190   va_start(args,v);
     1191   icalproperty_add_parameters(impl, args);
     1192   va_end(args);
     1193   return (icalproperty*)impl;
     1194}
     1195
     1196/* DURATION */
     1197icalproperty* icalproperty_new_duration(struct icaldurationtype v) {
     1198   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_DURATION_PROPERTY);   
     1199   icalproperty_set_duration((icalproperty*)impl,v);
     1200   return (icalproperty*)impl;
     1201}
     1202
     1203void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v){
     1204   
     1205    icalerror_check_arg_rv( (prop!=0),"prop");
     1206    icalproperty_set_value(prop,icalvalue_new_duration(v));
     1207}
     1208struct icaldurationtype icalproperty_get_duration(const icalproperty* prop){
     1209    icalerror_check_arg( (prop!=0),"prop");
     1210    return icalvalue_get_duration(icalproperty_get_value(prop));
     1211}
     1212icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...){
     1213   va_list args;
     1214   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);   
     1215   icalproperty_set_exdate((icalproperty*)impl,v);
     1216   va_start(args,v);
     1217   icalproperty_add_parameters(impl, args);
     1218   va_end(args);
     1219   return (icalproperty*)impl;
     1220}
     1221
     1222/* EXDATE */
     1223icalproperty* icalproperty_new_exdate(struct icaltimetype v) {
     1224   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXDATE_PROPERTY);   
     1225   icalproperty_set_exdate((icalproperty*)impl,v);
     1226   return (icalproperty*)impl;
     1227}
     1228
     1229void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v){
     1230    icalvalue *value;
     1231   
     1232    icalerror_check_arg_rv( (prop!=0),"prop");
     1233    if (v.is_date)
     1234        value = icalvalue_new_date(v);
     1235    else
     1236        value = icalvalue_new_datetime(v);
     1237    icalproperty_set_value(prop,value);
     1238}
     1239struct icaltimetype icalproperty_get_exdate(const icalproperty* prop){
     1240        icalerror_check_arg( (prop!=0),"prop");
     1241#ifndef _MSC_VER
     1242        /*
     1243         * Code by dirk@objectpark.net:
     1244         * Set the time zone manually. I am really puzzled that
     1245         * it doesnot work automatically like in the other functions
     1246         * like icalproperty_get_dtstart().
     1247         */
     1248        struct icaltimetype itt =
     1249                icalvalue_get_datetime(icalproperty_get_value(prop));
     1250        icalparameter* param = icalproperty_get_first_parameter(prop,
     1251                                                                ICAL_TZID_PARAMETER);
     1252        if (param) {
     1253                const icaltimezone *zone =
     1254                        icaltimezone_get_builtin_timezone(icalparameter_get_tzid(param));
     1255                icaltime_set_timezone(&itt, zone);
     1256        }
     1257        return itt;
     1258#else
     1259    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1260#endif
     1261}
     1262icalproperty* icalproperty_vanew_expand(int v, ...){
     1263   va_list args;
     1264   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXPAND_PROPERTY);   
     1265   icalproperty_set_expand((icalproperty*)impl,v);
     1266   va_start(args,v);
     1267   icalproperty_add_parameters(impl, args);
     1268   va_end(args);
     1269   return (icalproperty*)impl;
     1270}
     1271
     1272/* EXPAND */
     1273icalproperty* icalproperty_new_expand(int v) {
     1274   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXPAND_PROPERTY);   
     1275   icalproperty_set_expand((icalproperty*)impl,v);
     1276   return (icalproperty*)impl;
     1277}
     1278
     1279void icalproperty_set_expand(icalproperty* prop, int v){
     1280   
     1281    icalerror_check_arg_rv( (prop!=0),"prop");
     1282    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1283}
     1284int icalproperty_get_expand(const icalproperty* prop){
     1285    icalerror_check_arg( (prop!=0),"prop");
     1286    return icalvalue_get_integer(icalproperty_get_value(prop));
     1287}
     1288icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...){
     1289   va_list args;
     1290   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);   
     1291   icalproperty_set_exrule((icalproperty*)impl,v);
     1292   va_start(args,v);
     1293   icalproperty_add_parameters(impl, args);
     1294   va_end(args);
     1295   return (icalproperty*)impl;
     1296}
     1297
     1298/* EXRULE */
     1299icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v) {
     1300   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_EXRULE_PROPERTY);   
     1301   icalproperty_set_exrule((icalproperty*)impl,v);
     1302   return (icalproperty*)impl;
     1303}
     1304
     1305void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v){
     1306   
     1307    icalerror_check_arg_rv( (prop!=0),"prop");
     1308    icalproperty_set_value(prop,icalvalue_new_recur(v));
     1309}
     1310struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop){
     1311    icalerror_check_arg( (prop!=0),"prop");
     1312    return icalvalue_get_recur(icalproperty_get_value(prop));
     1313}
     1314icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...){
     1315   va_list args;
     1316   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);   
     1317   icalproperty_set_freebusy((icalproperty*)impl,v);
     1318   va_start(args,v);
     1319   icalproperty_add_parameters(impl, args);
     1320   va_end(args);
     1321   return (icalproperty*)impl;
     1322}
     1323
     1324/* FREEBUSY */
     1325icalproperty* icalproperty_new_freebusy(struct icalperiodtype v) {
     1326   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_FREEBUSY_PROPERTY);   
     1327   icalproperty_set_freebusy((icalproperty*)impl,v);
     1328   return (icalproperty*)impl;
     1329}
     1330
     1331void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v){
     1332   
     1333    icalerror_check_arg_rv( (prop!=0),"prop");
     1334    icalproperty_set_value(prop,icalvalue_new_period(v));
     1335}
     1336struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop){
     1337    icalerror_check_arg( (prop!=0),"prop");
     1338    return icalvalue_get_period(icalproperty_get_value(prop));
     1339}
     1340icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...){
     1341   va_list args;
     1342   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);   
     1343   icalproperty_set_geo((icalproperty*)impl,v);
     1344   va_start(args,v);
     1345   icalproperty_add_parameters(impl, args);
     1346   va_end(args);
     1347   return (icalproperty*)impl;
     1348}
     1349
     1350/* GEO */
     1351icalproperty* icalproperty_new_geo(struct icalgeotype v) {
     1352   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GEO_PROPERTY);   
     1353   icalproperty_set_geo((icalproperty*)impl,v);
     1354   return (icalproperty*)impl;
     1355}
     1356
     1357void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v){
     1358   
     1359    icalerror_check_arg_rv( (prop!=0),"prop");
     1360    icalproperty_set_value(prop,icalvalue_new_geo(v));
     1361}
     1362struct icalgeotype icalproperty_get_geo(const icalproperty* prop){
     1363    icalerror_check_arg( (prop!=0),"prop");
     1364    return icalvalue_get_geo(icalproperty_get_value(prop));
     1365}
     1366icalproperty* icalproperty_vanew_grant(const char* v, ...){
     1367   va_list args;
     1368   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GRANT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1369
     1370   icalproperty_set_grant((icalproperty*)impl,v);
     1371   va_start(args,v);
     1372   icalproperty_add_parameters(impl, args);
     1373   va_end(args);
     1374   return (icalproperty*)impl;
     1375}
     1376
     1377/* GRANT */
     1378icalproperty* icalproperty_new_grant(const char* v) {
     1379   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_GRANT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1380
     1381   icalproperty_set_grant((icalproperty*)impl,v);
     1382   return (icalproperty*)impl;
     1383}
     1384
     1385void icalproperty_set_grant(icalproperty* prop, const char* v){
     1386    icalerror_check_arg_rv( (v!=0),"v");
     1387
     1388    icalerror_check_arg_rv( (prop!=0),"prop");
     1389    icalproperty_set_value(prop,icalvalue_new_text(v));
     1390}
     1391const char* icalproperty_get_grant(const icalproperty* prop){
     1392    icalerror_check_arg( (prop!=0),"prop");
     1393    return icalvalue_get_text(icalproperty_get_value(prop));
     1394}
     1395icalproperty* icalproperty_vanew_itipversion(const char* v, ...){
     1396   va_list args;
     1397   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ITIPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1398
     1399   icalproperty_set_itipversion((icalproperty*)impl,v);
     1400   va_start(args,v);
     1401   icalproperty_add_parameters(impl, args);
     1402   va_end(args);
     1403   return (icalproperty*)impl;
     1404}
     1405
     1406/* ITIP-VERSION */
     1407icalproperty* icalproperty_new_itipversion(const char* v) {
     1408   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ITIPVERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1409
     1410   icalproperty_set_itipversion((icalproperty*)impl,v);
     1411   return (icalproperty*)impl;
     1412}
     1413
     1414void icalproperty_set_itipversion(icalproperty* prop, const char* v){
     1415    icalerror_check_arg_rv( (v!=0),"v");
     1416
     1417    icalerror_check_arg_rv( (prop!=0),"prop");
     1418    icalproperty_set_value(prop,icalvalue_new_text(v));
     1419}
     1420const char* icalproperty_get_itipversion(const icalproperty* prop){
     1421    icalerror_check_arg( (prop!=0),"prop");
     1422    return icalvalue_get_text(icalproperty_get_value(prop));
     1423}
     1424icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...){
     1425   va_list args;
     1426   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);   
     1427   icalproperty_set_lastmodified((icalproperty*)impl,v);
     1428   va_start(args,v);
     1429   icalproperty_add_parameters(impl, args);
     1430   va_end(args);
     1431   return (icalproperty*)impl;
     1432}
     1433
     1434/* LAST-MODIFIED */
     1435icalproperty* icalproperty_new_lastmodified(struct icaltimetype v) {
     1436   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LASTMODIFIED_PROPERTY);   
     1437   icalproperty_set_lastmodified((icalproperty*)impl,v);
     1438   return (icalproperty*)impl;
     1439}
     1440
     1441void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v){
     1442   
     1443    icalerror_check_arg_rv( (prop!=0),"prop");
     1444    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     1445}
     1446struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop){
     1447    icalerror_check_arg( (prop!=0),"prop");
     1448    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1449}
     1450icalproperty* icalproperty_vanew_location(const char* v, ...){
     1451   va_list args;
     1452   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1453
     1454   icalproperty_set_location((icalproperty*)impl,v);
     1455   va_start(args,v);
     1456   icalproperty_add_parameters(impl, args);
     1457   va_end(args);
     1458   return (icalproperty*)impl;
     1459}
     1460
     1461/* LOCATION */
     1462icalproperty* icalproperty_new_location(const char* v) {
     1463   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_LOCATION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1464
     1465   icalproperty_set_location((icalproperty*)impl,v);
     1466   return (icalproperty*)impl;
     1467}
     1468
     1469void icalproperty_set_location(icalproperty* prop, const char* v){
     1470    icalerror_check_arg_rv( (v!=0),"v");
     1471
     1472    icalerror_check_arg_rv( (prop!=0),"prop");
     1473    icalproperty_set_value(prop,icalvalue_new_text(v));
     1474}
     1475const char* icalproperty_get_location(const icalproperty* prop){
     1476    icalerror_check_arg( (prop!=0),"prop");
     1477    return icalvalue_get_text(icalproperty_get_value(prop));
     1478}
     1479icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...){
     1480   va_list args;
     1481   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXCOMPONENTSIZE_PROPERTY);   
     1482   icalproperty_set_maxcomponentsize((icalproperty*)impl,v);
     1483   va_start(args,v);
     1484   icalproperty_add_parameters(impl, args);
     1485   va_end(args);
     1486   return (icalproperty*)impl;
     1487}
     1488
     1489/* MAX-COMPONENT-SIZE */
     1490icalproperty* icalproperty_new_maxcomponentsize(int v) {
     1491   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXCOMPONENTSIZE_PROPERTY);   
     1492   icalproperty_set_maxcomponentsize((icalproperty*)impl,v);
     1493   return (icalproperty*)impl;
     1494}
     1495
     1496void icalproperty_set_maxcomponentsize(icalproperty* prop, int v){
     1497   
     1498    icalerror_check_arg_rv( (prop!=0),"prop");
     1499    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1500}
     1501int icalproperty_get_maxcomponentsize(const icalproperty* prop){
     1502    icalerror_check_arg( (prop!=0),"prop");
     1503    return icalvalue_get_integer(icalproperty_get_value(prop));
     1504}
     1505icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...){
     1506   va_list args;
     1507   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXDATE_PROPERTY);   
     1508   icalproperty_set_maxdate((icalproperty*)impl,v);
     1509   va_start(args,v);
     1510   icalproperty_add_parameters(impl, args);
     1511   va_end(args);
     1512   return (icalproperty*)impl;
     1513}
     1514
     1515/* MAXDATE */
     1516icalproperty* icalproperty_new_maxdate(struct icaltimetype v) {
     1517   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXDATE_PROPERTY);   
     1518   icalproperty_set_maxdate((icalproperty*)impl,v);
     1519   return (icalproperty*)impl;
     1520}
     1521
     1522void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v){
     1523   
     1524    icalerror_check_arg_rv( (prop!=0),"prop");
     1525    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     1526}
     1527struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop){
     1528    icalerror_check_arg( (prop!=0),"prop");
     1529    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1530}
     1531icalproperty* icalproperty_vanew_maxresults(int v, ...){
     1532   va_list args;
     1533   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);   
     1534   icalproperty_set_maxresults((icalproperty*)impl,v);
     1535   va_start(args,v);
     1536   icalproperty_add_parameters(impl, args);
     1537   va_end(args);
     1538   return (icalproperty*)impl;
     1539}
     1540
     1541/* MAXRESULTS */
     1542icalproperty* icalproperty_new_maxresults(int v) {
     1543   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTS_PROPERTY);   
     1544   icalproperty_set_maxresults((icalproperty*)impl,v);
     1545   return (icalproperty*)impl;
     1546}
     1547
     1548void icalproperty_set_maxresults(icalproperty* prop, int v){
     1549   
     1550    icalerror_check_arg_rv( (prop!=0),"prop");
     1551    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1552}
     1553int icalproperty_get_maxresults(const icalproperty* prop){
     1554    icalerror_check_arg( (prop!=0),"prop");
     1555    return icalvalue_get_integer(icalproperty_get_value(prop));
     1556}
     1557icalproperty* icalproperty_vanew_maxresultssize(int v, ...){
     1558   va_list args;
     1559   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);   
     1560   icalproperty_set_maxresultssize((icalproperty*)impl,v);
     1561   va_start(args,v);
     1562   icalproperty_add_parameters(impl, args);
     1563   va_end(args);
     1564   return (icalproperty*)impl;
     1565}
     1566
     1567/* MAXRESULTSSIZE */
     1568icalproperty* icalproperty_new_maxresultssize(int v) {
     1569   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MAXRESULTSSIZE_PROPERTY);   
     1570   icalproperty_set_maxresultssize((icalproperty*)impl,v);
     1571   return (icalproperty*)impl;
     1572}
     1573
     1574void icalproperty_set_maxresultssize(icalproperty* prop, int v){
     1575   
     1576    icalerror_check_arg_rv( (prop!=0),"prop");
     1577    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1578}
     1579int icalproperty_get_maxresultssize(const icalproperty* prop){
     1580    icalerror_check_arg( (prop!=0),"prop");
     1581    return icalvalue_get_integer(icalproperty_get_value(prop));
     1582}
     1583icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...){
     1584   va_list args;
     1585   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);   
     1586   icalproperty_set_method((icalproperty*)impl,v);
     1587   va_start(args,v);
     1588   icalproperty_add_parameters(impl, args);
     1589   va_end(args);
     1590   return (icalproperty*)impl;
     1591}
     1592
     1593/* METHOD */
     1594icalproperty* icalproperty_new_method(enum icalproperty_method v) {
     1595   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_METHOD_PROPERTY);   
     1596   icalproperty_set_method((icalproperty*)impl,v);
     1597   return (icalproperty*)impl;
     1598}
     1599
     1600void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v){
     1601   
     1602    icalerror_check_arg_rv( (prop!=0),"prop");
     1603    icalproperty_set_value(prop,icalvalue_new_method(v));
     1604}
     1605enum icalproperty_method icalproperty_get_method(const icalproperty* prop){
     1606    icalerror_check_arg( (prop!=0),"prop");
     1607    return icalvalue_get_method(icalproperty_get_value(prop));
     1608}
     1609icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...){
     1610   va_list args;
     1611   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MINDATE_PROPERTY);   
     1612   icalproperty_set_mindate((icalproperty*)impl,v);
     1613   va_start(args,v);
     1614   icalproperty_add_parameters(impl, args);
     1615   va_end(args);
     1616   return (icalproperty*)impl;
     1617}
     1618
     1619/* MINDATE */
     1620icalproperty* icalproperty_new_mindate(struct icaltimetype v) {
     1621   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MINDATE_PROPERTY);   
     1622   icalproperty_set_mindate((icalproperty*)impl,v);
     1623   return (icalproperty*)impl;
     1624}
     1625
     1626void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v){
     1627   
     1628    icalerror_check_arg_rv( (prop!=0),"prop");
     1629    icalproperty_set_value(prop,icalvalue_new_datetime(v));
     1630}
     1631struct icaltimetype icalproperty_get_mindate(const icalproperty* prop){
     1632    icalerror_check_arg( (prop!=0),"prop");
     1633    return icalvalue_get_datetime(icalproperty_get_value(prop));
     1634}
     1635icalproperty* icalproperty_vanew_multipart(const char* v, ...){
     1636   va_list args;
     1637   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MULTIPART_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1638
     1639   icalproperty_set_multipart((icalproperty*)impl,v);
     1640   va_start(args,v);
     1641   icalproperty_add_parameters(impl, args);
     1642   va_end(args);
     1643   return (icalproperty*)impl;
     1644}
     1645
     1646/* MULTIPART */
     1647icalproperty* icalproperty_new_multipart(const char* v) {
     1648   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_MULTIPART_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1649
     1650   icalproperty_set_multipart((icalproperty*)impl,v);
     1651   return (icalproperty*)impl;
     1652}
     1653
     1654void icalproperty_set_multipart(icalproperty* prop, const char* v){
     1655    icalerror_check_arg_rv( (v!=0),"v");
     1656
     1657    icalerror_check_arg_rv( (prop!=0),"prop");
     1658    icalproperty_set_value(prop,icalvalue_new_text(v));
     1659}
     1660const char* icalproperty_get_multipart(const icalproperty* prop){
     1661    icalerror_check_arg( (prop!=0),"prop");
     1662    return icalvalue_get_text(icalproperty_get_value(prop));
     1663}
     1664icalproperty* icalproperty_vanew_name(const char* v, ...){
     1665   va_list args;
     1666   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_NAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1667
     1668   icalproperty_set_name((icalproperty*)impl,v);
     1669   va_start(args,v);
     1670   icalproperty_add_parameters(impl, args);
     1671   va_end(args);
     1672   return (icalproperty*)impl;
     1673}
     1674
     1675/* NAME */
     1676icalproperty* icalproperty_new_name(const char* v) {
     1677   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_NAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1678
     1679   icalproperty_set_name((icalproperty*)impl,v);
     1680   return (icalproperty*)impl;
     1681}
     1682
     1683void icalproperty_set_name(icalproperty* prop, const char* v){
     1684    icalerror_check_arg_rv( (v!=0),"v");
     1685
     1686    icalerror_check_arg_rv( (prop!=0),"prop");
     1687    icalproperty_set_value(prop,icalvalue_new_text(v));
     1688}
     1689const char* icalproperty_get_name(const icalproperty* prop){
     1690    icalerror_check_arg( (prop!=0),"prop");
     1691    return icalvalue_get_text(icalproperty_get_value(prop));
     1692}
     1693icalproperty* icalproperty_vanew_organizer(const char* v, ...){
     1694   va_list args;
     1695   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1696
     1697   icalproperty_set_organizer((icalproperty*)impl,v);
     1698   va_start(args,v);
     1699   icalproperty_add_parameters(impl, args);
     1700   va_end(args);
     1701   return (icalproperty*)impl;
     1702}
     1703
     1704/* ORGANIZER */
     1705icalproperty* icalproperty_new_organizer(const char* v) {
     1706   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_ORGANIZER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1707
     1708   icalproperty_set_organizer((icalproperty*)impl,v);
     1709   return (icalproperty*)impl;
     1710}
     1711
     1712void icalproperty_set_organizer(icalproperty* prop, const char* v){
     1713    icalerror_check_arg_rv( (v!=0),"v");
     1714
     1715    icalerror_check_arg_rv( (prop!=0),"prop");
     1716    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
     1717}
     1718const char* icalproperty_get_organizer(const icalproperty* prop){
     1719    icalerror_check_arg( (prop!=0),"prop");
     1720    return icalvalue_get_caladdress(icalproperty_get_value(prop));
     1721}
     1722icalproperty* icalproperty_vanew_owner(const char* v, ...){
     1723   va_list args;
     1724   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_OWNER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1725
     1726   icalproperty_set_owner((icalproperty*)impl,v);
     1727   va_start(args,v);
     1728   icalproperty_add_parameters(impl, args);
     1729   va_end(args);
     1730   return (icalproperty*)impl;
     1731}
     1732
     1733/* OWNER */
     1734icalproperty* icalproperty_new_owner(const char* v) {
     1735   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_OWNER_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1736
     1737   icalproperty_set_owner((icalproperty*)impl,v);
     1738   return (icalproperty*)impl;
     1739}
     1740
     1741void icalproperty_set_owner(icalproperty* prop, const char* v){
     1742    icalerror_check_arg_rv( (v!=0),"v");
     1743
     1744    icalerror_check_arg_rv( (prop!=0),"prop");
     1745    icalproperty_set_value(prop,icalvalue_new_text(v));
     1746}
     1747const char* icalproperty_get_owner(const icalproperty* prop){
     1748    icalerror_check_arg( (prop!=0),"prop");
     1749    return icalvalue_get_text(icalproperty_get_value(prop));
     1750}
     1751icalproperty* icalproperty_vanew_percentcomplete(int v, ...){
     1752   va_list args;
     1753   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);   
     1754   icalproperty_set_percentcomplete((icalproperty*)impl,v);
     1755   va_start(args,v);
     1756   icalproperty_add_parameters(impl, args);
     1757   va_end(args);
     1758   return (icalproperty*)impl;
     1759}
     1760
     1761/* PERCENT-COMPLETE */
     1762icalproperty* icalproperty_new_percentcomplete(int v) {
     1763   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERCENTCOMPLETE_PROPERTY);   
     1764   icalproperty_set_percentcomplete((icalproperty*)impl,v);
     1765   return (icalproperty*)impl;
     1766}
     1767
     1768void icalproperty_set_percentcomplete(icalproperty* prop, int v){
     1769   
     1770    icalerror_check_arg_rv( (prop!=0),"prop");
     1771    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1772}
     1773int icalproperty_get_percentcomplete(const icalproperty* prop){
     1774    icalerror_check_arg( (prop!=0),"prop");
     1775    return icalvalue_get_integer(icalproperty_get_value(prop));
     1776}
     1777icalproperty* icalproperty_vanew_permission(const char* v, ...){
     1778   va_list args;
     1779   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERMISSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1780
     1781   icalproperty_set_permission((icalproperty*)impl,v);
     1782   va_start(args,v);
     1783   icalproperty_add_parameters(impl, args);
     1784   va_end(args);
     1785   return (icalproperty*)impl;
     1786}
     1787
     1788/* PERMISSION */
     1789icalproperty* icalproperty_new_permission(const char* v) {
     1790   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PERMISSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1791
     1792   icalproperty_set_permission((icalproperty*)impl,v);
     1793   return (icalproperty*)impl;
     1794}
     1795
     1796void icalproperty_set_permission(icalproperty* prop, const char* v){
     1797    icalerror_check_arg_rv( (v!=0),"v");
     1798
     1799    icalerror_check_arg_rv( (prop!=0),"prop");
     1800    icalproperty_set_value(prop,icalvalue_new_text(v));
     1801}
     1802const char* icalproperty_get_permission(const icalproperty* prop){
     1803    icalerror_check_arg( (prop!=0),"prop");
     1804    return icalvalue_get_text(icalproperty_get_value(prop));
     1805}
     1806icalproperty* icalproperty_vanew_priority(int v, ...){
     1807   va_list args;
     1808   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);   
     1809   icalproperty_set_priority((icalproperty*)impl,v);
     1810   va_start(args,v);
     1811   icalproperty_add_parameters(impl, args);
     1812   va_end(args);
     1813   return (icalproperty*)impl;
     1814}
     1815
     1816/* PRIORITY */
     1817icalproperty* icalproperty_new_priority(int v) {
     1818   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRIORITY_PROPERTY);   
     1819   icalproperty_set_priority((icalproperty*)impl,v);
     1820   return (icalproperty*)impl;
     1821}
     1822
     1823void icalproperty_set_priority(icalproperty* prop, int v){
     1824   
     1825    icalerror_check_arg_rv( (prop!=0),"prop");
     1826    icalproperty_set_value(prop,icalvalue_new_integer(v));
     1827}
     1828int icalproperty_get_priority(const icalproperty* prop){
     1829    icalerror_check_arg( (prop!=0),"prop");
     1830    return icalvalue_get_integer(icalproperty_get_value(prop));
     1831}
     1832icalproperty* icalproperty_vanew_prodid(const char* v, ...){
     1833   va_list args;
     1834   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1835
     1836   icalproperty_set_prodid((icalproperty*)impl,v);
     1837   va_start(args,v);
     1838   icalproperty_add_parameters(impl, args);
     1839   va_end(args);
     1840   return (icalproperty*)impl;
     1841}
     1842
     1843/* PRODID */
     1844icalproperty* icalproperty_new_prodid(const char* v) {
     1845   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_PRODID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1846
     1847   icalproperty_set_prodid((icalproperty*)impl,v);
     1848   return (icalproperty*)impl;
     1849}
     1850
     1851void icalproperty_set_prodid(icalproperty* prop, const char* v){
     1852    icalerror_check_arg_rv( (v!=0),"v");
     1853
     1854    icalerror_check_arg_rv( (prop!=0),"prop");
     1855    icalproperty_set_value(prop,icalvalue_new_text(v));
     1856}
     1857const char* icalproperty_get_prodid(const icalproperty* prop){
     1858    icalerror_check_arg( (prop!=0),"prop");
     1859    return icalvalue_get_text(icalproperty_get_value(prop));
     1860}
     1861icalproperty* icalproperty_vanew_query(const char* v, ...){
     1862   va_list args;
     1863   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1864
     1865   icalproperty_set_query((icalproperty*)impl,v);
     1866   va_start(args,v);
     1867   icalproperty_add_parameters(impl, args);
     1868   va_end(args);
     1869   return (icalproperty*)impl;
     1870}
     1871
     1872/* QUERY */
     1873icalproperty* icalproperty_new_query(const char* v) {
     1874   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1875
     1876   icalproperty_set_query((icalproperty*)impl,v);
     1877   return (icalproperty*)impl;
     1878}
     1879
     1880void icalproperty_set_query(icalproperty* prop, const char* v){
     1881    icalerror_check_arg_rv( (v!=0),"v");
     1882
     1883    icalerror_check_arg_rv( (prop!=0),"prop");
     1884    icalproperty_set_value(prop,icalvalue_new_query(v));
     1885}
     1886const char* icalproperty_get_query(const icalproperty* prop){
     1887    icalerror_check_arg( (prop!=0),"prop");
     1888    return icalvalue_get_query(icalproperty_get_value(prop));
     1889}
     1890icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...){
     1891   va_list args;
     1892   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYLEVEL_PROPERTY);   
     1893   icalproperty_set_querylevel((icalproperty*)impl,v);
     1894   va_start(args,v);
     1895   icalproperty_add_parameters(impl, args);
     1896   va_end(args);
     1897   return (icalproperty*)impl;
     1898}
     1899
     1900/* QUERY-LEVEL */
     1901icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v) {
     1902   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYLEVEL_PROPERTY);   
     1903   icalproperty_set_querylevel((icalproperty*)impl,v);
     1904   return (icalproperty*)impl;
     1905}
     1906
     1907void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v){
     1908   
     1909    icalerror_check_arg_rv( (prop!=0),"prop");
     1910    icalproperty_set_value(prop,icalvalue_new_querylevel(v));
     1911}
     1912enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop){
     1913    icalerror_check_arg( (prop!=0),"prop");
     1914    return icalvalue_get_querylevel(icalproperty_get_value(prop));
     1915}
     1916icalproperty* icalproperty_vanew_queryid(const char* v, ...){
     1917   va_list args;
     1918   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1919
     1920   icalproperty_set_queryid((icalproperty*)impl,v);
     1921   va_start(args,v);
     1922   icalproperty_add_parameters(impl, args);
     1923   va_end(args);
     1924   return (icalproperty*)impl;
     1925}
     1926
     1927/* QUERYID */
     1928icalproperty* icalproperty_new_queryid(const char* v) {
     1929   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1930
     1931   icalproperty_set_queryid((icalproperty*)impl,v);
     1932   return (icalproperty*)impl;
     1933}
     1934
     1935void icalproperty_set_queryid(icalproperty* prop, const char* v){
     1936    icalerror_check_arg_rv( (v!=0),"v");
     1937
     1938    icalerror_check_arg_rv( (prop!=0),"prop");
     1939    icalproperty_set_value(prop,icalvalue_new_text(v));
     1940}
     1941const char* icalproperty_get_queryid(const icalproperty* prop){
     1942    icalerror_check_arg( (prop!=0),"prop");
     1943    return icalvalue_get_text(icalproperty_get_value(prop));
     1944}
     1945icalproperty* icalproperty_vanew_queryname(const char* v, ...){
     1946   va_list args;
     1947   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1948
     1949   icalproperty_set_queryname((icalproperty*)impl,v);
     1950   va_start(args,v);
     1951   icalproperty_add_parameters(impl, args);
     1952   va_end(args);
     1953   return (icalproperty*)impl;
     1954}
     1955
     1956/* QUERYNAME */
     1957icalproperty* icalproperty_new_queryname(const char* v) {
     1958   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_QUERYNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     1959
     1960   icalproperty_set_queryname((icalproperty*)impl,v);
     1961   return (icalproperty*)impl;
     1962}
     1963
     1964void icalproperty_set_queryname(icalproperty* prop, const char* v){
     1965    icalerror_check_arg_rv( (v!=0),"v");
     1966
     1967    icalerror_check_arg_rv( (prop!=0),"prop");
     1968    icalproperty_set_value(prop,icalvalue_new_text(v));
     1969}
     1970const char* icalproperty_get_queryname(const icalproperty* prop){
     1971    icalerror_check_arg( (prop!=0),"prop");
     1972    return icalvalue_get_text(icalproperty_get_value(prop));
     1973}
     1974icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...){
     1975   va_list args;
     1976   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);   
     1977   icalproperty_set_rdate((icalproperty*)impl,v);
     1978   va_start(args,v);
     1979   icalproperty_add_parameters(impl, args);
     1980   va_end(args);
     1981   return (icalproperty*)impl;
     1982}
     1983
     1984/* RDATE */
     1985icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v) {
     1986   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RDATE_PROPERTY);   
     1987   icalproperty_set_rdate((icalproperty*)impl,v);
     1988   return (icalproperty*)impl;
     1989}
     1990
     1991void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v){
     1992   
     1993    icalerror_check_arg_rv( (prop!=0),"prop");
     1994    icalproperty_set_value(prop,icalvalue_new_datetimeperiod(v));
     1995}
     1996struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop){
     1997    icalerror_check_arg( (prop!=0),"prop");
     1998    return icalvalue_get_datetimeperiod(icalproperty_get_value(prop));
     1999}
     2000icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...){
     2001   va_list args;
     2002   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURACCEPTED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2003
     2004   icalproperty_set_recuraccepted((icalproperty*)impl,v);
     2005   va_start(args,v);
     2006   icalproperty_add_parameters(impl, args);
     2007   va_end(args);
     2008   return (icalproperty*)impl;
     2009}
     2010
     2011/* RECUR-ACCEPTED */
     2012icalproperty* icalproperty_new_recuraccepted(const char* v) {
     2013   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURACCEPTED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2014
     2015   icalproperty_set_recuraccepted((icalproperty*)impl,v);
     2016   return (icalproperty*)impl;
     2017}
     2018
     2019void icalproperty_set_recuraccepted(icalproperty* prop, const char* v){
     2020    icalerror_check_arg_rv( (v!=0),"v");
     2021
     2022    icalerror_check_arg_rv( (prop!=0),"prop");
     2023    icalproperty_set_value(prop,icalvalue_new_text(v));
     2024}
     2025const char* icalproperty_get_recuraccepted(const icalproperty* prop){
     2026    icalerror_check_arg( (prop!=0),"prop");
     2027    return icalvalue_get_text(icalproperty_get_value(prop));
     2028}
     2029icalproperty* icalproperty_vanew_recurexpand(const char* v, ...){
     2030   va_list args;
     2031   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECUREXPAND_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2032
     2033   icalproperty_set_recurexpand((icalproperty*)impl,v);
     2034   va_start(args,v);
     2035   icalproperty_add_parameters(impl, args);
     2036   va_end(args);
     2037   return (icalproperty*)impl;
     2038}
     2039
     2040/* RECUR-EXPAND */
     2041icalproperty* icalproperty_new_recurexpand(const char* v) {
     2042   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECUREXPAND_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2043
     2044   icalproperty_set_recurexpand((icalproperty*)impl,v);
     2045   return (icalproperty*)impl;
     2046}
     2047
     2048void icalproperty_set_recurexpand(icalproperty* prop, const char* v){
     2049    icalerror_check_arg_rv( (v!=0),"v");
     2050
     2051    icalerror_check_arg_rv( (prop!=0),"prop");
     2052    icalproperty_set_value(prop,icalvalue_new_text(v));
     2053}
     2054const char* icalproperty_get_recurexpand(const icalproperty* prop){
     2055    icalerror_check_arg( (prop!=0),"prop");
     2056    return icalvalue_get_text(icalproperty_get_value(prop));
     2057}
     2058icalproperty* icalproperty_vanew_recurlimit(const char* v, ...){
     2059   va_list args;
     2060   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURLIMIT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2061
     2062   icalproperty_set_recurlimit((icalproperty*)impl,v);
     2063   va_start(args,v);
     2064   icalproperty_add_parameters(impl, args);
     2065   va_end(args);
     2066   return (icalproperty*)impl;
     2067}
     2068
     2069/* RECUR-LIMIT */
     2070icalproperty* icalproperty_new_recurlimit(const char* v) {
     2071   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURLIMIT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2072
     2073   icalproperty_set_recurlimit((icalproperty*)impl,v);
     2074   return (icalproperty*)impl;
     2075}
     2076
     2077void icalproperty_set_recurlimit(icalproperty* prop, const char* v){
     2078    icalerror_check_arg_rv( (v!=0),"v");
     2079
     2080    icalerror_check_arg_rv( (prop!=0),"prop");
     2081    icalproperty_set_value(prop,icalvalue_new_text(v));
     2082}
     2083const char* icalproperty_get_recurlimit(const icalproperty* prop){
     2084    icalerror_check_arg( (prop!=0),"prop");
     2085    return icalvalue_get_text(icalproperty_get_value(prop));
     2086}
     2087icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...){
     2088   va_list args;
     2089   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);   
     2090   icalproperty_set_recurrenceid((icalproperty*)impl,v);
     2091   va_start(args,v);
     2092   icalproperty_add_parameters(impl, args);
     2093   va_end(args);
     2094   return (icalproperty*)impl;
     2095}
     2096
     2097/* RECURRENCE-ID */
     2098icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v) {
     2099   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RECURRENCEID_PROPERTY);   
     2100   icalproperty_set_recurrenceid((icalproperty*)impl,v);
     2101   return (icalproperty*)impl;
     2102}
     2103
     2104void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v){
     2105    icalvalue *value;
     2106   
     2107    icalerror_check_arg_rv( (prop!=0),"prop");
     2108    if (v.is_date)
     2109        value = icalvalue_new_date(v);
     2110    else
     2111        value = icalvalue_new_datetime(v);
     2112    icalproperty_set_value(prop,value);
     2113}
     2114struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop){
     2115    icalerror_check_arg( (prop!=0),"prop");
     2116    return icalvalue_get_datetime(icalproperty_get_value(prop));
     2117}
     2118icalproperty* icalproperty_vanew_relatedto(const char* v, ...){
     2119   va_list args;
     2120   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2121
     2122   icalproperty_set_relatedto((icalproperty*)impl,v);
     2123   va_start(args,v);
     2124   icalproperty_add_parameters(impl, args);
     2125   va_end(args);
     2126   return (icalproperty*)impl;
     2127}
     2128
     2129/* RELATED-TO */
     2130icalproperty* icalproperty_new_relatedto(const char* v) {
     2131   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELATEDTO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2132
     2133   icalproperty_set_relatedto((icalproperty*)impl,v);
     2134   return (icalproperty*)impl;
     2135}
     2136
     2137void icalproperty_set_relatedto(icalproperty* prop, const char* v){
     2138    icalerror_check_arg_rv( (v!=0),"v");
     2139
     2140    icalerror_check_arg_rv( (prop!=0),"prop");
     2141    icalproperty_set_value(prop,icalvalue_new_text(v));
     2142}
     2143const char* icalproperty_get_relatedto(const icalproperty* prop){
     2144    icalerror_check_arg( (prop!=0),"prop");
     2145    return icalvalue_get_text(icalproperty_get_value(prop));
     2146}
     2147icalproperty* icalproperty_vanew_relcalid(const char* v, ...){
     2148   va_list args;
     2149   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELCALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2150
     2151   icalproperty_set_relcalid((icalproperty*)impl,v);
     2152   va_start(args,v);
     2153   icalproperty_add_parameters(impl, args);
     2154   va_end(args);
     2155   return (icalproperty*)impl;
     2156}
     2157
     2158/* RELCALID */
     2159icalproperty* icalproperty_new_relcalid(const char* v) {
     2160   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RELCALID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2161
     2162   icalproperty_set_relcalid((icalproperty*)impl,v);
     2163   return (icalproperty*)impl;
     2164}
     2165
     2166void icalproperty_set_relcalid(icalproperty* prop, const char* v){
     2167    icalerror_check_arg_rv( (v!=0),"v");
     2168
     2169    icalerror_check_arg_rv( (prop!=0),"prop");
     2170    icalproperty_set_value(prop,icalvalue_new_text(v));
     2171}
     2172const char* icalproperty_get_relcalid(const icalproperty* prop){
     2173    icalerror_check_arg( (prop!=0),"prop");
     2174    return icalvalue_get_text(icalproperty_get_value(prop));
     2175}
     2176icalproperty* icalproperty_vanew_repeat(int v, ...){
     2177   va_list args;
     2178   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);   
     2179   icalproperty_set_repeat((icalproperty*)impl,v);
     2180   va_start(args,v);
     2181   icalproperty_add_parameters(impl, args);
     2182   va_end(args);
     2183   return (icalproperty*)impl;
     2184}
     2185
     2186/* REPEAT */
     2187icalproperty* icalproperty_new_repeat(int v) {
     2188   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REPEAT_PROPERTY);   
     2189   icalproperty_set_repeat((icalproperty*)impl,v);
     2190   return (icalproperty*)impl;
     2191}
     2192
     2193void icalproperty_set_repeat(icalproperty* prop, int v){
     2194   
     2195    icalerror_check_arg_rv( (prop!=0),"prop");
     2196    icalproperty_set_value(prop,icalvalue_new_integer(v));
     2197}
     2198int icalproperty_get_repeat(const icalproperty* prop){
     2199    icalerror_check_arg( (prop!=0),"prop");
     2200    return icalvalue_get_integer(icalproperty_get_value(prop));
     2201}
     2202icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...){
     2203   va_list args;
     2204   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);   
     2205   icalproperty_set_requeststatus((icalproperty*)impl,v);
     2206   va_start(args,v);
     2207   icalproperty_add_parameters(impl, args);
     2208   va_end(args);
     2209   return (icalproperty*)impl;
     2210}
     2211
     2212/* REQUEST-STATUS */
     2213icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v) {
     2214   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_REQUESTSTATUS_PROPERTY);   
     2215   icalproperty_set_requeststatus((icalproperty*)impl,v);
     2216   return (icalproperty*)impl;
     2217}
     2218
     2219void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v){
     2220   
     2221    icalerror_check_arg_rv( (prop!=0),"prop");
     2222    icalproperty_set_value(prop,icalvalue_new_requeststatus(v));
     2223}
     2224struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop){
     2225    icalerror_check_arg( (prop!=0),"prop");
     2226    return icalvalue_get_requeststatus(icalproperty_get_value(prop));
     2227}
     2228icalproperty* icalproperty_vanew_resources(const char* v, ...){
     2229   va_list args;
     2230   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2231
     2232   icalproperty_set_resources((icalproperty*)impl,v);
     2233   va_start(args,v);
     2234   icalproperty_add_parameters(impl, args);
     2235   va_end(args);
     2236   return (icalproperty*)impl;
     2237}
     2238
     2239/* RESOURCES */
     2240icalproperty* icalproperty_new_resources(const char* v) {
     2241   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESOURCES_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2242
     2243   icalproperty_set_resources((icalproperty*)impl,v);
     2244   return (icalproperty*)impl;
     2245}
     2246
     2247void icalproperty_set_resources(icalproperty* prop, const char* v){
     2248    icalerror_check_arg_rv( (v!=0),"v");
     2249
     2250    icalerror_check_arg_rv( (prop!=0),"prop");
     2251    icalproperty_set_value(prop,icalvalue_new_text(v));
     2252}
     2253const char* icalproperty_get_resources(const icalproperty* prop){
     2254    icalerror_check_arg( (prop!=0),"prop");
     2255    return icalvalue_get_text(icalproperty_get_value(prop));
     2256}
     2257icalproperty* icalproperty_vanew_restriction(const char* v, ...){
     2258   va_list args;
     2259   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESTRICTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2260
     2261   icalproperty_set_restriction((icalproperty*)impl,v);
     2262   va_start(args,v);
     2263   icalproperty_add_parameters(impl, args);
     2264   va_end(args);
     2265   return (icalproperty*)impl;
     2266}
     2267
     2268/* RESTRICTION */
     2269icalproperty* icalproperty_new_restriction(const char* v) {
     2270   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RESTRICTION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2271
     2272   icalproperty_set_restriction((icalproperty*)impl,v);
     2273   return (icalproperty*)impl;
     2274}
     2275
     2276void icalproperty_set_restriction(icalproperty* prop, const char* v){
     2277    icalerror_check_arg_rv( (v!=0),"v");
     2278
     2279    icalerror_check_arg_rv( (prop!=0),"prop");
     2280    icalproperty_set_value(prop,icalvalue_new_query(v));
     2281}
     2282const char* icalproperty_get_restriction(const icalproperty* prop){
     2283    icalerror_check_arg( (prop!=0),"prop");
     2284    return icalvalue_get_query(icalproperty_get_value(prop));
     2285}
     2286icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...){
     2287   va_list args;
     2288   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);   
     2289   icalproperty_set_rrule((icalproperty*)impl,v);
     2290   va_start(args,v);
     2291   icalproperty_add_parameters(impl, args);
     2292   va_end(args);
     2293   return (icalproperty*)impl;
     2294}
     2295
     2296/* RRULE */
     2297icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v) {
     2298   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_RRULE_PROPERTY);   
     2299   icalproperty_set_rrule((icalproperty*)impl,v);
     2300   return (icalproperty*)impl;
     2301}
     2302
     2303void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v){
     2304   
     2305    icalerror_check_arg_rv( (prop!=0),"prop");
     2306    icalproperty_set_value(prop,icalvalue_new_recur(v));
     2307}
     2308struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop){
     2309    icalerror_check_arg( (prop!=0),"prop");
     2310    return icalvalue_get_recur(icalproperty_get_value(prop));
     2311}
     2312icalproperty* icalproperty_vanew_scope(const char* v, ...){
     2313   va_list args;
     2314   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2315
     2316   icalproperty_set_scope((icalproperty*)impl,v);
     2317   va_start(args,v);
     2318   icalproperty_add_parameters(impl, args);
     2319   va_end(args);
     2320   return (icalproperty*)impl;
     2321}
     2322
     2323/* SCOPE */
     2324icalproperty* icalproperty_new_scope(const char* v) {
     2325   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SCOPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2326
     2327   icalproperty_set_scope((icalproperty*)impl,v);
     2328   return (icalproperty*)impl;
     2329}
     2330
     2331void icalproperty_set_scope(icalproperty* prop, const char* v){
     2332    icalerror_check_arg_rv( (v!=0),"v");
     2333
     2334    icalerror_check_arg_rv( (prop!=0),"prop");
     2335    icalproperty_set_value(prop,icalvalue_new_text(v));
     2336}
     2337const char* icalproperty_get_scope(const icalproperty* prop){
     2338    icalerror_check_arg( (prop!=0),"prop");
     2339    return icalvalue_get_text(icalproperty_get_value(prop));
     2340}
     2341icalproperty* icalproperty_vanew_sequence(int v, ...){
     2342   va_list args;
     2343   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);   
     2344   icalproperty_set_sequence((icalproperty*)impl,v);
     2345   va_start(args,v);
     2346   icalproperty_add_parameters(impl, args);
     2347   va_end(args);
     2348   return (icalproperty*)impl;
     2349}
     2350
     2351/* SEQUENCE */
     2352icalproperty* icalproperty_new_sequence(int v) {
     2353   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SEQUENCE_PROPERTY);   
     2354   icalproperty_set_sequence((icalproperty*)impl,v);
     2355   return (icalproperty*)impl;
     2356}
     2357
     2358void icalproperty_set_sequence(icalproperty* prop, int v){
     2359   
     2360    icalerror_check_arg_rv( (prop!=0),"prop");
     2361    icalproperty_set_value(prop,icalvalue_new_integer(v));
     2362}
     2363int icalproperty_get_sequence(const icalproperty* prop){
     2364    icalerror_check_arg( (prop!=0),"prop");
     2365    return icalvalue_get_integer(icalproperty_get_value(prop));
     2366}
     2367icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...){
     2368   va_list args;
     2369   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);   
     2370   icalproperty_set_status((icalproperty*)impl,v);
     2371   va_start(args,v);
     2372   icalproperty_add_parameters(impl, args);
     2373   va_end(args);
     2374   return (icalproperty*)impl;
     2375}
     2376
     2377/* STATUS */
     2378icalproperty* icalproperty_new_status(enum icalproperty_status v) {
     2379   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STATUS_PROPERTY);   
     2380   icalproperty_set_status((icalproperty*)impl,v);
     2381   return (icalproperty*)impl;
     2382}
     2383
     2384void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v){
     2385   
     2386    icalerror_check_arg_rv( (prop!=0),"prop");
     2387    icalproperty_set_value(prop,icalvalue_new_status(v));
     2388}
     2389enum icalproperty_status icalproperty_get_status(const icalproperty* prop){
     2390    icalerror_check_arg( (prop!=0),"prop");
     2391    return icalvalue_get_status(icalproperty_get_value(prop));
     2392}
     2393icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...){
     2394   va_list args;
     2395   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STORESEXPANDED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2396
     2397   icalproperty_set_storesexpanded((icalproperty*)impl,v);
     2398   va_start(args,v);
     2399   icalproperty_add_parameters(impl, args);
     2400   va_end(args);
     2401   return (icalproperty*)impl;
     2402}
     2403
     2404/* STORES-EXPANDED */
     2405icalproperty* icalproperty_new_storesexpanded(const char* v) {
     2406   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_STORESEXPANDED_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2407
     2408   icalproperty_set_storesexpanded((icalproperty*)impl,v);
     2409   return (icalproperty*)impl;
     2410}
     2411
     2412void icalproperty_set_storesexpanded(icalproperty* prop, const char* v){
     2413    icalerror_check_arg_rv( (v!=0),"v");
     2414
     2415    icalerror_check_arg_rv( (prop!=0),"prop");
     2416    icalproperty_set_value(prop,icalvalue_new_text(v));
     2417}
     2418const char* icalproperty_get_storesexpanded(const icalproperty* prop){
     2419    icalerror_check_arg( (prop!=0),"prop");
     2420    return icalvalue_get_text(icalproperty_get_value(prop));
     2421}
     2422icalproperty* icalproperty_vanew_summary(const char* v, ...){
     2423   va_list args;
     2424   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2425
     2426   icalproperty_set_summary((icalproperty*)impl,v);
     2427   va_start(args,v);
     2428   icalproperty_add_parameters(impl, args);
     2429   va_end(args);
     2430   return (icalproperty*)impl;
     2431}
     2432
     2433/* SUMMARY */
     2434icalproperty* icalproperty_new_summary(const char* v) {
     2435   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_SUMMARY_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2436
     2437   icalproperty_set_summary((icalproperty*)impl,v);
     2438   return (icalproperty*)impl;
     2439}
     2440
     2441void icalproperty_set_summary(icalproperty* prop, const char* v){
     2442    icalerror_check_arg_rv( (v!=0),"v");
     2443
     2444    icalerror_check_arg_rv( (prop!=0),"prop");
     2445    icalproperty_set_value(prop,icalvalue_new_text(v));
     2446}
     2447const char* icalproperty_get_summary(const icalproperty* prop){
     2448    icalerror_check_arg( (prop!=0),"prop");
     2449    return icalvalue_get_text(icalproperty_get_value(prop));
     2450}
     2451icalproperty* icalproperty_vanew_target(const char* v, ...){
     2452   va_list args;
     2453   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2454
     2455   icalproperty_set_target((icalproperty*)impl,v);
     2456   va_start(args,v);
     2457   icalproperty_add_parameters(impl, args);
     2458   va_end(args);
     2459   return (icalproperty*)impl;
     2460}
     2461
     2462/* TARGET */
     2463icalproperty* icalproperty_new_target(const char* v) {
     2464   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TARGET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2465
     2466   icalproperty_set_target((icalproperty*)impl,v);
     2467   return (icalproperty*)impl;
     2468}
     2469
     2470void icalproperty_set_target(icalproperty* prop, const char* v){
     2471    icalerror_check_arg_rv( (v!=0),"v");
     2472
     2473    icalerror_check_arg_rv( (prop!=0),"prop");
     2474    icalproperty_set_value(prop,icalvalue_new_caladdress(v));
     2475}
     2476const char* icalproperty_get_target(const icalproperty* prop){
     2477    icalerror_check_arg( (prop!=0),"prop");
     2478    return icalvalue_get_caladdress(icalproperty_get_value(prop));
     2479}
     2480icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...){
     2481   va_list args;
     2482   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);   
     2483   icalproperty_set_transp((icalproperty*)impl,v);
     2484   va_start(args,v);
     2485   icalproperty_add_parameters(impl, args);
     2486   va_end(args);
     2487   return (icalproperty*)impl;
     2488}
     2489
     2490/* TRANSP */
     2491icalproperty* icalproperty_new_transp(enum icalproperty_transp v) {
     2492   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRANSP_PROPERTY);   
     2493   icalproperty_set_transp((icalproperty*)impl,v);
     2494   return (icalproperty*)impl;
     2495}
     2496
     2497void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v){
     2498   
     2499    icalerror_check_arg_rv( (prop!=0),"prop");
     2500    icalproperty_set_value(prop,icalvalue_new_transp(v));
     2501}
     2502enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop){
     2503    icalerror_check_arg( (prop!=0),"prop");
     2504    return icalvalue_get_transp(icalproperty_get_value(prop));
     2505}
     2506icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...){
     2507   va_list args;
     2508   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);   
     2509   icalproperty_set_trigger((icalproperty*)impl,v);
     2510   va_start(args,v);
     2511   icalproperty_add_parameters(impl, args);
     2512   va_end(args);
     2513   return (icalproperty*)impl;
     2514}
     2515
     2516/* TRIGGER */
     2517icalproperty* icalproperty_new_trigger(struct icaltriggertype v) {
     2518   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TRIGGER_PROPERTY);   
     2519   icalproperty_set_trigger((icalproperty*)impl,v);
     2520   return (icalproperty*)impl;
     2521}
     2522
     2523void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v){
     2524   
     2525    icalerror_check_arg_rv( (prop!=0),"prop");
     2526    icalproperty_set_value(prop,icalvalue_new_trigger(v));
     2527}
     2528struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop){
     2529    icalerror_check_arg( (prop!=0),"prop");
     2530    return icalvalue_get_trigger(icalproperty_get_value(prop));
     2531}
     2532icalproperty* icalproperty_vanew_tzid(const char* v, ...){
     2533   va_list args;
     2534   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2535
     2536   icalproperty_set_tzid((icalproperty*)impl,v);
     2537   va_start(args,v);
     2538   icalproperty_add_parameters(impl, args);
     2539   va_end(args);
     2540   return (icalproperty*)impl;
     2541}
     2542
     2543/* TZID */
     2544icalproperty* icalproperty_new_tzid(const char* v) {
     2545   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2546
     2547   icalproperty_set_tzid((icalproperty*)impl,v);
     2548   return (icalproperty*)impl;
     2549}
     2550
     2551void icalproperty_set_tzid(icalproperty* prop, const char* v){
     2552    icalerror_check_arg_rv( (v!=0),"v");
     2553
     2554    icalerror_check_arg_rv( (prop!=0),"prop");
     2555    icalproperty_set_value(prop,icalvalue_new_text(v));
     2556}
     2557const char* icalproperty_get_tzid(const icalproperty* prop){
     2558    icalerror_check_arg( (prop!=0),"prop");
     2559    return icalvalue_get_text(icalproperty_get_value(prop));
     2560}
     2561icalproperty* icalproperty_vanew_tzname(const char* v, ...){
     2562   va_list args;
     2563   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2564
     2565   icalproperty_set_tzname((icalproperty*)impl,v);
     2566   va_start(args,v);
     2567   icalproperty_add_parameters(impl, args);
     2568   va_end(args);
     2569   return (icalproperty*)impl;
     2570}
     2571
     2572/* TZNAME */
     2573icalproperty* icalproperty_new_tzname(const char* v) {
     2574   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZNAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2575
     2576   icalproperty_set_tzname((icalproperty*)impl,v);
     2577   return (icalproperty*)impl;
     2578}
     2579
     2580void icalproperty_set_tzname(icalproperty* prop, const char* v){
     2581    icalerror_check_arg_rv( (v!=0),"v");
     2582
     2583    icalerror_check_arg_rv( (prop!=0),"prop");
     2584    icalproperty_set_value(prop,icalvalue_new_text(v));
     2585}
     2586const char* icalproperty_get_tzname(const icalproperty* prop){
     2587    icalerror_check_arg( (prop!=0),"prop");
     2588    return icalvalue_get_text(icalproperty_get_value(prop));
     2589}
     2590icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...){
     2591   va_list args;
     2592   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);   
     2593   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
     2594   va_start(args,v);
     2595   icalproperty_add_parameters(impl, args);
     2596   va_end(args);
     2597   return (icalproperty*)impl;
     2598}
     2599
     2600/* TZOFFSETFROM */
     2601icalproperty* icalproperty_new_tzoffsetfrom(int v) {
     2602   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETFROM_PROPERTY);   
     2603   icalproperty_set_tzoffsetfrom((icalproperty*)impl,v);
     2604   return (icalproperty*)impl;
     2605}
     2606
     2607void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v){
     2608   
     2609    icalerror_check_arg_rv( (prop!=0),"prop");
     2610    icalproperty_set_value(prop,icalvalue_new_utcoffset(v));
     2611}
     2612int icalproperty_get_tzoffsetfrom(const icalproperty* prop){
     2613    icalerror_check_arg( (prop!=0),"prop");
     2614    return icalvalue_get_utcoffset(icalproperty_get_value(prop));
     2615}
     2616icalproperty* icalproperty_vanew_tzoffsetto(int v, ...){
     2617   va_list args;
     2618   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);   
     2619   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
     2620   va_start(args,v);
     2621   icalproperty_add_parameters(impl, args);
     2622   va_end(args);
     2623   return (icalproperty*)impl;
     2624}
     2625
     2626/* TZOFFSETTO */
     2627icalproperty* icalproperty_new_tzoffsetto(int v) {
     2628   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZOFFSETTO_PROPERTY);   
     2629   icalproperty_set_tzoffsetto((icalproperty*)impl,v);
     2630   return (icalproperty*)impl;
     2631}
     2632
     2633void icalproperty_set_tzoffsetto(icalproperty* prop, int v){
     2634   
     2635    icalerror_check_arg_rv( (prop!=0),"prop");
     2636    icalproperty_set_value(prop,icalvalue_new_utcoffset(v));
     2637}
     2638int icalproperty_get_tzoffsetto(const icalproperty* prop){
     2639    icalerror_check_arg( (prop!=0),"prop");
     2640    return icalvalue_get_utcoffset(icalproperty_get_value(prop));
     2641}
     2642icalproperty* icalproperty_vanew_tzurl(const char* v, ...){
     2643   va_list args;
     2644   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2645
     2646   icalproperty_set_tzurl((icalproperty*)impl,v);
     2647   va_start(args,v);
     2648   icalproperty_add_parameters(impl, args);
     2649   va_end(args);
     2650   return (icalproperty*)impl;
     2651}
     2652
     2653/* TZURL */
     2654icalproperty* icalproperty_new_tzurl(const char* v) {
     2655   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_TZURL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2656
     2657   icalproperty_set_tzurl((icalproperty*)impl,v);
     2658   return (icalproperty*)impl;
     2659}
     2660
     2661void icalproperty_set_tzurl(icalproperty* prop, const char* v){
     2662    icalerror_check_arg_rv( (v!=0),"v");
     2663
     2664    icalerror_check_arg_rv( (prop!=0),"prop");
     2665    icalproperty_set_value(prop,icalvalue_new_uri(v));
     2666}
     2667const char* icalproperty_get_tzurl(const icalproperty* prop){
     2668    icalerror_check_arg( (prop!=0),"prop");
     2669    return icalvalue_get_uri(icalproperty_get_value(prop));
     2670}
     2671icalproperty* icalproperty_vanew_uid(const char* v, ...){
     2672   va_list args;
     2673   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_UID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2674
     2675   icalproperty_set_uid((icalproperty*)impl,v);
     2676   va_start(args,v);
     2677   icalproperty_add_parameters(impl, args);
     2678   va_end(args);
     2679   return (icalproperty*)impl;
     2680}
     2681
     2682/* UID */
     2683icalproperty* icalproperty_new_uid(const char* v) {
     2684   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_UID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2685
     2686   icalproperty_set_uid((icalproperty*)impl,v);
     2687   return (icalproperty*)impl;
     2688}
     2689
     2690void icalproperty_set_uid(icalproperty* prop, const char* v){
     2691    icalerror_check_arg_rv( (v!=0),"v");
     2692
     2693    icalerror_check_arg_rv( (prop!=0),"prop");
     2694    icalproperty_set_value(prop,icalvalue_new_text(v));
     2695}
     2696const char* icalproperty_get_uid(const icalproperty* prop){
     2697    icalerror_check_arg( (prop!=0),"prop");
     2698    return icalvalue_get_text(icalproperty_get_value(prop));
     2699}
     2700icalproperty* icalproperty_vanew_url(const char* v, ...){
     2701   va_list args;
     2702   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_URL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2703
     2704   icalproperty_set_url((icalproperty*)impl,v);
     2705   va_start(args,v);
     2706   icalproperty_add_parameters(impl, args);
     2707   va_end(args);
     2708   return (icalproperty*)impl;
     2709}
     2710
     2711/* URL */
     2712icalproperty* icalproperty_new_url(const char* v) {
     2713   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_URL_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2714
     2715   icalproperty_set_url((icalproperty*)impl,v);
     2716   return (icalproperty*)impl;
     2717}
     2718
     2719void icalproperty_set_url(icalproperty* prop, const char* v){
     2720    icalerror_check_arg_rv( (v!=0),"v");
     2721
     2722    icalerror_check_arg_rv( (prop!=0),"prop");
     2723    icalproperty_set_value(prop,icalvalue_new_uri(v));
     2724}
     2725const char* icalproperty_get_url(const icalproperty* prop){
     2726    icalerror_check_arg( (prop!=0),"prop");
     2727    return icalvalue_get_uri(icalproperty_get_value(prop));
     2728}
     2729icalproperty* icalproperty_vanew_version(const char* v, ...){
     2730   va_list args;
     2731   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2732
     2733   icalproperty_set_version((icalproperty*)impl,v);
     2734   va_start(args,v);
     2735   icalproperty_add_parameters(impl, args);
     2736   va_end(args);
     2737   return (icalproperty*)impl;
     2738}
     2739
     2740/* VERSION */
     2741icalproperty* icalproperty_new_version(const char* v) {
     2742   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_VERSION_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2743
     2744   icalproperty_set_version((icalproperty*)impl,v);
     2745   return (icalproperty*)impl;
     2746}
     2747
     2748void icalproperty_set_version(icalproperty* prop, const char* v){
     2749    icalerror_check_arg_rv( (v!=0),"v");
     2750
     2751    icalerror_check_arg_rv( (prop!=0),"prop");
     2752    icalproperty_set_value(prop,icalvalue_new_text(v));
     2753}
     2754const char* icalproperty_get_version(const icalproperty* prop){
     2755    icalerror_check_arg( (prop!=0),"prop");
     2756    return icalvalue_get_text(icalproperty_get_value(prop));
     2757}
     2758icalproperty* icalproperty_vanew_x(const char* v, ...){
     2759   va_list args;
     2760   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_X_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2761
     2762   icalproperty_set_x((icalproperty*)impl,v);
     2763   va_start(args,v);
     2764   icalproperty_add_parameters(impl, args);
     2765   va_end(args);
     2766   return (icalproperty*)impl;
     2767}
     2768
     2769/* X */
     2770icalproperty* icalproperty_new_x(const char* v) {
     2771   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_X_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2772
     2773   icalproperty_set_x((icalproperty*)impl,v);
     2774   return (icalproperty*)impl;
     2775}
     2776
     2777void icalproperty_set_x(icalproperty* prop, const char* v){
     2778    icalerror_check_arg_rv( (v!=0),"v");
     2779
     2780    icalerror_check_arg_rv( (prop!=0),"prop");
     2781    icalproperty_set_value(prop,icalvalue_new_x(v));
     2782}
     2783const char* icalproperty_get_x(const icalproperty* prop){
     2784    icalerror_check_arg( (prop!=0),"prop");
     2785    return icalvalue_get_x(icalproperty_get_value(prop));
     2786}
     2787icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...){
     2788   va_list args;
     2789   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLASS_PROPERTY);   
     2790   icalproperty_set_xlicclass((icalproperty*)impl,v);
     2791   va_start(args,v);
     2792   icalproperty_add_parameters(impl, args);
     2793   va_end(args);
     2794   return (icalproperty*)impl;
     2795}
     2796
     2797/* X-LIC-CLASS */
     2798icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v) {
     2799   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLASS_PROPERTY);   
     2800   icalproperty_set_xlicclass((icalproperty*)impl,v);
     2801   return (icalproperty*)impl;
     2802}
     2803
     2804void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v){
     2805   
     2806    icalerror_check_arg_rv( (prop!=0),"prop");
     2807    icalproperty_set_value(prop,icalvalue_new_xlicclass(v));
     2808}
     2809enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop){
     2810    icalerror_check_arg( (prop!=0),"prop");
     2811    return icalvalue_get_xlicclass(icalproperty_get_value(prop));
     2812}
     2813icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...){
     2814   va_list args;
     2815   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2816
     2817   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
     2818   va_start(args,v);
     2819   icalproperty_add_parameters(impl, args);
     2820   va_end(args);
     2821   return (icalproperty*)impl;
     2822}
     2823
     2824/* X-LIC-CLUSTERCOUNT */
     2825icalproperty* icalproperty_new_xlicclustercount(const char* v) {
     2826   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICCLUSTERCOUNT_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2827
     2828   icalproperty_set_xlicclustercount((icalproperty*)impl,v);
     2829   return (icalproperty*)impl;
     2830}
     2831
     2832void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v){
     2833    icalerror_check_arg_rv( (v!=0),"v");
     2834
     2835    icalerror_check_arg_rv( (prop!=0),"prop");
     2836    icalproperty_set_value(prop,icalvalue_new_string(v));
     2837}
     2838const char* icalproperty_get_xlicclustercount(const icalproperty* prop){
     2839    icalerror_check_arg( (prop!=0),"prop");
     2840    return icalvalue_get_string(icalproperty_get_value(prop));
     2841}
     2842icalproperty* icalproperty_vanew_xlicerror(const char* v, ...){
     2843   va_list args;
     2844   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2845
     2846   icalproperty_set_xlicerror((icalproperty*)impl,v);
     2847   va_start(args,v);
     2848   icalproperty_add_parameters(impl, args);
     2849   va_end(args);
     2850   return (icalproperty*)impl;
     2851}
     2852
     2853/* X-LIC-ERROR */
     2854icalproperty* icalproperty_new_xlicerror(const char* v) {
     2855   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICERROR_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2856
     2857   icalproperty_set_xlicerror((icalproperty*)impl,v);
     2858   return (icalproperty*)impl;
     2859}
     2860
     2861void icalproperty_set_xlicerror(icalproperty* prop, const char* v){
     2862    icalerror_check_arg_rv( (v!=0),"v");
     2863
     2864    icalerror_check_arg_rv( (prop!=0),"prop");
     2865    icalproperty_set_value(prop,icalvalue_new_text(v));
     2866}
     2867const char* icalproperty_get_xlicerror(const icalproperty* prop){
     2868    icalerror_check_arg( (prop!=0),"prop");
     2869    return icalvalue_get_text(icalproperty_get_value(prop));
     2870}
     2871icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...){
     2872   va_list args;
     2873   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2874
     2875   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
     2876   va_start(args,v);
     2877   icalproperty_add_parameters(impl, args);
     2878   va_end(args);
     2879   return (icalproperty*)impl;
     2880}
     2881
     2882/* X-LIC-MIMECHARSET */
     2883icalproperty* icalproperty_new_xlicmimecharset(const char* v) {
     2884   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECHARSET_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2885
     2886   icalproperty_set_xlicmimecharset((icalproperty*)impl,v);
     2887   return (icalproperty*)impl;
     2888}
     2889
     2890void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v){
     2891    icalerror_check_arg_rv( (v!=0),"v");
     2892
     2893    icalerror_check_arg_rv( (prop!=0),"prop");
     2894    icalproperty_set_value(prop,icalvalue_new_string(v));
     2895}
     2896const char* icalproperty_get_xlicmimecharset(const icalproperty* prop){
     2897    icalerror_check_arg( (prop!=0),"prop");
     2898    return icalvalue_get_string(icalproperty_get_value(prop));
     2899}
     2900icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...){
     2901   va_list args;
     2902   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2903
     2904   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
     2905   va_start(args,v);
     2906   icalproperty_add_parameters(impl, args);
     2907   va_end(args);
     2908   return (icalproperty*)impl;
     2909}
     2910
     2911/* X-LIC-MIMECID */
     2912icalproperty* icalproperty_new_xlicmimecid(const char* v) {
     2913   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECID_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2914
     2915   icalproperty_set_xlicmimecid((icalproperty*)impl,v);
     2916   return (icalproperty*)impl;
     2917}
     2918
     2919void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v){
     2920    icalerror_check_arg_rv( (v!=0),"v");
     2921
     2922    icalerror_check_arg_rv( (prop!=0),"prop");
     2923    icalproperty_set_value(prop,icalvalue_new_string(v));
     2924}
     2925const char* icalproperty_get_xlicmimecid(const icalproperty* prop){
     2926    icalerror_check_arg( (prop!=0),"prop");
     2927    return icalvalue_get_string(icalproperty_get_value(prop));
     2928}
     2929icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...){
     2930   va_list args;
     2931   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2932
     2933   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
     2934   va_start(args,v);
     2935   icalproperty_add_parameters(impl, args);
     2936   va_end(args);
     2937   return (icalproperty*)impl;
     2938}
     2939
     2940/* X-LIC-MIMECONTENTTYPE */
     2941icalproperty* icalproperty_new_xlicmimecontenttype(const char* v) {
     2942   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMECONTENTTYPE_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2943
     2944   icalproperty_set_xlicmimecontenttype((icalproperty*)impl,v);
     2945   return (icalproperty*)impl;
     2946}
     2947
     2948void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v){
     2949    icalerror_check_arg_rv( (v!=0),"v");
     2950
     2951    icalerror_check_arg_rv( (prop!=0),"prop");
     2952    icalproperty_set_value(prop,icalvalue_new_string(v));
     2953}
     2954const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop){
     2955    icalerror_check_arg( (prop!=0),"prop");
     2956    return icalvalue_get_string(icalproperty_get_value(prop));
     2957}
     2958icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...){
     2959   va_list args;
     2960   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2961
     2962   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
     2963   va_start(args,v);
     2964   icalproperty_add_parameters(impl, args);
     2965   va_end(args);
     2966   return (icalproperty*)impl;
     2967}
     2968
     2969/* X-LIC-MIMEENCODING */
     2970icalproperty* icalproperty_new_xlicmimeencoding(const char* v) {
     2971   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEENCODING_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2972
     2973   icalproperty_set_xlicmimeencoding((icalproperty*)impl,v);
     2974   return (icalproperty*)impl;
     2975}
     2976
     2977void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v){
     2978    icalerror_check_arg_rv( (v!=0),"v");
     2979
     2980    icalerror_check_arg_rv( (prop!=0),"prop");
     2981    icalproperty_set_value(prop,icalvalue_new_string(v));
     2982}
     2983const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop){
     2984    icalerror_check_arg( (prop!=0),"prop");
     2985    return icalvalue_get_string(icalproperty_get_value(prop));
     2986}
     2987icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...){
     2988   va_list args;
     2989   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     2990
     2991   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
     2992   va_start(args,v);
     2993   icalproperty_add_parameters(impl, args);
     2994   va_end(args);
     2995   return (icalproperty*)impl;
     2996}
     2997
     2998/* X-LIC-MIMEFILENAME */
     2999icalproperty* icalproperty_new_xlicmimefilename(const char* v) {
     3000   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEFILENAME_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     3001
     3002   icalproperty_set_xlicmimefilename((icalproperty*)impl,v);
     3003   return (icalproperty*)impl;
     3004}
     3005
     3006void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v){
     3007    icalerror_check_arg_rv( (v!=0),"v");
     3008
     3009    icalerror_check_arg_rv( (prop!=0),"prop");
     3010    icalproperty_set_value(prop,icalvalue_new_string(v));
     3011}
     3012const char* icalproperty_get_xlicmimefilename(const icalproperty* prop){
     3013    icalerror_check_arg( (prop!=0),"prop");
     3014    return icalvalue_get_string(icalproperty_get_value(prop));
     3015}
     3016icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...){
     3017   va_list args;
     3018   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     3019
     3020   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
     3021   va_start(args,v);
     3022   icalproperty_add_parameters(impl, args);
     3023   va_end(args);
     3024   return (icalproperty*)impl;
     3025}
     3026
     3027/* X-LIC-MIMEOPTINFO */
     3028icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v) {
     3029   struct icalproperty_impl *impl = icalproperty_new_impl(ICAL_XLICMIMEOPTINFO_PROPERTY);   icalerror_check_arg_rz( (v!=0),"v");
     3030
     3031   icalproperty_set_xlicmimeoptinfo((icalproperty*)impl,v);
     3032   return (icalproperty*)impl;
     3033}
     3034
     3035void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v){
     3036    icalerror_check_arg_rv( (v!=0),"v");
     3037
     3038    icalerror_check_arg_rv( (prop!=0),"prop");
     3039    icalproperty_set_value(prop,icalvalue_new_string(v));
     3040}
     3041const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop){
     3042    icalerror_check_arg( (prop!=0),"prop");
     3043    return icalvalue_get_string(icalproperty_get_value(prop));
     3044}
     3045
     3046int icalproperty_kind_is_valid(const icalproperty_kind kind)
     3047{
     3048    int i = 0;
     3049    do {
     3050      if (property_map[i].kind == kind)
     3051        return 1;
     3052    } while (property_map[i++].kind != ICAL_NO_PROPERTY);
     3053
     3054    return 0;
     3055
     3056
     3057const char* icalproperty_kind_to_string(icalproperty_kind kind)
     3058{
     3059    int i;
     3060
     3061    for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) {
     3062        if (property_map[i].kind == kind) {
     3063            return property_map[i].name;
     3064        }
     3065    }
     3066
     3067    return 0;
     3068
     3069}
     3070
     3071
     3072icalproperty_kind icalproperty_string_to_kind(const char* string)
     3073{
     3074    int i;
     3075
     3076    if (string ==0 ) {
     3077        return ICAL_NO_PROPERTY;
     3078    }
     3079
     3080
     3081    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
     3082        if (strcasecmp(property_map[i].name, string) == 0) {
     3083            return property_map[i].kind;
     3084        }
     3085    }
     3086
     3087    if(strncmp(string,"X-",2)==0){
     3088        return ICAL_X_PROPERTY;
     3089    }
     3090
     3091
     3092    return ICAL_NO_PROPERTY;
     3093}
     3094
     3095
     3096icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind)
     3097{
     3098    int i;
     3099
     3100    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
     3101        if ( property_map[i].value == kind ) {
     3102            return property_map[i].kind;
     3103        }
     3104    }
     3105
     3106    return ICAL_NO_PROPERTY;
     3107}
     3108
     3109
     3110
     3111icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind)
     3112{
     3113    int i;
     3114
     3115    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
     3116        if ( property_map[i].kind == kind ) {
     3117            return property_map[i].value;
     3118        }
     3119    }
     3120
     3121    return ICAL_NO_VALUE;
     3122}
     3123
     3124
     3125const char* icalproperty_enum_to_string(int e)
     3126{
     3127    icalerror_check_arg_rz(e >= ICALPROPERTY_FIRST_ENUM,"e");
     3128    icalerror_check_arg_rz(e <= ICALPROPERTY_LAST_ENUM,"e");
     3129
     3130    return enum_map[e-ICALPROPERTY_FIRST_ENUM].str;
     3131}
     3132
     3133
     3134char *icalproperty_enum_to_string_r(int e)
     3135{
     3136        return icalmemory_strdup(icalproperty_enum_to_string(e));
     3137}
     3138
     3139
     3140int icalproperty_kind_and_string_to_enum(const int kind, const char* str)
     3141{
     3142    icalproperty_kind pkind;
     3143    int i;
     3144
     3145    icalerror_check_arg_rz(str!=0,"str")
     3146
     3147    if ((pkind = icalproperty_value_kind_to_kind(kind)) == ICAL_NO_PROPERTY)
     3148        return 0;
     3149
     3150    while(*str == ' '){
     3151        str++;
     3152    }
     3153
     3154    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
     3155        if (enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == pkind)
     3156            break;
     3157    }
     3158    if (i == ICALPROPERTY_LAST_ENUM)
     3159            return 0;
     3160
     3161    for (; i != ICALPROPERTY_LAST_ENUM; i++) {
     3162        if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
     3163            return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
     3164        }
     3165    }
     3166
     3167    return 0;
     3168}
     3169
     3170/** @deprecated please use icalproperty_kind_and_string_to_enum instead */
     3171int icalproperty_string_to_enum(const char* str)
     3172{
     3173    int i;
     3174
     3175    icalerror_check_arg_rz(str!=0,"str")
     3176
     3177    while(*str == ' '){
     3178        str++;
     3179    }
     3180
     3181    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
     3182        if ( strcasecmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
     3183            return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
     3184        }
     3185    }
     3186
     3187    return 0;
     3188}
     3189
     3190int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e)
     3191{
     3192    int i;
     3193
     3194
     3195    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
     3196        if(enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum == e &&
     3197           enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == kind ){
     3198            return 1;
     3199        }
     3200    }
     3201
     3202    return 0;
     3203}
     3204
     3205
     3206const char* icalproperty_method_to_string(icalproperty_method method)
     3207{
     3208    icalerror_check_arg_rz(method >= ICAL_METHOD_X,"method");
     3209    icalerror_check_arg_rz(method <= ICAL_METHOD_NONE,"method");
     3210
     3211    return enum_map[method-ICALPROPERTY_FIRST_ENUM].str;
     3212}
     3213
     3214icalproperty_method icalproperty_string_to_method(const char* str)
     3215{
     3216    int i;
     3217
     3218    icalerror_check_arg_rx(str!=0,"str",ICAL_METHOD_NONE)
     3219
     3220    while(*str == ' '){
     3221        str++;
     3222    }
     3223
     3224    for (i=ICAL_METHOD_X-ICALPROPERTY_FIRST_ENUM;
     3225         i != ICAL_METHOD_NONE-ICALPROPERTY_FIRST_ENUM;
     3226         i++) {
     3227        if ( strcasecmp(enum_map[i].str, str) == 0) {
     3228            return (icalproperty_method)enum_map[i].prop_enum;
     3229        }
     3230    }
     3231
     3232    return ICAL_METHOD_NONE;
     3233}
     3234
     3235
     3236const char* icalenum_status_to_string(icalproperty_status status)
     3237{
     3238    icalerror_check_arg_rz(status >= ICAL_STATUS_X,"status");
     3239    icalerror_check_arg_rz(status <= ICAL_STATUS_NONE,"status");
     3240
     3241    return enum_map[status-ICALPROPERTY_FIRST_ENUM].str;
     3242}
     3243
     3244icalproperty_status icalenum_string_to_status(const char* str)
     3245{
     3246    int i;
     3247
     3248    icalerror_check_arg_rx(str!=0,"str",ICAL_STATUS_NONE)
     3249
     3250    while(*str == ' '){
     3251        str++;
     3252    }
     3253
     3254    for (i=ICAL_STATUS_X-ICALPROPERTY_FIRST_ENUM;
     3255         i != ICAL_STATUS_NONE-ICALPROPERTY_FIRST_ENUM;
     3256         i++) {
     3257        if ( strcasecmp(enum_map[i].str, str) == 0) {
     3258            return (icalproperty_status)enum_map[i].prop_enum;
     3259        }
     3260    }
     3261
     3262    return ICAL_STATUS_NONE;
     3263
     3264}
  • src/libical/icalderivedproperty.h

    diff -Nurb libical-0.42.orig/src/libical/icalderivedproperty.h libical-0.42/src/libical/icalderivedproperty.h
    old new  
     1/* -*- Mode: C -*-
     2  ======================================================================
     3  FILE: icalderivedproperties.{c,h}
     4  CREATOR: eric 09 May 1999
     5 
     6  $Id: icalderivedproperty.h.in,v 1.7 2007-04-30 13:57:48 artcancro Exp $
     7   
     8 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     9 ======================================================================*/
     10
     11
     12#ifndef ICALDERIVEDPROPERTY_H
     13#define ICALDERIVEDPROPERTY_H
     14
     15#include <time.h>
     16#include "icalparameter.h"
     17#include "icalderivedvalue.h" 
     18#include "icalrecur.h"
     19
     20typedef struct icalproperty_impl icalproperty;
     21
     22typedef enum icalproperty_kind {
     23    ICAL_ANY_PROPERTY = 0,
     24    ICAL_ACTION_PROPERTY,
     25    ICAL_ALLOWCONFLICT_PROPERTY,
     26    ICAL_ATTACH_PROPERTY,
     27    ICAL_ATTENDEE_PROPERTY,
     28    ICAL_CALID_PROPERTY,
     29    ICAL_CALMASTER_PROPERTY,
     30    ICAL_CALSCALE_PROPERTY,
     31    ICAL_CAPVERSION_PROPERTY,
     32    ICAL_CARLEVEL_PROPERTY,
     33    ICAL_CARID_PROPERTY,
     34    ICAL_CATEGORIES_PROPERTY,
     35    ICAL_CLASS_PROPERTY,
     36    ICAL_CMD_PROPERTY,
     37    ICAL_COMMENT_PROPERTY,
     38    ICAL_COMPLETED_PROPERTY,
     39    ICAL_COMPONENTS_PROPERTY,
     40    ICAL_CONTACT_PROPERTY,
     41    ICAL_CREATED_PROPERTY,
     42    ICAL_CSID_PROPERTY,
     43    ICAL_DATEMAX_PROPERTY,
     44    ICAL_DATEMIN_PROPERTY,
     45    ICAL_DECREED_PROPERTY,
     46    ICAL_DEFAULTCHARSET_PROPERTY,
     47    ICAL_DEFAULTLOCALE_PROPERTY,
     48    ICAL_DEFAULTTZID_PROPERTY,
     49    ICAL_DEFAULTVCARS_PROPERTY,
     50    ICAL_DENY_PROPERTY,
     51    ICAL_DESCRIPTION_PROPERTY,
     52    ICAL_DTEND_PROPERTY,
     53    ICAL_DTSTAMP_PROPERTY,
     54    ICAL_DTSTART_PROPERTY,
     55    ICAL_DUE_PROPERTY,
     56    ICAL_DURATION_PROPERTY,
     57    ICAL_EXDATE_PROPERTY,
     58    ICAL_EXPAND_PROPERTY,
     59    ICAL_EXRULE_PROPERTY,
     60    ICAL_FREEBUSY_PROPERTY,
     61    ICAL_GEO_PROPERTY,
     62    ICAL_GRANT_PROPERTY,
     63    ICAL_ITIPVERSION_PROPERTY,
     64    ICAL_LASTMODIFIED_PROPERTY,
     65    ICAL_LOCATION_PROPERTY,
     66    ICAL_MAXCOMPONENTSIZE_PROPERTY,
     67    ICAL_MAXDATE_PROPERTY,
     68    ICAL_MAXRESULTS_PROPERTY,
     69    ICAL_MAXRESULTSSIZE_PROPERTY,
     70    ICAL_METHOD_PROPERTY,
     71    ICAL_MINDATE_PROPERTY,
     72    ICAL_MULTIPART_PROPERTY,
     73    ICAL_NAME_PROPERTY,
     74    ICAL_ORGANIZER_PROPERTY,
     75    ICAL_OWNER_PROPERTY,
     76    ICAL_PERCENTCOMPLETE_PROPERTY,
     77    ICAL_PERMISSION_PROPERTY,
     78    ICAL_PRIORITY_PROPERTY,
     79    ICAL_PRODID_PROPERTY,
     80    ICAL_QUERY_PROPERTY,
     81    ICAL_QUERYLEVEL_PROPERTY,
     82    ICAL_QUERYID_PROPERTY,
     83    ICAL_QUERYNAME_PROPERTY,
     84    ICAL_RDATE_PROPERTY,
     85    ICAL_RECURACCEPTED_PROPERTY,
     86    ICAL_RECUREXPAND_PROPERTY,
     87    ICAL_RECURLIMIT_PROPERTY,
     88    ICAL_RECURRENCEID_PROPERTY,
     89    ICAL_RELATEDTO_PROPERTY,
     90    ICAL_RELCALID_PROPERTY,
     91    ICAL_REPEAT_PROPERTY,
     92    ICAL_REQUESTSTATUS_PROPERTY,
     93    ICAL_RESOURCES_PROPERTY,
     94    ICAL_RESTRICTION_PROPERTY,
     95    ICAL_RRULE_PROPERTY,
     96    ICAL_SCOPE_PROPERTY,
     97    ICAL_SEQUENCE_PROPERTY,
     98    ICAL_STATUS_PROPERTY,
     99    ICAL_STORESEXPANDED_PROPERTY,
     100    ICAL_SUMMARY_PROPERTY,
     101    ICAL_TARGET_PROPERTY,
     102    ICAL_TRANSP_PROPERTY,
     103    ICAL_TRIGGER_PROPERTY,
     104    ICAL_TZID_PROPERTY,
     105    ICAL_TZNAME_PROPERTY,
     106    ICAL_TZOFFSETFROM_PROPERTY,
     107    ICAL_TZOFFSETTO_PROPERTY,
     108    ICAL_TZURL_PROPERTY,
     109    ICAL_UID_PROPERTY,
     110    ICAL_URL_PROPERTY,
     111    ICAL_VERSION_PROPERTY,
     112    ICAL_X_PROPERTY,
     113    ICAL_XLICCLASS_PROPERTY,
     114    ICAL_XLICCLUSTERCOUNT_PROPERTY,
     115    ICAL_XLICERROR_PROPERTY,
     116    ICAL_XLICMIMECHARSET_PROPERTY,
     117    ICAL_XLICMIMECID_PROPERTY,
     118    ICAL_XLICMIMECONTENTTYPE_PROPERTY,
     119    ICAL_XLICMIMEENCODING_PROPERTY,
     120    ICAL_XLICMIMEFILENAME_PROPERTY,
     121    ICAL_XLICMIMEOPTINFO_PROPERTY,
     122    ICAL_NO_PROPERTY
     123} icalproperty_kind;
     124
     125
     126/* ACTION */
     127icalproperty* icalproperty_new_action(enum icalproperty_action v);
     128void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
     129enum icalproperty_action icalproperty_get_action(const icalproperty* prop);icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
     130
     131/* ALLOW-CONFLICT */
     132icalproperty* icalproperty_new_allowconflict(const char* v);
     133void icalproperty_set_allowconflict(icalproperty* prop, const char* v);
     134const char* icalproperty_get_allowconflict(const icalproperty* prop);icalproperty* icalproperty_vanew_allowconflict(const char* v, ...);
     135
     136/* ATTACH */
     137icalproperty* icalproperty_new_attach(icalattach * v);
     138void icalproperty_set_attach(icalproperty* prop, icalattach * v);
     139icalattach * icalproperty_get_attach(const icalproperty* prop);icalproperty* icalproperty_vanew_attach(icalattach * v, ...);
     140
     141/* ATTENDEE */
     142icalproperty* icalproperty_new_attendee(const char* v);
     143void icalproperty_set_attendee(icalproperty* prop, const char* v);
     144const char* icalproperty_get_attendee(const icalproperty* prop);icalproperty* icalproperty_vanew_attendee(const char* v, ...);
     145
     146/* CALID */
     147icalproperty* icalproperty_new_calid(const char* v);
     148void icalproperty_set_calid(icalproperty* prop, const char* v);
     149const char* icalproperty_get_calid(const icalproperty* prop);icalproperty* icalproperty_vanew_calid(const char* v, ...);
     150
     151/* CALMASTER */
     152icalproperty* icalproperty_new_calmaster(const char* v);
     153void icalproperty_set_calmaster(icalproperty* prop, const char* v);
     154const char* icalproperty_get_calmaster(const icalproperty* prop);icalproperty* icalproperty_vanew_calmaster(const char* v, ...);
     155
     156/* CALSCALE */
     157icalproperty* icalproperty_new_calscale(const char* v);
     158void icalproperty_set_calscale(icalproperty* prop, const char* v);
     159const char* icalproperty_get_calscale(const icalproperty* prop);icalproperty* icalproperty_vanew_calscale(const char* v, ...);
     160
     161/* CAP-VERSION */
     162icalproperty* icalproperty_new_capversion(const char* v);
     163void icalproperty_set_capversion(icalproperty* prop, const char* v);
     164const char* icalproperty_get_capversion(const icalproperty* prop);icalproperty* icalproperty_vanew_capversion(const char* v, ...);
     165
     166/* CAR-LEVEL */
     167icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v);
     168void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v);
     169enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop);icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...);
     170
     171/* CARID */
     172icalproperty* icalproperty_new_carid(const char* v);
     173void icalproperty_set_carid(icalproperty* prop, const char* v);
     174const char* icalproperty_get_carid(const icalproperty* prop);icalproperty* icalproperty_vanew_carid(const char* v, ...);
     175
     176/* CATEGORIES */
     177icalproperty* icalproperty_new_categories(const char* v);
     178void icalproperty_set_categories(icalproperty* prop, const char* v);
     179const char* icalproperty_get_categories(const icalproperty* prop);icalproperty* icalproperty_vanew_categories(const char* v, ...);
     180
     181/* CLASS */
     182icalproperty* icalproperty_new_class(enum icalproperty_class v);
     183void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v);
     184enum icalproperty_class icalproperty_get_class(const icalproperty* prop);icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...);
     185
     186/* CMD */
     187icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v);
     188void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v);
     189enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop);icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...);
     190
     191/* COMMENT */
     192icalproperty* icalproperty_new_comment(const char* v);
     193void icalproperty_set_comment(icalproperty* prop, const char* v);
     194const char* icalproperty_get_comment(const icalproperty* prop);icalproperty* icalproperty_vanew_comment(const char* v, ...);
     195
     196/* COMPLETED */
     197icalproperty* icalproperty_new_completed(struct icaltimetype v);
     198void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
     199struct icaltimetype icalproperty_get_completed(const icalproperty* prop);icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
     200
     201/* COMPONENTS */
     202icalproperty* icalproperty_new_components(const char* v);
     203void icalproperty_set_components(icalproperty* prop, const char* v);
     204const char* icalproperty_get_components(const icalproperty* prop);icalproperty* icalproperty_vanew_components(const char* v, ...);
     205
     206/* CONTACT */
     207icalproperty* icalproperty_new_contact(const char* v);
     208void icalproperty_set_contact(icalproperty* prop, const char* v);
     209const char* icalproperty_get_contact(const icalproperty* prop);icalproperty* icalproperty_vanew_contact(const char* v, ...);
     210
     211/* CREATED */
     212icalproperty* icalproperty_new_created(struct icaltimetype v);
     213void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
     214struct icaltimetype icalproperty_get_created(const icalproperty* prop);icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
     215
     216/* CSID */
     217icalproperty* icalproperty_new_csid(const char* v);
     218void icalproperty_set_csid(icalproperty* prop, const char* v);
     219const char* icalproperty_get_csid(const icalproperty* prop);icalproperty* icalproperty_vanew_csid(const char* v, ...);
     220
     221/* DATE-MAX */
     222icalproperty* icalproperty_new_datemax(struct icaltimetype v);
     223void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v);
     224struct icaltimetype icalproperty_get_datemax(const icalproperty* prop);icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...);
     225
     226/* DATE-MIN */
     227icalproperty* icalproperty_new_datemin(struct icaltimetype v);
     228void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v);
     229struct icaltimetype icalproperty_get_datemin(const icalproperty* prop);icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...);
     230
     231/* DECREED */
     232icalproperty* icalproperty_new_decreed(const char* v);
     233void icalproperty_set_decreed(icalproperty* prop, const char* v);
     234const char* icalproperty_get_decreed(const icalproperty* prop);icalproperty* icalproperty_vanew_decreed(const char* v, ...);
     235
     236/* DEFAULT-CHARSET */
     237icalproperty* icalproperty_new_defaultcharset(const char* v);
     238void icalproperty_set_defaultcharset(icalproperty* prop, const char* v);
     239const char* icalproperty_get_defaultcharset(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...);
     240
     241/* DEFAULT-LOCALE */
     242icalproperty* icalproperty_new_defaultlocale(const char* v);
     243void icalproperty_set_defaultlocale(icalproperty* prop, const char* v);
     244const char* icalproperty_get_defaultlocale(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...);
     245
     246/* DEFAULT-TZID */
     247icalproperty* icalproperty_new_defaulttzid(const char* v);
     248void icalproperty_set_defaulttzid(icalproperty* prop, const char* v);
     249const char* icalproperty_get_defaulttzid(const icalproperty* prop);icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...);
     250
     251/* DEFAULT-VCARS */
     252icalproperty* icalproperty_new_defaultvcars(const char* v);
     253void icalproperty_set_defaultvcars(icalproperty* prop, const char* v);
     254const char* icalproperty_get_defaultvcars(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...);
     255
     256/* DENY */
     257icalproperty* icalproperty_new_deny(const char* v);
     258void icalproperty_set_deny(icalproperty* prop, const char* v);
     259const char* icalproperty_get_deny(const icalproperty* prop);icalproperty* icalproperty_vanew_deny(const char* v, ...);
     260
     261/* DESCRIPTION */
     262icalproperty* icalproperty_new_description(const char* v);
     263void icalproperty_set_description(icalproperty* prop, const char* v);
     264const char* icalproperty_get_description(const icalproperty* prop);icalproperty* icalproperty_vanew_description(const char* v, ...);
     265
     266/* DTEND */
     267icalproperty* icalproperty_new_dtend(struct icaltimetype v);
     268void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
     269struct icaltimetype icalproperty_get_dtend(const icalproperty* prop);icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
     270
     271/* DTSTAMP */
     272icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
     273void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
     274struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
     275
     276/* DTSTART */
     277icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
     278void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
     279struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
     280
     281/* DUE */
     282icalproperty* icalproperty_new_due(struct icaltimetype v);
     283void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
     284struct icaltimetype icalproperty_get_due(const icalproperty* prop);icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
     285
     286/* DURATION */
     287icalproperty* icalproperty_new_duration(struct icaldurationtype v);
     288void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
     289struct icaldurationtype icalproperty_get_duration(const icalproperty* prop);icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
     290
     291/* EXDATE */
     292icalproperty* icalproperty_new_exdate(struct icaltimetype v);
     293void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
     294struct icaltimetype icalproperty_get_exdate(const icalproperty* prop);icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
     295
     296/* EXPAND */
     297icalproperty* icalproperty_new_expand(int v);
     298void icalproperty_set_expand(icalproperty* prop, int v);
     299int icalproperty_get_expand(const icalproperty* prop);icalproperty* icalproperty_vanew_expand(int v, ...);
     300
     301/* EXRULE */
     302icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
     303void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
     304struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop);icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
     305
     306/* FREEBUSY */
     307icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
     308void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
     309struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop);icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
     310
     311/* GEO */
     312icalproperty* icalproperty_new_geo(struct icalgeotype v);
     313void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
     314struct icalgeotype icalproperty_get_geo(const icalproperty* prop);icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
     315
     316/* GRANT */
     317icalproperty* icalproperty_new_grant(const char* v);
     318void icalproperty_set_grant(icalproperty* prop, const char* v);
     319const char* icalproperty_get_grant(const icalproperty* prop);icalproperty* icalproperty_vanew_grant(const char* v, ...);
     320
     321/* ITIP-VERSION */
     322icalproperty* icalproperty_new_itipversion(const char* v);
     323void icalproperty_set_itipversion(icalproperty* prop, const char* v);
     324const char* icalproperty_get_itipversion(const icalproperty* prop);icalproperty* icalproperty_vanew_itipversion(const char* v, ...);
     325
     326/* LAST-MODIFIED */
     327icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
     328void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
     329struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop);icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
     330
     331/* LOCATION */
     332icalproperty* icalproperty_new_location(const char* v);
     333void icalproperty_set_location(icalproperty* prop, const char* v);
     334const char* icalproperty_get_location(const icalproperty* prop);icalproperty* icalproperty_vanew_location(const char* v, ...);
     335
     336/* MAX-COMPONENT-SIZE */
     337icalproperty* icalproperty_new_maxcomponentsize(int v);
     338void icalproperty_set_maxcomponentsize(icalproperty* prop, int v);
     339int icalproperty_get_maxcomponentsize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...);
     340
     341/* MAXDATE */
     342icalproperty* icalproperty_new_maxdate(struct icaltimetype v);
     343void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v);
     344struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop);icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...);
     345
     346/* MAXRESULTS */
     347icalproperty* icalproperty_new_maxresults(int v);
     348void icalproperty_set_maxresults(icalproperty* prop, int v);
     349int icalproperty_get_maxresults(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresults(int v, ...);
     350
     351/* MAXRESULTSSIZE */
     352icalproperty* icalproperty_new_maxresultssize(int v);
     353void icalproperty_set_maxresultssize(icalproperty* prop, int v);
     354int icalproperty_get_maxresultssize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
     355
     356/* METHOD */
     357icalproperty* icalproperty_new_method(enum icalproperty_method v);
     358void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
     359enum icalproperty_method icalproperty_get_method(const icalproperty* prop);icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
     360
     361/* MINDATE */
     362icalproperty* icalproperty_new_mindate(struct icaltimetype v);
     363void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v);
     364struct icaltimetype icalproperty_get_mindate(const icalproperty* prop);icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...);
     365
     366/* MULTIPART */
     367icalproperty* icalproperty_new_multipart(const char* v);
     368void icalproperty_set_multipart(icalproperty* prop, const char* v);
     369const char* icalproperty_get_multipart(const icalproperty* prop);icalproperty* icalproperty_vanew_multipart(const char* v, ...);
     370
     371/* NAME */
     372icalproperty* icalproperty_new_name(const char* v);
     373void icalproperty_set_name(icalproperty* prop, const char* v);
     374const char* icalproperty_get_name(const icalproperty* prop);icalproperty* icalproperty_vanew_name(const char* v, ...);
     375
     376/* ORGANIZER */
     377icalproperty* icalproperty_new_organizer(const char* v);
     378void icalproperty_set_organizer(icalproperty* prop, const char* v);
     379const char* icalproperty_get_organizer(const icalproperty* prop);icalproperty* icalproperty_vanew_organizer(const char* v, ...);
     380
     381/* OWNER */
     382icalproperty* icalproperty_new_owner(const char* v);
     383void icalproperty_set_owner(icalproperty* prop, const char* v);
     384const char* icalproperty_get_owner(const icalproperty* prop);icalproperty* icalproperty_vanew_owner(const char* v, ...);
     385
     386/* PERCENT-COMPLETE */
     387icalproperty* icalproperty_new_percentcomplete(int v);
     388void icalproperty_set_percentcomplete(icalproperty* prop, int v);
     389int icalproperty_get_percentcomplete(const icalproperty* prop);icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
     390
     391/* PERMISSION */
     392icalproperty* icalproperty_new_permission(const char* v);
     393void icalproperty_set_permission(icalproperty* prop, const char* v);
     394const char* icalproperty_get_permission(const icalproperty* prop);icalproperty* icalproperty_vanew_permission(const char* v, ...);
     395
     396/* PRIORITY */
     397icalproperty* icalproperty_new_priority(int v);
     398void icalproperty_set_priority(icalproperty* prop, int v);
     399int icalproperty_get_priority(const icalproperty* prop);icalproperty* icalproperty_vanew_priority(int v, ...);
     400
     401/* PRODID */
     402icalproperty* icalproperty_new_prodid(const char* v);
     403void icalproperty_set_prodid(icalproperty* prop, const char* v);
     404const char* icalproperty_get_prodid(const icalproperty* prop);icalproperty* icalproperty_vanew_prodid(const char* v, ...);
     405
     406/* QUERY */
     407icalproperty* icalproperty_new_query(const char* v);
     408void icalproperty_set_query(icalproperty* prop, const char* v);
     409const char* icalproperty_get_query(const icalproperty* prop);icalproperty* icalproperty_vanew_query(const char* v, ...);
     410
     411/* QUERY-LEVEL */
     412icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v);
     413void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v);
     414enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop);icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...);
     415
     416/* QUERYID */
     417icalproperty* icalproperty_new_queryid(const char* v);
     418void icalproperty_set_queryid(icalproperty* prop, const char* v);
     419const char* icalproperty_get_queryid(const icalproperty* prop);icalproperty* icalproperty_vanew_queryid(const char* v, ...);
     420
     421/* QUERYNAME */
     422icalproperty* icalproperty_new_queryname(const char* v);
     423void icalproperty_set_queryname(icalproperty* prop, const char* v);
     424const char* icalproperty_get_queryname(const icalproperty* prop);icalproperty* icalproperty_vanew_queryname(const char* v, ...);
     425
     426/* RDATE */
     427icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
     428void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
     429struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop);icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
     430
     431/* RECUR-ACCEPTED */
     432icalproperty* icalproperty_new_recuraccepted(const char* v);
     433void icalproperty_set_recuraccepted(icalproperty* prop, const char* v);
     434const char* icalproperty_get_recuraccepted(const icalproperty* prop);icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...);
     435
     436/* RECUR-EXPAND */
     437icalproperty* icalproperty_new_recurexpand(const char* v);
     438void icalproperty_set_recurexpand(icalproperty* prop, const char* v);
     439const char* icalproperty_get_recurexpand(const icalproperty* prop);icalproperty* icalproperty_vanew_recurexpand(const char* v, ...);
     440
     441/* RECUR-LIMIT */
     442icalproperty* icalproperty_new_recurlimit(const char* v);
     443void icalproperty_set_recurlimit(icalproperty* prop, const char* v);
     444const char* icalproperty_get_recurlimit(const icalproperty* prop);icalproperty* icalproperty_vanew_recurlimit(const char* v, ...);
     445
     446/* RECURRENCE-ID */
     447icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
     448void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
     449struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop);icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
     450
     451/* RELATED-TO */
     452icalproperty* icalproperty_new_relatedto(const char* v);
     453void icalproperty_set_relatedto(icalproperty* prop, const char* v);
     454const char* icalproperty_get_relatedto(const icalproperty* prop);icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
     455
     456/* RELCALID */
     457icalproperty* icalproperty_new_relcalid(const char* v);
     458void icalproperty_set_relcalid(icalproperty* prop, const char* v);
     459const char* icalproperty_get_relcalid(const icalproperty* prop);icalproperty* icalproperty_vanew_relcalid(const char* v, ...);
     460
     461/* REPEAT */
     462icalproperty* icalproperty_new_repeat(int v);
     463void icalproperty_set_repeat(icalproperty* prop, int v);
     464int icalproperty_get_repeat(const icalproperty* prop);icalproperty* icalproperty_vanew_repeat(int v, ...);
     465
     466/* REQUEST-STATUS */
     467icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v);
     468void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v);
     469struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop);icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...);
     470
     471/* RESOURCES */
     472icalproperty* icalproperty_new_resources(const char* v);
     473void icalproperty_set_resources(icalproperty* prop, const char* v);
     474const char* icalproperty_get_resources(const icalproperty* prop);icalproperty* icalproperty_vanew_resources(const char* v, ...);
     475
     476/* RESTRICTION */
     477icalproperty* icalproperty_new_restriction(const char* v);
     478void icalproperty_set_restriction(icalproperty* prop, const char* v);
     479const char* icalproperty_get_restriction(const icalproperty* prop);icalproperty* icalproperty_vanew_restriction(const char* v, ...);
     480
     481/* RRULE */
     482icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
     483void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
     484struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop);icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
     485
     486/* SCOPE */
     487icalproperty* icalproperty_new_scope(const char* v);
     488void icalproperty_set_scope(icalproperty* prop, const char* v);
     489const char* icalproperty_get_scope(const icalproperty* prop);icalproperty* icalproperty_vanew_scope(const char* v, ...);
     490
     491/* SEQUENCE */
     492icalproperty* icalproperty_new_sequence(int v);
     493void icalproperty_set_sequence(icalproperty* prop, int v);
     494int icalproperty_get_sequence(const icalproperty* prop);icalproperty* icalproperty_vanew_sequence(int v, ...);
     495
     496/* STATUS */
     497icalproperty* icalproperty_new_status(enum icalproperty_status v);
     498void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
     499enum icalproperty_status icalproperty_get_status(const icalproperty* prop);icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
     500
     501/* STORES-EXPANDED */
     502icalproperty* icalproperty_new_storesexpanded(const char* v);
     503void icalproperty_set_storesexpanded(icalproperty* prop, const char* v);
     504const char* icalproperty_get_storesexpanded(const icalproperty* prop);icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...);
     505
     506/* SUMMARY */
     507icalproperty* icalproperty_new_summary(const char* v);
     508void icalproperty_set_summary(icalproperty* prop, const char* v);
     509const char* icalproperty_get_summary(const icalproperty* prop);icalproperty* icalproperty_vanew_summary(const char* v, ...);
     510
     511/* TARGET */
     512icalproperty* icalproperty_new_target(const char* v);
     513void icalproperty_set_target(icalproperty* prop, const char* v);
     514const char* icalproperty_get_target(const icalproperty* prop);icalproperty* icalproperty_vanew_target(const char* v, ...);
     515
     516/* TRANSP */
     517icalproperty* icalproperty_new_transp(enum icalproperty_transp v);
     518void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v);
     519enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop);icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...);
     520
     521/* TRIGGER */
     522icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
     523void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
     524struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop);icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
     525
     526/* TZID */
     527icalproperty* icalproperty_new_tzid(const char* v);
     528void icalproperty_set_tzid(icalproperty* prop, const char* v);
     529const char* icalproperty_get_tzid(const icalproperty* prop);icalproperty* icalproperty_vanew_tzid(const char* v, ...);
     530
     531/* TZNAME */
     532icalproperty* icalproperty_new_tzname(const char* v);
     533void icalproperty_set_tzname(icalproperty* prop, const char* v);
     534const char* icalproperty_get_tzname(const icalproperty* prop);icalproperty* icalproperty_vanew_tzname(const char* v, ...);
     535
     536/* TZOFFSETFROM */
     537icalproperty* icalproperty_new_tzoffsetfrom(int v);
     538void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
     539int icalproperty_get_tzoffsetfrom(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
     540
     541/* TZOFFSETTO */
     542icalproperty* icalproperty_new_tzoffsetto(int v);
     543void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
     544int icalproperty_get_tzoffsetto(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
     545
     546/* TZURL */
     547icalproperty* icalproperty_new_tzurl(const char* v);
     548void icalproperty_set_tzurl(icalproperty* prop, const char* v);
     549const char* icalproperty_get_tzurl(const icalproperty* prop);icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
     550
     551/* UID */
     552icalproperty* icalproperty_new_uid(const char* v);
     553void icalproperty_set_uid(icalproperty* prop, const char* v);
     554const char* icalproperty_get_uid(const icalproperty* prop);icalproperty* icalproperty_vanew_uid(const char* v, ...);
     555
     556/* URL */
     557icalproperty* icalproperty_new_url(const char* v);
     558void icalproperty_set_url(icalproperty* prop, const char* v);
     559const char* icalproperty_get_url(const icalproperty* prop);icalproperty* icalproperty_vanew_url(const char* v, ...);
     560
     561/* VERSION */
     562icalproperty* icalproperty_new_version(const char* v);
     563void icalproperty_set_version(icalproperty* prop, const char* v);
     564const char* icalproperty_get_version(const icalproperty* prop);icalproperty* icalproperty_vanew_version(const char* v, ...);
     565
     566/* X */
     567icalproperty* icalproperty_new_x(const char* v);
     568void icalproperty_set_x(icalproperty* prop, const char* v);
     569const char* icalproperty_get_x(const icalproperty* prop);icalproperty* icalproperty_vanew_x(const char* v, ...);
     570
     571/* X-LIC-CLASS */
     572icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v);
     573void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v);
     574enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...);
     575
     576/* X-LIC-CLUSTERCOUNT */
     577icalproperty* icalproperty_new_xlicclustercount(const char* v);
     578void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
     579const char* icalproperty_get_xlicclustercount(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
     580
     581/* X-LIC-ERROR */
     582icalproperty* icalproperty_new_xlicerror(const char* v);
     583void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
     584const char* icalproperty_get_xlicerror(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
     585
     586/* X-LIC-MIMECHARSET */
     587icalproperty* icalproperty_new_xlicmimecharset(const char* v);
     588void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
     589const char* icalproperty_get_xlicmimecharset(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
     590
     591/* X-LIC-MIMECID */
     592icalproperty* icalproperty_new_xlicmimecid(const char* v);
     593void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
     594const char* icalproperty_get_xlicmimecid(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
     595
     596/* X-LIC-MIMECONTENTTYPE */
     597icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
     598void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
     599const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
     600
     601/* X-LIC-MIMEENCODING */
     602icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
     603void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
     604const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
     605
     606/* X-LIC-MIMEFILENAME */
     607icalproperty* icalproperty_new_xlicmimefilename(const char* v);
     608void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
     609const char* icalproperty_get_xlicmimefilename(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
     610
     611/* X-LIC-MIMEOPTINFO */
     612icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
     613void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
     614const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
     615
     616
     617#endif /*ICALPROPERTY_H*/
  • src/libical/icalderivedvalue.c

    diff -Nurb libical-0.42.orig/src/libical/icalderivedvalue.c libical-0.42/src/libical/icalderivedvalue.c
    old new  
     1/* -*- Mode: C -*- */
     2/*======================================================================
     3  FILE: icalvalue.c
     4  CREATOR: eric 02 May 1999
     5 
     6  $Id: icalderivedvalue.c.in,v 1.15 2007-04-30 13:57:48 artcancro Exp $
     7
     8
     9 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     10
     11 This program is free software; you can redistribute it and/or modify
     12 it under the terms of either:
     13
     14    The LGPL as published by the Free Software Foundation, version
     15    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     16
     17  Or:
     18
     19    The Mozilla Public License Version 1.0. You may obtain a copy of
     20    the License at http://www.mozilla.org/MPL/
     21
     22  The original code is icalvalue.c
     23
     24  Contributions from:
     25     Graham Davison (g.m.davison@computer.org)
     26
     27
     28======================================================================*/
     29
     30#ifdef HAVE_CONFIG_H
     31#include <config.h>
     32#endif
     33
     34#include "icalerror.h"
     35#include "icalmemory.h"
     36#include "icalparser.h"
     37#include "icalenums.h"
     38
     39#include "icalvalueimpl.h"
     40
     41#include <stdlib.h> /* for malloc */
     42#include <stdio.h> /* for snprintf */
     43#include <string.h> /* For memset, others */
     44#include <stddef.h> /* For offsetof() macro */
     45#include <errno.h>
     46#include <time.h> /* for mktime */
     47#include <stdlib.h> /* for atoi and atof */
     48#include <limits.h> /* for SHRT_MAX */
     49       
     50#ifdef WIN32
     51#define strcasecmp      stricmp
     52#endif
     53
     54struct icalvalue_impl*  icalvalue_new_impl(icalvalue_kind kind);
     55
     56/* This map associates each of the value types with its string
     57   representation */
     58struct icalvalue_kind_map {
     59        icalvalue_kind kind;
     60        char name[20];
     61};
     62
     63static const struct icalvalue_kind_map value_map[31]={
     64    {ICAL_QUERY_VALUE,"QUERY"},
     65    {ICAL_DATE_VALUE,"DATE"},
     66    {ICAL_ATTACH_VALUE,"ATTACH"},
     67    {ICAL_GEO_VALUE,"GEO"},
     68    {ICAL_STATUS_VALUE,"STATUS"},
     69    {ICAL_TRANSP_VALUE,"TRANSP"},
     70    {ICAL_STRING_VALUE,"STRING"},
     71    {ICAL_TEXT_VALUE,"TEXT"},
     72    {ICAL_REQUESTSTATUS_VALUE,"REQUEST-STATUS"},
     73    {ICAL_CMD_VALUE,"CMD"},
     74    {ICAL_BINARY_VALUE,"BINARY"},
     75    {ICAL_QUERYLEVEL_VALUE,"QUERY-LEVEL"},
     76    {ICAL_PERIOD_VALUE,"PERIOD"},
     77    {ICAL_FLOAT_VALUE,"FLOAT"},
     78    {ICAL_DATETIMEPERIOD_VALUE,"DATE-TIME-PERIOD"},
     79    {ICAL_CARLEVEL_VALUE,"CAR-LEVEL"},
     80    {ICAL_INTEGER_VALUE,"INTEGER"},
     81    {ICAL_CLASS_VALUE,"CLASS"},
     82    {ICAL_URI_VALUE,"URI"},
     83    {ICAL_DURATION_VALUE,"DURATION"},
     84    {ICAL_BOOLEAN_VALUE,"BOOLEAN"},
     85    {ICAL_X_VALUE,"X"},
     86    {ICAL_CALADDRESS_VALUE,"CAL-ADDRESS"},
     87    {ICAL_TRIGGER_VALUE,"TRIGGER"},
     88    {ICAL_XLICCLASS_VALUE,"X-LIC-CLASS"},
     89    {ICAL_RECUR_VALUE,"RECUR"},
     90    {ICAL_ACTION_VALUE,"ACTION"},
     91    {ICAL_DATETIME_VALUE,"DATE-TIME"},
     92    {ICAL_UTCOFFSET_VALUE,"UTC-OFFSET"},
     93    {ICAL_METHOD_VALUE,"METHOD"},
     94    {ICAL_NO_VALUE,""}
     95};
     96
     97
     98icalvalue* icalvalue_new_query (const char* v){
     99   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_QUERY_VALUE);
     100   icalerror_check_arg_rz( (v!=0),"v");
     101
     102   icalvalue_set_query((icalvalue*)impl,v);
     103   return (icalvalue*)impl;
     104}
     105void icalvalue_set_query(icalvalue* value, const char* v) {
     106    struct icalvalue_impl* impl;
     107    icalerror_check_arg_rv( (value!=0),"value");
     108    icalerror_check_arg_rv( (v!=0),"v");
     109
     110    icalerror_check_value_type(value, ICAL_QUERY_VALUE);
     111    impl = (struct icalvalue_impl*)value;
     112    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     113
     114
     115    impl->data.v_string = icalmemory_strdup(v);
     116
     117    if (impl->data.v_string == 0){
     118      errno = ENOMEM;
     119    }
     120 
     121
     122    icalvalue_reset_kind(impl);
     123}
     124const char* icalvalue_get_query (const icalvalue* value) {
     125
     126    icalerror_check_arg_rz ((value!=0),"value");
     127    icalerror_check_value_type (value, ICAL_QUERY_VALUE);
     128    return ((struct icalvalue_impl*)value)->data.v_string;
     129}
     130
     131
     132
     133icalvalue* icalvalue_new_date (struct icaltimetype v){
     134   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATE_VALUE);
     135   
     136   icalvalue_set_date((icalvalue*)impl,v);
     137   return (icalvalue*)impl;
     138}
     139void icalvalue_set_date(icalvalue* value, struct icaltimetype v) {
     140    struct icalvalue_impl* impl;
     141    icalerror_check_arg_rv( (value!=0),"value");
     142   
     143    icalerror_check_value_type(value, ICAL_DATE_VALUE);
     144    impl = (struct icalvalue_impl*)value;
     145
     146
     147    impl->data.v_time = v;
     148
     149    icalvalue_reset_kind(impl);
     150}
     151struct icaltimetype icalvalue_get_date (const icalvalue* value) {
     152
     153    icalerror_check_arg ((value!=0),"value");
     154    icalerror_check_value_type (value, ICAL_DATE_VALUE);
     155    return ((struct icalvalue_impl*)value)->data.v_time;
     156}
     157
     158
     159
     160icalvalue* icalvalue_new_geo (struct icalgeotype v){
     161   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_GEO_VALUE);
     162   
     163   icalvalue_set_geo((icalvalue*)impl,v);
     164   return (icalvalue*)impl;
     165}
     166void icalvalue_set_geo(icalvalue* value, struct icalgeotype v) {
     167    struct icalvalue_impl* impl;
     168    icalerror_check_arg_rv( (value!=0),"value");
     169   
     170    icalerror_check_value_type(value, ICAL_GEO_VALUE);
     171    impl = (struct icalvalue_impl*)value;
     172
     173
     174    impl->data.v_geo = v;
     175
     176    icalvalue_reset_kind(impl);
     177}
     178struct icalgeotype icalvalue_get_geo (const icalvalue* value) {
     179
     180    icalerror_check_arg ((value!=0),"value");
     181    icalerror_check_value_type (value, ICAL_GEO_VALUE);
     182    return ((struct icalvalue_impl*)value)->data.v_geo;
     183}
     184
     185
     186
     187icalvalue* icalvalue_new_status (enum icalproperty_status v){
     188   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_STATUS_VALUE);
     189   
     190   icalvalue_set_status((icalvalue*)impl,v);
     191   return (icalvalue*)impl;
     192}
     193void icalvalue_set_status(icalvalue* value, enum icalproperty_status v) {
     194    struct icalvalue_impl* impl;
     195    icalerror_check_arg_rv( (value!=0),"value");
     196   
     197    icalerror_check_value_type(value, ICAL_STATUS_VALUE);
     198    impl = (struct icalvalue_impl*)value;
     199
     200
     201    impl->data.v_enum = v;
     202
     203    icalvalue_reset_kind(impl);
     204}
     205enum icalproperty_status icalvalue_get_status (const icalvalue* value) {
     206
     207    icalerror_check_arg ((value!=0),"value");
     208    icalerror_check_value_type (value, ICAL_STATUS_VALUE);
     209    return ((struct icalvalue_impl*)value)->data.v_enum;
     210}
     211
     212
     213
     214icalvalue* icalvalue_new_transp (enum icalproperty_transp v){
     215   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRANSP_VALUE);
     216   
     217   icalvalue_set_transp((icalvalue*)impl,v);
     218   return (icalvalue*)impl;
     219}
     220void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v) {
     221    struct icalvalue_impl* impl;
     222    icalerror_check_arg_rv( (value!=0),"value");
     223   
     224    icalerror_check_value_type(value, ICAL_TRANSP_VALUE);
     225    impl = (struct icalvalue_impl*)value;
     226
     227
     228    impl->data.v_enum = v;
     229
     230    icalvalue_reset_kind(impl);
     231}
     232enum icalproperty_transp icalvalue_get_transp (const icalvalue* value) {
     233
     234    icalerror_check_arg ((value!=0),"value");
     235    icalerror_check_value_type (value, ICAL_TRANSP_VALUE);
     236    return ((struct icalvalue_impl*)value)->data.v_enum;
     237}
     238
     239
     240
     241icalvalue* icalvalue_new_string (const char* v){
     242   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_STRING_VALUE);
     243   icalerror_check_arg_rz( (v!=0),"v");
     244
     245   icalvalue_set_string((icalvalue*)impl,v);
     246   return (icalvalue*)impl;
     247}
     248void icalvalue_set_string(icalvalue* value, const char* v) {
     249    struct icalvalue_impl* impl;
     250    icalerror_check_arg_rv( (value!=0),"value");
     251    icalerror_check_arg_rv( (v!=0),"v");
     252
     253    icalerror_check_value_type(value, ICAL_STRING_VALUE);
     254    impl = (struct icalvalue_impl*)value;
     255    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     256
     257
     258    impl->data.v_string = icalmemory_strdup(v);
     259
     260    if (impl->data.v_string == 0){
     261      errno = ENOMEM;
     262    }
     263 
     264
     265    icalvalue_reset_kind(impl);
     266}
     267const char* icalvalue_get_string (const icalvalue* value) {
     268
     269    icalerror_check_arg_rz ((value!=0),"value");
     270    icalerror_check_value_type (value, ICAL_STRING_VALUE);
     271    return ((struct icalvalue_impl*)value)->data.v_string;
     272}
     273
     274
     275
     276icalvalue* icalvalue_new_text (const char* v){
     277   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TEXT_VALUE);
     278   icalerror_check_arg_rz( (v!=0),"v");
     279
     280   icalvalue_set_text((icalvalue*)impl,v);
     281   return (icalvalue*)impl;
     282}
     283void icalvalue_set_text(icalvalue* value, const char* v) {
     284    struct icalvalue_impl* impl;
     285    icalerror_check_arg_rv( (value!=0),"value");
     286    icalerror_check_arg_rv( (v!=0),"v");
     287
     288    icalerror_check_value_type(value, ICAL_TEXT_VALUE);
     289    impl = (struct icalvalue_impl*)value;
     290    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     291
     292
     293    impl->data.v_string = icalmemory_strdup(v);
     294
     295    if (impl->data.v_string == 0){
     296      errno = ENOMEM;
     297    }
     298 
     299
     300    icalvalue_reset_kind(impl);
     301}
     302const char* icalvalue_get_text (const icalvalue* value) {
     303
     304    icalerror_check_arg_rz ((value!=0),"value");
     305    icalerror_check_value_type (value, ICAL_TEXT_VALUE);
     306    return ((struct icalvalue_impl*)value)->data.v_string;
     307}
     308
     309
     310
     311icalvalue* icalvalue_new_requeststatus (struct icalreqstattype v){
     312   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_REQUESTSTATUS_VALUE);
     313   
     314   icalvalue_set_requeststatus((icalvalue*)impl,v);
     315   return (icalvalue*)impl;
     316}
     317void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v) {
     318    struct icalvalue_impl* impl;
     319    icalerror_check_arg_rv( (value!=0),"value");
     320   
     321    icalerror_check_value_type(value, ICAL_REQUESTSTATUS_VALUE);
     322    impl = (struct icalvalue_impl*)value;
     323
     324
     325    impl->data.v_requeststatus = v;
     326
     327    icalvalue_reset_kind(impl);
     328}
     329struct icalreqstattype icalvalue_get_requeststatus (const icalvalue* value) {
     330
     331    icalerror_check_arg ((value!=0),"value");
     332    icalerror_check_value_type (value, ICAL_REQUESTSTATUS_VALUE);
     333    return ((struct icalvalue_impl*)value)->data.v_requeststatus;
     334}
     335
     336
     337
     338icalvalue* icalvalue_new_cmd (enum icalproperty_cmd v){
     339   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CMD_VALUE);
     340   
     341   icalvalue_set_cmd((icalvalue*)impl,v);
     342   return (icalvalue*)impl;
     343}
     344void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v) {
     345    struct icalvalue_impl* impl;
     346    icalerror_check_arg_rv( (value!=0),"value");
     347   
     348    icalerror_check_value_type(value, ICAL_CMD_VALUE);
     349    impl = (struct icalvalue_impl*)value;
     350
     351
     352    impl->data.v_enum = v;
     353
     354    icalvalue_reset_kind(impl);
     355}
     356enum icalproperty_cmd icalvalue_get_cmd (const icalvalue* value) {
     357
     358    icalerror_check_arg ((value!=0),"value");
     359    icalerror_check_value_type (value, ICAL_CMD_VALUE);
     360    return ((struct icalvalue_impl*)value)->data.v_enum;
     361}
     362
     363
     364
     365icalvalue* icalvalue_new_binary (const char* v){
     366   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_BINARY_VALUE);
     367   icalerror_check_arg_rz( (v!=0),"v");
     368
     369   icalvalue_set_binary((icalvalue*)impl,v);
     370   return (icalvalue*)impl;
     371}
     372void icalvalue_set_binary(icalvalue* value, const char* v) {
     373    struct icalvalue_impl* impl;
     374    icalerror_check_arg_rv( (value!=0),"value");
     375    icalerror_check_arg_rv( (v!=0),"v");
     376
     377    icalerror_check_value_type(value, ICAL_BINARY_VALUE);
     378    impl = (struct icalvalue_impl*)value;
     379    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     380
     381
     382    impl->data.v_string = icalmemory_strdup(v);
     383
     384    if (impl->data.v_string == 0){
     385      errno = ENOMEM;
     386    }
     387 
     388
     389    icalvalue_reset_kind(impl);
     390}
     391const char* icalvalue_get_binary (const icalvalue* value) {
     392
     393    icalerror_check_arg_rz ((value!=0),"value");
     394    icalerror_check_value_type (value, ICAL_BINARY_VALUE);
     395    return ((struct icalvalue_impl*)value)->data.v_string;
     396}
     397
     398
     399
     400icalvalue* icalvalue_new_querylevel (enum icalproperty_querylevel v){
     401   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_QUERYLEVEL_VALUE);
     402   
     403   icalvalue_set_querylevel((icalvalue*)impl,v);
     404   return (icalvalue*)impl;
     405}
     406void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v) {
     407    struct icalvalue_impl* impl;
     408    icalerror_check_arg_rv( (value!=0),"value");
     409   
     410    icalerror_check_value_type(value, ICAL_QUERYLEVEL_VALUE);
     411    impl = (struct icalvalue_impl*)value;
     412
     413
     414    impl->data.v_enum = v;
     415
     416    icalvalue_reset_kind(impl);
     417}
     418enum icalproperty_querylevel icalvalue_get_querylevel (const icalvalue* value) {
     419
     420    icalerror_check_arg ((value!=0),"value");
     421    icalerror_check_value_type (value, ICAL_QUERYLEVEL_VALUE);
     422    return ((struct icalvalue_impl*)value)->data.v_enum;
     423}
     424
     425
     426
     427icalvalue* icalvalue_new_period (struct icalperiodtype v){
     428   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_PERIOD_VALUE);
     429   
     430   icalvalue_set_period((icalvalue*)impl,v);
     431   return (icalvalue*)impl;
     432}
     433void icalvalue_set_period(icalvalue* value, struct icalperiodtype v) {
     434    struct icalvalue_impl* impl;
     435    icalerror_check_arg_rv( (value!=0),"value");
     436   
     437    icalerror_check_value_type(value, ICAL_PERIOD_VALUE);
     438    impl = (struct icalvalue_impl*)value;
     439
     440
     441    impl->data.v_period = v;
     442
     443    icalvalue_reset_kind(impl);
     444}
     445struct icalperiodtype icalvalue_get_period (const icalvalue* value) {
     446
     447    icalerror_check_arg ((value!=0),"value");
     448    icalerror_check_value_type (value, ICAL_PERIOD_VALUE);
     449    return ((struct icalvalue_impl*)value)->data.v_period;
     450}
     451
     452
     453
     454icalvalue* icalvalue_new_float (float v){
     455   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_FLOAT_VALUE);
     456   
     457   icalvalue_set_float((icalvalue*)impl,v);
     458   return (icalvalue*)impl;
     459}
     460void icalvalue_set_float(icalvalue* value, float v) {
     461    struct icalvalue_impl* impl;
     462    icalerror_check_arg_rv( (value!=0),"value");
     463   
     464    icalerror_check_value_type(value, ICAL_FLOAT_VALUE);
     465    impl = (struct icalvalue_impl*)value;
     466
     467
     468    impl->data.v_float = v;
     469
     470    icalvalue_reset_kind(impl);
     471}
     472float icalvalue_get_float (const icalvalue* value) {
     473
     474    icalerror_check_arg ((value!=0),"value");
     475    icalerror_check_value_type (value, ICAL_FLOAT_VALUE);
     476    return ((struct icalvalue_impl*)value)->data.v_float;
     477}
     478
     479
     480
     481icalvalue* icalvalue_new_carlevel (enum icalproperty_carlevel v){
     482   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CARLEVEL_VALUE);
     483   
     484   icalvalue_set_carlevel((icalvalue*)impl,v);
     485   return (icalvalue*)impl;
     486}
     487void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v) {
     488    struct icalvalue_impl* impl;
     489    icalerror_check_arg_rv( (value!=0),"value");
     490   
     491    icalerror_check_value_type(value, ICAL_CARLEVEL_VALUE);
     492    impl = (struct icalvalue_impl*)value;
     493
     494
     495    impl->data.v_enum = v;
     496
     497    icalvalue_reset_kind(impl);
     498}
     499enum icalproperty_carlevel icalvalue_get_carlevel (const icalvalue* value) {
     500
     501    icalerror_check_arg ((value!=0),"value");
     502    icalerror_check_value_type (value, ICAL_CARLEVEL_VALUE);
     503    return ((struct icalvalue_impl*)value)->data.v_enum;
     504}
     505
     506
     507
     508icalvalue* icalvalue_new_integer (int v){
     509   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_INTEGER_VALUE);
     510   
     511   icalvalue_set_integer((icalvalue*)impl,v);
     512   return (icalvalue*)impl;
     513}
     514void icalvalue_set_integer(icalvalue* value, int v) {
     515    struct icalvalue_impl* impl;
     516    icalerror_check_arg_rv( (value!=0),"value");
     517   
     518    icalerror_check_value_type(value, ICAL_INTEGER_VALUE);
     519    impl = (struct icalvalue_impl*)value;
     520
     521
     522    impl->data.v_int = v;
     523
     524    icalvalue_reset_kind(impl);
     525}
     526int icalvalue_get_integer (const icalvalue* value) {
     527
     528    icalerror_check_arg ((value!=0),"value");
     529    icalerror_check_value_type (value, ICAL_INTEGER_VALUE);
     530    return ((struct icalvalue_impl*)value)->data.v_int;
     531}
     532
     533
     534
     535icalvalue* icalvalue_new_class (enum icalproperty_class v){
     536   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CLASS_VALUE);
     537   
     538   icalvalue_set_class((icalvalue*)impl,v);
     539   return (icalvalue*)impl;
     540}
     541void icalvalue_set_class(icalvalue* value, enum icalproperty_class v) {
     542    struct icalvalue_impl* impl;
     543    icalerror_check_arg_rv( (value!=0),"value");
     544   
     545    icalerror_check_value_type(value, ICAL_CLASS_VALUE);
     546    impl = (struct icalvalue_impl*)value;
     547
     548
     549    impl->data.v_enum = v;
     550
     551    icalvalue_reset_kind(impl);
     552}
     553enum icalproperty_class icalvalue_get_class (const icalvalue* value) {
     554
     555    icalerror_check_arg ((value!=0),"value");
     556    icalerror_check_value_type (value, ICAL_CLASS_VALUE);
     557    return ((struct icalvalue_impl*)value)->data.v_enum;
     558}
     559
     560
     561
     562icalvalue* icalvalue_new_uri (const char* v){
     563   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_URI_VALUE);
     564   icalerror_check_arg_rz( (v!=0),"v");
     565
     566   icalvalue_set_uri((icalvalue*)impl,v);
     567   return (icalvalue*)impl;
     568}
     569void icalvalue_set_uri(icalvalue* value, const char* v) {
     570    struct icalvalue_impl* impl;
     571    icalerror_check_arg_rv( (value!=0),"value");
     572    icalerror_check_arg_rv( (v!=0),"v");
     573
     574    icalerror_check_value_type(value, ICAL_URI_VALUE);
     575    impl = (struct icalvalue_impl*)value;
     576    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     577
     578
     579    impl->data.v_string = icalmemory_strdup(v);
     580
     581    if (impl->data.v_string == 0){
     582      errno = ENOMEM;
     583    }
     584 
     585
     586    icalvalue_reset_kind(impl);
     587}
     588const char* icalvalue_get_uri (const icalvalue* value) {
     589
     590    icalerror_check_arg_rz ((value!=0),"value");
     591    icalerror_check_value_type (value, ICAL_URI_VALUE);
     592    return ((struct icalvalue_impl*)value)->data.v_string;
     593}
     594
     595
     596
     597icalvalue* icalvalue_new_duration (struct icaldurationtype v){
     598   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DURATION_VALUE);
     599   
     600   icalvalue_set_duration((icalvalue*)impl,v);
     601   return (icalvalue*)impl;
     602}
     603void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v) {
     604    struct icalvalue_impl* impl;
     605    icalerror_check_arg_rv( (value!=0),"value");
     606   
     607    icalerror_check_value_type(value, ICAL_DURATION_VALUE);
     608    impl = (struct icalvalue_impl*)value;
     609
     610
     611    impl->data.v_duration = v;
     612
     613    icalvalue_reset_kind(impl);
     614}
     615struct icaldurationtype icalvalue_get_duration (const icalvalue* value) {
     616
     617    icalerror_check_arg ((value!=0),"value");
     618    icalerror_check_value_type (value, ICAL_DURATION_VALUE);
     619    return ((struct icalvalue_impl*)value)->data.v_duration;
     620}
     621
     622
     623
     624icalvalue* icalvalue_new_boolean (int v){
     625   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_BOOLEAN_VALUE);
     626   
     627   icalvalue_set_boolean((icalvalue*)impl,v);
     628   return (icalvalue*)impl;
     629}
     630void icalvalue_set_boolean(icalvalue* value, int v) {
     631    struct icalvalue_impl* impl;
     632    icalerror_check_arg_rv( (value!=0),"value");
     633   
     634    icalerror_check_value_type(value, ICAL_BOOLEAN_VALUE);
     635    impl = (struct icalvalue_impl*)value;
     636
     637
     638    impl->data.v_int = v;
     639
     640    icalvalue_reset_kind(impl);
     641}
     642int icalvalue_get_boolean (const icalvalue* value) {
     643
     644    icalerror_check_arg ((value!=0),"value");
     645    icalerror_check_value_type (value, ICAL_BOOLEAN_VALUE);
     646    return ((struct icalvalue_impl*)value)->data.v_int;
     647}
     648
     649
     650
     651icalvalue* icalvalue_new_caladdress (const char* v){
     652   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_CALADDRESS_VALUE);
     653   icalerror_check_arg_rz( (v!=0),"v");
     654
     655   icalvalue_set_caladdress((icalvalue*)impl,v);
     656   return (icalvalue*)impl;
     657}
     658void icalvalue_set_caladdress(icalvalue* value, const char* v) {
     659    struct icalvalue_impl* impl;
     660    icalerror_check_arg_rv( (value!=0),"value");
     661    icalerror_check_arg_rv( (v!=0),"v");
     662
     663    icalerror_check_value_type(value, ICAL_CALADDRESS_VALUE);
     664    impl = (struct icalvalue_impl*)value;
     665    if(impl->data.v_string!=0) {free((void*)impl->data.v_string);}
     666
     667
     668    impl->data.v_string = icalmemory_strdup(v);
     669
     670    if (impl->data.v_string == 0){
     671      errno = ENOMEM;
     672    }
     673 
     674
     675    icalvalue_reset_kind(impl);
     676}
     677const char* icalvalue_get_caladdress (const icalvalue* value) {
     678
     679    icalerror_check_arg_rz ((value!=0),"value");
     680    icalerror_check_value_type (value, ICAL_CALADDRESS_VALUE);
     681    return ((struct icalvalue_impl*)value)->data.v_string;
     682}
     683
     684
     685
     686icalvalue* icalvalue_new_xlicclass (enum icalproperty_xlicclass v){
     687   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_XLICCLASS_VALUE);
     688   
     689   icalvalue_set_xlicclass((icalvalue*)impl,v);
     690   return (icalvalue*)impl;
     691}
     692void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v) {
     693    struct icalvalue_impl* impl;
     694    icalerror_check_arg_rv( (value!=0),"value");
     695   
     696    icalerror_check_value_type(value, ICAL_XLICCLASS_VALUE);
     697    impl = (struct icalvalue_impl*)value;
     698
     699
     700    impl->data.v_enum = v;
     701
     702    icalvalue_reset_kind(impl);
     703}
     704enum icalproperty_xlicclass icalvalue_get_xlicclass (const icalvalue* value) {
     705
     706    icalerror_check_arg ((value!=0),"value");
     707    icalerror_check_value_type (value, ICAL_XLICCLASS_VALUE);
     708    return ((struct icalvalue_impl*)value)->data.v_enum;
     709}
     710
     711
     712
     713icalvalue* icalvalue_new_action (enum icalproperty_action v){
     714   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_ACTION_VALUE);
     715   
     716   icalvalue_set_action((icalvalue*)impl,v);
     717   return (icalvalue*)impl;
     718}
     719void icalvalue_set_action(icalvalue* value, enum icalproperty_action v) {
     720    struct icalvalue_impl* impl;
     721    icalerror_check_arg_rv( (value!=0),"value");
     722   
     723    icalerror_check_value_type(value, ICAL_ACTION_VALUE);
     724    impl = (struct icalvalue_impl*)value;
     725
     726
     727    impl->data.v_enum = v;
     728
     729    icalvalue_reset_kind(impl);
     730}
     731enum icalproperty_action icalvalue_get_action (const icalvalue* value) {
     732
     733    icalerror_check_arg ((value!=0),"value");
     734    icalerror_check_value_type (value, ICAL_ACTION_VALUE);
     735    return ((struct icalvalue_impl*)value)->data.v_enum;
     736}
     737
     738
     739
     740icalvalue* icalvalue_new_datetime (struct icaltimetype v){
     741   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIME_VALUE);
     742   
     743   icalvalue_set_datetime((icalvalue*)impl,v);
     744   return (icalvalue*)impl;
     745}
     746void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v) {
     747    struct icalvalue_impl* impl;
     748    icalerror_check_arg_rv( (value!=0),"value");
     749   
     750    icalerror_check_value_type(value, ICAL_DATETIME_VALUE);
     751    impl = (struct icalvalue_impl*)value;
     752
     753
     754    impl->data.v_time = v;
     755
     756    icalvalue_reset_kind(impl);
     757}
     758struct icaltimetype icalvalue_get_datetime (const icalvalue* value) {
     759
     760    icalerror_check_arg ((value!=0),"value");
     761    icalerror_check_value_type (value, ICAL_DATETIME_VALUE);
     762    return ((struct icalvalue_impl*)value)->data.v_time;
     763}
     764
     765
     766
     767icalvalue* icalvalue_new_utcoffset (int v){
     768   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_UTCOFFSET_VALUE);
     769   
     770   icalvalue_set_utcoffset((icalvalue*)impl,v);
     771   return (icalvalue*)impl;
     772}
     773void icalvalue_set_utcoffset(icalvalue* value, int v) {
     774    struct icalvalue_impl* impl;
     775    icalerror_check_arg_rv( (value!=0),"value");
     776   
     777    icalerror_check_value_type(value, ICAL_UTCOFFSET_VALUE);
     778    impl = (struct icalvalue_impl*)value;
     779
     780
     781    impl->data.v_int = v;
     782
     783    icalvalue_reset_kind(impl);
     784}
     785int icalvalue_get_utcoffset (const icalvalue* value) {
     786
     787    icalerror_check_arg ((value!=0),"value");
     788    icalerror_check_value_type (value, ICAL_UTCOFFSET_VALUE);
     789    return ((struct icalvalue_impl*)value)->data.v_int;
     790}
     791
     792
     793
     794icalvalue* icalvalue_new_method (enum icalproperty_method v){
     795   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_METHOD_VALUE);
     796   
     797   icalvalue_set_method((icalvalue*)impl,v);
     798   return (icalvalue*)impl;
     799}
     800void icalvalue_set_method(icalvalue* value, enum icalproperty_method v) {
     801    struct icalvalue_impl* impl;
     802    icalerror_check_arg_rv( (value!=0),"value");
     803   
     804    icalerror_check_value_type(value, ICAL_METHOD_VALUE);
     805    impl = (struct icalvalue_impl*)value;
     806
     807
     808    impl->data.v_enum = v;
     809
     810    icalvalue_reset_kind(impl);
     811}
     812enum icalproperty_method icalvalue_get_method (const icalvalue* value) {
     813
     814    icalerror_check_arg ((value!=0),"value");
     815    icalerror_check_value_type (value, ICAL_METHOD_VALUE);
     816    return ((struct icalvalue_impl*)value)->data.v_enum;
     817}
     818
     819
     820int icalvalue_kind_is_valid(const icalvalue_kind kind)
     821{
     822    int i = 0;
     823    do {
     824      if (value_map[i].kind == kind)
     825        return 1;
     826    } while (value_map[i++].kind != ICAL_NO_VALUE);
     827
     828    return 0;
     829
     830
     831const char* icalvalue_kind_to_string(const icalvalue_kind kind)
     832{
     833    int i;
     834
     835    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
     836        if (value_map[i].kind == kind) {
     837            return value_map[i].name;
     838        }
     839    }
     840
     841    return 0;
     842}
     843
     844icalvalue_kind icalvalue_string_to_kind(const char* str)
     845{
     846    int i;
     847
     848    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
     849        if (strcasecmp(value_map[i].name,str) == 0) {
     850            return value_map[i].kind;
     851        }
     852    }
     853
     854    return  value_map[i].kind;
     855
     856}
     857
     858icalvalue* icalvalue_new_x (const char* v){
     859   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_X_VALUE);
     860   icalerror_check_arg_rz( (v!=0),"v");
     861
     862   icalvalue_set_x((icalvalue*)impl,v);
     863   return (icalvalue*)impl;
     864}
     865void icalvalue_set_x(icalvalue* impl, const char* v) {
     866    icalerror_check_arg_rv( (impl!=0),"value");
     867    icalerror_check_arg_rv( (v!=0),"v");
     868
     869    if(impl->x_value!=0) {free((void*)impl->x_value);}
     870
     871    impl->x_value = icalmemory_strdup(v);
     872
     873    if (impl->x_value == 0){
     874      errno = ENOMEM;
     875    }
     876 
     877 }
     878const char* icalvalue_get_x(const icalvalue* value) {
     879
     880    icalerror_check_arg( (value!=0),"value");
     881    icalerror_check_value_type(value, ICAL_X_VALUE);
     882    return value->x_value;
     883}
     884
     885/* Recur is a special case, so it is not auto generated. */
     886icalvalue*
     887icalvalue_new_recur (struct icalrecurrencetype v)
     888{
     889   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_RECUR_VALUE);
     890   
     891   icalvalue_set_recur((icalvalue*)impl,v);
     892
     893   return (icalvalue*)impl;
     894}
     895
     896void
     897icalvalue_set_recur(icalvalue* impl, struct icalrecurrencetype v)
     898{
     899    icalerror_check_arg_rv( (impl!=0),"value");
     900    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
     901
     902    if (impl->data.v_recur != 0){
     903        free(impl->data.v_recur);
     904        impl->data.v_recur = 0;
     905    }
     906
     907    impl->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
     908
     909    if (impl->data.v_recur == 0){
     910        icalerror_set_errno(ICAL_NEWFAILED_ERROR);
     911        return;
     912    } else {
     913        memcpy(impl->data.v_recur, &v, sizeof(struct icalrecurrencetype));
     914    }
     915               
     916}
     917
     918struct icalrecurrencetype
     919icalvalue_get_recur(const icalvalue* value)
     920{
     921    icalerror_check_arg( (value!=0),"value");
     922    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
     923 
     924    return *(value->data.v_recur);
     925}
     926
     927
     928
     929
     930icalvalue*
     931icalvalue_new_trigger (struct icaltriggertype v)
     932{
     933   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRIGGER_VALUE);
     934 
     935   icalvalue_set_trigger((icalvalue*)impl,v);
     936
     937   return (icalvalue*)impl;
     938}
     939
     940void
     941icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v)
     942{
     943    icalerror_check_arg_rv( (value!=0),"value");
     944   
     945   if(!icaltime_is_null_time(v.time)){
     946       icalvalue_set_datetime(value,v.time);
     947       value->kind = ICAL_DATETIME_VALUE;
     948   } else {
     949       icalvalue_set_duration(value,v.duration);
     950       value->kind = ICAL_DURATION_VALUE;
     951   }
     952}
     953
     954struct icaltriggertype
     955icalvalue_get_trigger(const icalvalue* impl)
     956{
     957    struct icaltriggertype tr;
     958
     959    icalerror_check_arg( (impl!=0),"value");
     960    icalerror_check_arg( (impl!=0),"value");
     961
     962    if(impl->kind == ICAL_DATETIME_VALUE){
     963         tr.duration = icaldurationtype_from_int(0);
     964         tr.time = impl->data.v_time;
     965    } else if(impl->kind == ICAL_DURATION_VALUE){
     966        tr.time = icaltime_null_time();
     967        tr.duration = impl->data.v_duration;
     968    } else {
     969        tr.duration = icaldurationtype_from_int(0);
     970        tr.time = icaltime_null_time();
     971        icalerror_set_errno(ICAL_BADARG_ERROR);
     972    }
     973
     974    return tr;
     975}
     976
     977/* DATE-TIME-PERIOD is a special case, and is not auto generated */
     978
     979icalvalue*
     980icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v)
     981{
     982   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE);
     983
     984   icalvalue_set_datetimeperiod(impl,v);
     985
     986   return (icalvalue*)impl;
     987}
     988
     989void
     990icalvalue_set_datetimeperiod(icalvalue* impl, struct icaldatetimeperiodtype v)
     991{
     992    icalerror_check_arg_rv( (impl!=0),"value");
     993   
     994    icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
     995
     996    if(!icaltime_is_null_time(v.time)){
     997        if(!icaltime_is_valid_time(v.time)){
     998            icalerror_set_errno(ICAL_BADARG_ERROR);
     999            return;
     1000        }
     1001        impl->kind = ICAL_DATETIME_VALUE;
     1002        icalvalue_set_datetime(impl,v.time);
     1003    } else if (!icalperiodtype_is_null_period(v.period)) {
     1004        if(!icalperiodtype_is_valid_period(v.period)){
     1005            icalerror_set_errno(ICAL_BADARG_ERROR);
     1006            return;
     1007        }
     1008        impl->kind = ICAL_PERIOD_VALUE;
     1009        icalvalue_set_period(impl,v.period);
     1010    } else {
     1011        icalerror_set_errno(ICAL_BADARG_ERROR);
     1012    }
     1013}
     1014
     1015struct icaldatetimeperiodtype
     1016icalvalue_get_datetimeperiod(const icalvalue* impl)
     1017{
     1018  struct icaldatetimeperiodtype dtp;
     1019 
     1020  icalerror_check_arg( (impl!=0),"value");
     1021  icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
     1022 
     1023  if( impl->kind == ICAL_DATETIME_VALUE || impl->kind == ICAL_DATE_VALUE ){
     1024      dtp.period = icalperiodtype_null_period();
     1025      dtp.time = impl->data.v_time;
     1026  } else if(impl->kind == ICAL_PERIOD_VALUE) {
     1027      dtp.period = impl->data.v_period;
     1028      dtp.time = icaltime_null_time();
     1029  } else {
     1030      dtp.period = icalperiodtype_null_period();
     1031      dtp.time = icaltime_null_time();
     1032      icalerror_set_errno(ICAL_BADARG_ERROR);
     1033  }     
     1034
     1035  return dtp;
     1036}
     1037
     1038
     1039
     1040icalvalue *
     1041icalvalue_new_attach (icalattach *attach)
     1042{
     1043    struct icalvalue_impl *impl;
     1044
     1045    icalerror_check_arg_rz ((attach != NULL), "attach");
     1046
     1047    impl = icalvalue_new_impl (ICAL_ATTACH_VALUE);
     1048    if (!impl) {
     1049        errno = ENOMEM;
     1050        return NULL;
     1051    }
     1052
     1053    icalvalue_set_attach ((icalvalue *) impl, attach);
     1054    return (icalvalue *) impl;
     1055}
     1056
     1057void
     1058icalvalue_set_attach (icalvalue *value, icalattach *attach)
     1059{
     1060    struct icalvalue_impl *impl;
     1061 
     1062    icalerror_check_arg_rv ((value != NULL), "value");
     1063    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
     1064    icalerror_check_arg_rv ((attach != NULL), "attach");
     1065 
     1066    impl = (struct icalvalue_impl *) value;
     1067 
     1068    icalattach_ref (attach);
     1069
     1070    if (impl->data.v_attach)
     1071        icalattach_unref (impl->data.v_attach);
     1072 
     1073    impl->data.v_attach = attach;
     1074}
     1075
     1076icalattach *
     1077icalvalue_get_attach (const icalvalue *value)
     1078{
     1079    icalerror_check_arg_rz ((value != NULL), "value");
     1080    icalerror_check_value_type (value, ICAL_ATTACH_VALUE);
     1081   
     1082    return value->data.v_attach;
     1083}
     1084
     1085
     1086
     1087
     1088
     1089
     1090
     1091/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
     1092   types */
     1093
     1094
     1095/* Everything below this line is machine generated. Do not edit. */
  • src/libical/icalderivedvalue.h

    diff -Nurb libical-0.42.orig/src/libical/icalderivedvalue.h libical-0.42/src/libical/icalderivedvalue.h
    old new  
     1/* -*- Mode: C -*- */
     2/*======================================================================
     3  FILE: icalvalue.h
     4  CREATOR: eric 20 March 1999
     5
     6
     7  $Id: icalderivedvalue.h.in,v 1.10 2007-04-30 13:57:48 artcancro Exp $
     8  $Locker:  $
     9
     10 
     11
     12 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     13
     14 This program is free software; you can redistribute it and/or modify
     15 it under the terms of either:
     16
     17    The LGPL as published by the Free Software Foundation, version
     18    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     19
     20  Or:
     21
     22    The Mozilla Public License Version 1.0. You may obtain a copy of
     23    the License at http://www.mozilla.org/MPL/
     24
     25  The original code is icalvalue.h
     26
     27  ======================================================================*/
     28
     29#ifndef ICALDERIVEDVALUE_H
     30#define ICALDERIVEDVALUE_H
     31
     32#include "icaltypes.h"
     33#include "icalrecur.h"
     34#include "icaltime.h"
     35#include "icalduration.h"
     36#include "icalperiod.h"
     37#include "icalattach.h"
     38     
     39typedef struct icalvalue_impl icalvalue;
     40
     41
     42
     43void icalvalue_set_x(icalvalue* value, const char* v);
     44icalvalue* icalvalue_new_x(const char* v);
     45const char* icalvalue_get_x(const icalvalue* value);
     46
     47icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
     48void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
     49struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
     50
     51icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
     52void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
     53struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
     54
     55icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
     56void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
     57struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
     58
     59icalvalue *icalvalue_new_attach (icalattach *attach);
     60void icalvalue_set_attach (icalvalue *value, icalattach *attach);
     61icalattach *icalvalue_get_attach (const icalvalue *value);
     62
     63void icalvalue_reset_kind(icalvalue* value);
     64
     65typedef enum icalvalue_kind {
     66   ICAL_ANY_VALUE=5000,
     67    ICAL_QUERY_VALUE=5001,
     68    ICAL_DATE_VALUE=5002,
     69    ICAL_ATTACH_VALUE=5003,
     70    ICAL_GEO_VALUE=5004,
     71    ICAL_STATUS_VALUE=5005,
     72    ICAL_TRANSP_VALUE=5006,
     73    ICAL_STRING_VALUE=5007,
     74    ICAL_TEXT_VALUE=5008,
     75    ICAL_REQUESTSTATUS_VALUE=5009,
     76    ICAL_CMD_VALUE=5010,
     77    ICAL_BINARY_VALUE=5011,
     78    ICAL_QUERYLEVEL_VALUE=5012,
     79    ICAL_PERIOD_VALUE=5013,
     80    ICAL_FLOAT_VALUE=5014,
     81    ICAL_DATETIMEPERIOD_VALUE=5015,
     82    ICAL_CARLEVEL_VALUE=5016,
     83    ICAL_INTEGER_VALUE=5017,
     84    ICAL_CLASS_VALUE=5018,
     85    ICAL_URI_VALUE=5019,
     86    ICAL_DURATION_VALUE=5020,
     87    ICAL_BOOLEAN_VALUE=5021,
     88    ICAL_X_VALUE=5022,
     89    ICAL_CALADDRESS_VALUE=5023,
     90    ICAL_TRIGGER_VALUE=5024,
     91    ICAL_XLICCLASS_VALUE=5025,
     92    ICAL_RECUR_VALUE=5026,
     93    ICAL_ACTION_VALUE=5027,
     94    ICAL_DATETIME_VALUE=5028,
     95    ICAL_UTCOFFSET_VALUE=5029,
     96    ICAL_METHOD_VALUE=5030,
     97   ICAL_NO_VALUE=5031
     98} icalvalue_kind ;
     99
     100#define ICALPROPERTY_FIRST_ENUM 10000
     101
     102typedef enum icalproperty_action {
     103    ICAL_ACTION_X = 10000,
     104    ICAL_ACTION_AUDIO = 10001,
     105    ICAL_ACTION_DISPLAY = 10002,
     106    ICAL_ACTION_EMAIL = 10003,
     107    ICAL_ACTION_PROCEDURE = 10004,
     108    ICAL_ACTION_NONE = 10005
     109} icalproperty_action;
     110
     111typedef enum icalproperty_carlevel {
     112    ICAL_CARLEVEL_X = 10006,
     113    ICAL_CARLEVEL_CARNONE = 10007,
     114    ICAL_CARLEVEL_CARMIN = 10008,
     115    ICAL_CARLEVEL_CARFULL1 = 10009,
     116    ICAL_CARLEVEL_NONE = 10010
     117} icalproperty_carlevel;
     118
     119typedef enum icalproperty_class {
     120    ICAL_CLASS_X = 10011,
     121    ICAL_CLASS_PUBLIC = 10012,
     122    ICAL_CLASS_PRIVATE = 10013,
     123    ICAL_CLASS_CONFIDENTIAL = 10014,
     124    ICAL_CLASS_NONE = 10015
     125} icalproperty_class;
     126
     127typedef enum icalproperty_cmd {
     128    ICAL_CMD_X = 10016,
     129    ICAL_CMD_ABORT = 10017,
     130    ICAL_CMD_CONTINUE = 10018,
     131    ICAL_CMD_CREATE = 10019,
     132    ICAL_CMD_DELETE = 10020,
     133    ICAL_CMD_GENERATEUID = 10021,
     134    ICAL_CMD_GETCAPABILITY = 10022,
     135    ICAL_CMD_IDENTIFY = 10023,
     136    ICAL_CMD_MODIFY = 10024,
     137    ICAL_CMD_MOVE = 10025,
     138    ICAL_CMD_REPLY = 10026,
     139    ICAL_CMD_SEARCH = 10027,
     140    ICAL_CMD_SETLOCALE = 10028,
     141    ICAL_CMD_NONE = 10029
     142} icalproperty_cmd;
     143
     144typedef enum icalproperty_method {
     145    ICAL_METHOD_X = 10030,
     146    ICAL_METHOD_PUBLISH = 10031,
     147    ICAL_METHOD_REQUEST = 10032,
     148    ICAL_METHOD_REPLY = 10033,
     149    ICAL_METHOD_ADD = 10034,
     150    ICAL_METHOD_CANCEL = 10035,
     151    ICAL_METHOD_REFRESH = 10036,
     152    ICAL_METHOD_COUNTER = 10037,
     153    ICAL_METHOD_DECLINECOUNTER = 10038,
     154    ICAL_METHOD_CREATE = 10039,
     155    ICAL_METHOD_READ = 10040,
     156    ICAL_METHOD_RESPONSE = 10041,
     157    ICAL_METHOD_MOVE = 10042,
     158    ICAL_METHOD_MODIFY = 10043,
     159    ICAL_METHOD_GENERATEUID = 10044,
     160    ICAL_METHOD_DELETE = 10045,
     161    ICAL_METHOD_NONE = 10046
     162} icalproperty_method;
     163
     164typedef enum icalproperty_querylevel {
     165    ICAL_QUERYLEVEL_X = 10047,
     166    ICAL_QUERYLEVEL_CALQL1 = 10048,
     167    ICAL_QUERYLEVEL_CALQLNONE = 10049,
     168    ICAL_QUERYLEVEL_NONE = 10050
     169} icalproperty_querylevel;
     170
     171typedef enum icalproperty_status {
     172    ICAL_STATUS_X = 10051,
     173    ICAL_STATUS_TENTATIVE = 10052,
     174    ICAL_STATUS_CONFIRMED = 10053,
     175    ICAL_STATUS_COMPLETED = 10054,
     176    ICAL_STATUS_NEEDSACTION = 10055,
     177    ICAL_STATUS_CANCELLED = 10056,
     178    ICAL_STATUS_INPROCESS = 10057,
     179    ICAL_STATUS_DRAFT = 10058,
     180    ICAL_STATUS_FINAL = 10059,
     181    ICAL_STATUS_NONE = 10060
     182} icalproperty_status;
     183
     184typedef enum icalproperty_transp {
     185    ICAL_TRANSP_X = 10061,
     186    ICAL_TRANSP_OPAQUE = 10062,
     187    ICAL_TRANSP_OPAQUENOCONFLICT = 10063,
     188    ICAL_TRANSP_TRANSPARENT = 10064,
     189    ICAL_TRANSP_TRANSPARENTNOCONFLICT = 10065,
     190    ICAL_TRANSP_NONE = 10066
     191} icalproperty_transp;
     192
     193typedef enum icalproperty_xlicclass {
     194    ICAL_XLICCLASS_X = 10067,
     195    ICAL_XLICCLASS_PUBLISHNEW = 10068,
     196    ICAL_XLICCLASS_PUBLISHUPDATE = 10069,
     197    ICAL_XLICCLASS_PUBLISHFREEBUSY = 10070,
     198    ICAL_XLICCLASS_REQUESTNEW = 10071,
     199    ICAL_XLICCLASS_REQUESTUPDATE = 10072,
     200    ICAL_XLICCLASS_REQUESTRESCHEDULE = 10073,
     201    ICAL_XLICCLASS_REQUESTDELEGATE = 10074,
     202    ICAL_XLICCLASS_REQUESTNEWORGANIZER = 10075,
     203    ICAL_XLICCLASS_REQUESTFORWARD = 10076,
     204    ICAL_XLICCLASS_REQUESTSTATUS = 10077,
     205    ICAL_XLICCLASS_REQUESTFREEBUSY = 10078,
     206    ICAL_XLICCLASS_REPLYACCEPT = 10079,
     207    ICAL_XLICCLASS_REPLYDECLINE = 10080,
     208    ICAL_XLICCLASS_REPLYDELEGATE = 10081,
     209    ICAL_XLICCLASS_REPLYCRASHERACCEPT = 10082,
     210    ICAL_XLICCLASS_REPLYCRASHERDECLINE = 10083,
     211    ICAL_XLICCLASS_ADDINSTANCE = 10084,
     212    ICAL_XLICCLASS_CANCELEVENT = 10085,
     213    ICAL_XLICCLASS_CANCELINSTANCE = 10086,
     214    ICAL_XLICCLASS_CANCELALL = 10087,
     215    ICAL_XLICCLASS_REFRESH = 10088,
     216    ICAL_XLICCLASS_COUNTER = 10089,
     217    ICAL_XLICCLASS_DECLINECOUNTER = 10090,
     218    ICAL_XLICCLASS_MALFORMED = 10091,
     219    ICAL_XLICCLASS_OBSOLETE = 10092,
     220    ICAL_XLICCLASS_MISSEQUENCED = 10093,
     221    ICAL_XLICCLASS_UNKNOWN = 10094,
     222    ICAL_XLICCLASS_NONE = 10095
     223} icalproperty_xlicclass;
     224
     225#define ICALPROPERTY_LAST_ENUM 10096
     226
     227
     228 /* QUERY */
     229icalvalue* icalvalue_new_query(const char* v);
     230const char* icalvalue_get_query(const icalvalue* value);
     231void icalvalue_set_query(icalvalue* value, const char* v);
     232
     233
     234 /* DATE */
     235icalvalue* icalvalue_new_date(struct icaltimetype v);
     236struct icaltimetype icalvalue_get_date(const icalvalue* value);
     237void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
     238
     239
     240 /* GEO */
     241icalvalue* icalvalue_new_geo(struct icalgeotype v);
     242struct icalgeotype icalvalue_get_geo(const icalvalue* value);
     243void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
     244
     245
     246 /* STATUS */
     247icalvalue* icalvalue_new_status(enum icalproperty_status v);
     248enum icalproperty_status icalvalue_get_status(const icalvalue* value);
     249void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
     250
     251
     252 /* TRANSP */
     253icalvalue* icalvalue_new_transp(enum icalproperty_transp v);
     254enum icalproperty_transp icalvalue_get_transp(const icalvalue* value);
     255void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
     256
     257
     258 /* STRING */
     259icalvalue* icalvalue_new_string(const char* v);
     260const char* icalvalue_get_string(const icalvalue* value);
     261void icalvalue_set_string(icalvalue* value, const char* v);
     262
     263
     264 /* TEXT */
     265icalvalue* icalvalue_new_text(const char* v);
     266const char* icalvalue_get_text(const icalvalue* value);
     267void icalvalue_set_text(icalvalue* value, const char* v);
     268
     269
     270 /* REQUEST-STATUS */
     271icalvalue* icalvalue_new_requeststatus(struct icalreqstattype v);
     272struct icalreqstattype icalvalue_get_requeststatus(const icalvalue* value);
     273void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v);
     274
     275
     276 /* CMD */
     277icalvalue* icalvalue_new_cmd(enum icalproperty_cmd v);
     278enum icalproperty_cmd icalvalue_get_cmd(const icalvalue* value);
     279void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v);
     280
     281
     282 /* BINARY */
     283icalvalue* icalvalue_new_binary(const char* v);
     284const char* icalvalue_get_binary(const icalvalue* value);
     285void icalvalue_set_binary(icalvalue* value, const char* v);
     286
     287
     288 /* QUERY-LEVEL */
     289icalvalue* icalvalue_new_querylevel(enum icalproperty_querylevel v);
     290enum icalproperty_querylevel icalvalue_get_querylevel(const icalvalue* value);
     291void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v);
     292
     293
     294 /* PERIOD */
     295icalvalue* icalvalue_new_period(struct icalperiodtype v);
     296struct icalperiodtype icalvalue_get_period(const icalvalue* value);
     297void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
     298
     299
     300 /* FLOAT */
     301icalvalue* icalvalue_new_float(float v);
     302float icalvalue_get_float(const icalvalue* value);
     303void icalvalue_set_float(icalvalue* value, float v);
     304
     305
     306 /* CAR-LEVEL */
     307icalvalue* icalvalue_new_carlevel(enum icalproperty_carlevel v);
     308enum icalproperty_carlevel icalvalue_get_carlevel(const icalvalue* value);
     309void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v);
     310
     311
     312 /* INTEGER */
     313icalvalue* icalvalue_new_integer(int v);
     314int icalvalue_get_integer(const icalvalue* value);
     315void icalvalue_set_integer(icalvalue* value, int v);
     316
     317
     318 /* CLASS */
     319icalvalue* icalvalue_new_class(enum icalproperty_class v);
     320enum icalproperty_class icalvalue_get_class(const icalvalue* value);
     321void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
     322
     323
     324 /* URI */
     325icalvalue* icalvalue_new_uri(const char* v);
     326const char* icalvalue_get_uri(const icalvalue* value);
     327void icalvalue_set_uri(icalvalue* value, const char* v);
     328
     329
     330 /* DURATION */
     331icalvalue* icalvalue_new_duration(struct icaldurationtype v);
     332struct icaldurationtype icalvalue_get_duration(const icalvalue* value);
     333void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
     334
     335
     336 /* BOOLEAN */
     337icalvalue* icalvalue_new_boolean(int v);
     338int icalvalue_get_boolean(const icalvalue* value);
     339void icalvalue_set_boolean(icalvalue* value, int v);
     340
     341
     342 /* CAL-ADDRESS */
     343icalvalue* icalvalue_new_caladdress(const char* v);
     344const char* icalvalue_get_caladdress(const icalvalue* value);
     345void icalvalue_set_caladdress(icalvalue* value, const char* v);
     346
     347
     348 /* X-LIC-CLASS */
     349icalvalue* icalvalue_new_xlicclass(enum icalproperty_xlicclass v);
     350enum icalproperty_xlicclass icalvalue_get_xlicclass(const icalvalue* value);
     351void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v);
     352
     353
     354 /* ACTION */
     355icalvalue* icalvalue_new_action(enum icalproperty_action v);
     356enum icalproperty_action icalvalue_get_action(const icalvalue* value);
     357void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
     358
     359
     360 /* DATE-TIME */
     361icalvalue* icalvalue_new_datetime(struct icaltimetype v);
     362struct icaltimetype icalvalue_get_datetime(const icalvalue* value);
     363void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
     364
     365
     366 /* UTC-OFFSET */
     367icalvalue* icalvalue_new_utcoffset(int v);
     368int icalvalue_get_utcoffset(const icalvalue* value);
     369void icalvalue_set_utcoffset(icalvalue* value, int v);
     370
     371
     372 /* METHOD */
     373icalvalue* icalvalue_new_method(enum icalproperty_method v);
     374enum icalproperty_method icalvalue_get_method(const icalvalue* value);
     375void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
     376
     377#endif /*ICALVALUE_H*/
  • src/libical/ical.h

    diff -Nurb libical-0.42.orig/src/libical/ical.h libical-0.42/src/libical/ical.h
    old new  
     1#ifndef LIBICAL_ICAL_H
     2#define LIBICAL_ICAL_H
     3#ifdef __cplusplus
     4extern "C" {
     5#endif
     6/*
     7 $Id$
     8*/
     9#ifndef ICAL_VERSION_H
     10#define ICAL_VERSION_H
     11
     12#define ICAL_PACKAGE "libical"
     13#define ICAL_VERSION "0.42"
     14
     15#endif
     16/* -*- Mode: C -*- */
     17/*======================================================================
     18 FILE: icaltime.h
     19 CREATOR: eric 02 June 2000
     20
     21
     22
     23 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     24     http://www.softwarestudio.org
     25
     26 This program is free software; you can redistribute it and/or modify
     27 it under the terms of either:
     28
     29    The LGPL as published by the Free Software Foundation, version
     30    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     31
     32  Or:
     33
     34    The Mozilla Public License Version 1.0. You may obtain a copy of
     35    the License at http://www.mozilla.org/MPL/
     36
     37 The Original Code is eric. The Initial Developer of the Original
     38 Code is Eric Busboom
     39
     40
     41======================================================================*/
     42
     43/**     @file icaltime.h
     44 *      @brief struct icaltimetype is a pseudo-object that abstracts time
     45 *      handling.
     46 *
     47 *      It can represent either a DATE or a DATE-TIME (floating, UTC or in a
     48 *      given timezone), and it keeps track internally of its native timezone.
     49 *
     50 *      The typical usage is to call the correct constructor specifying the
     51 *      desired timezone. If this is not known until a later time, the
     52 *      correct behavior is to specify a NULL timezone and call
     53 *      icaltime_convert_to_zone() at a later time.
     54 *
     55 *      There are several ways to create a new icaltimetype:
     56 *
     57 *      - icaltime_null_time()
     58 *      - icaltime_null_date()
     59 *      - icaltime_current_time_with_zone()
     60 *      - icaltime_today()
     61 *      - icaltime_from_timet_with_zone(time_t tm, int is_date,
     62 *              icaltimezone *zone)
     63 *      - icaltime_from_string_with_zone(const char* str, icaltimezone *zone)
     64 *      - icaltime_from_day_of_year(int doy,  int year)
     65 *      - icaltime_from_week_number(int week_number, int year)
     66 *
     67 *      italtimetype objects can be converted to different formats:
     68 *
     69 *      - icaltime_as_timet(struct icaltimetype tt)
     70 *      - icaltime_as_timet_with_zone(struct icaltimetype tt,
     71 *              icaltimezone *zone)
     72 *      - icaltime_as_ical_string(struct icaltimetype tt)
     73 *
     74 *      Accessor methods include:
     75 *
     76 *      - icaltime_get_timezone(struct icaltimetype t)
     77 *      - icaltime_get_tzid(struct icaltimetype t)
     78 *      - icaltime_set_timezone(struct icaltimetype t, const icaltimezone *zone)
     79 *      - icaltime_day_of_year(struct icaltimetype t)
     80 *      - icaltime_day_of_week(struct icaltimetype t)
     81 *      - icaltime_start_doy_of_week(struct icaltimetype t, int fdow)
     82 *      - icaltime_week_number(struct icaltimetype t)
     83 *
     84 *      Query methods include:
     85 *
     86 *      - icaltime_is_null_time(struct icaltimetype t)
     87 *      - icaltime_is_valid_time(struct icaltimetype t)
     88 *      - icaltime_is_date(struct icaltimetype t)
     89 *      - icaltime_is_utc(struct icaltimetype t)
     90 *      - icaltime_is_floating(struct icaltimetype t)
     91 *
     92 *      Modify, compare and utility methods include:
     93 *
     94 *      - icaltime_add(struct icaltimetype t, struct icaldurationtype  d)
     95 *      - icaltime_subtract(struct icaltimetype t1, struct icaltimetype t2)
     96 *      - icaltime_compare_with_zone(struct icaltimetype a,struct icaltimetype b)
     97 *      - icaltime_compare(struct icaltimetype a,struct icaltimetype b)
     98 *      - icaltime_compare_date_only(struct icaltimetype a,
     99 *              struct icaltimetype b)
     100 *      - icaltime_adjust(struct icaltimetype *tt, int days, int hours,
     101 *              int minutes, int seconds);
     102 *      - icaltime_normalize(struct icaltimetype t);
     103 *      - icaltime_convert_to_zone(const struct icaltimetype tt,
     104 *              icaltimezone *zone);
     105 */
     106
     107#ifndef ICALTIME_H
     108#define ICALTIME_H
     109
     110#include <time.h>
     111
     112/* An opaque struct representing a timezone. We declare this here to avoid
     113   a circular dependancy. */
     114#ifndef ICALTIMEZONE_DEFINED
     115#define ICALTIMEZONE_DEFINED
     116typedef struct _icaltimezone            icaltimezone;
     117#endif
     118
     119/** icaltime_span is returned by icalcomponent_get_span() */
     120struct icaltime_span {
     121        time_t start;   /**< in UTC */
     122        time_t end;     /**< in UTC */
     123        int is_busy;    /**< 1->busy time, 0-> free time */
     124};
     125
     126typedef struct icaltime_span icaltime_span;
     127
     128/*
     129 *      FIXME
     130 *
     131 *      is_utc is redundant, and might be considered a minor optimization.
     132 *      It might be deprecated, so you should use icaltime_is_utc() instead.
     133 */
     134struct icaltimetype
     135{
     136        int year;       /**< Actual year, e.g. 2001. */
     137        int month;      /**< 1 (Jan) to 12 (Dec). */
     138        int day;
     139        int hour;
     140        int minute;
     141        int second;
     142
     143        int is_utc;     /**< 1-> time is in UTC timezone */
     144
     145        int is_date;    /**< 1 -> interpret this as date. */
     146   
     147        int is_daylight; /**< 1 -> time is in daylight savings time. */
     148   
     149        const icaltimezone *zone;       /**< timezone */
     150};     
     151
     152typedef struct icaltimetype icaltimetype;
     153
     154/** Return a null time, which indicates no time has been set.
     155    This time represent the beginning of the epoch */
     156struct icaltimetype icaltime_null_time(void);
     157
     158/** Return a null date */
     159struct icaltimetype icaltime_null_date(void);
     160
     161/** Returns the current time in the given timezone, as an icaltimetype. */
     162struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
     163
     164/** Returns the current day as an icaltimetype, with is_date set. */
     165struct icaltimetype icaltime_today(void);
     166
     167/** Convert seconds past UNIX epoch to a timetype*/
     168struct icaltimetype icaltime_from_timet(const time_t v, const int is_date);
     169
     170/** Convert seconds past UNIX epoch to a timetype, using timezones. */
     171struct icaltimetype icaltime_from_timet_with_zone(const time_t tm,
     172        const int is_date, const icaltimezone *zone);
     173
     174/** create a time from an ISO format string */
     175struct icaltimetype icaltime_from_string(const char* str);
     176
     177/** create a time from an ISO format string */
     178struct icaltimetype icaltime_from_string_with_zone(const char* str,
     179        const icaltimezone *zone);
     180
     181/** Create a new time, given a day of year and a year. */
     182struct icaltimetype icaltime_from_day_of_year(const int doy,
     183        const int year);
     184
     185/**     @brief Contructor (TODO).
     186 * Create a new time from a weeknumber and a year. */
     187struct icaltimetype icaltime_from_week_number(const int week_number,
     188        const int year);
     189
     190/** Return the time as seconds past the UNIX epoch */
     191time_t icaltime_as_timet(const struct icaltimetype);
     192
     193/** Return the time as seconds past the UNIX epoch, using timezones. */
     194time_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
     195        const icaltimezone *zone);
     196
     197/** Return a string represention of the time, in RFC2445 format. */
     198const char* icaltime_as_ical_string(const struct icaltimetype tt);
     199char* icaltime_as_ical_string_r(const struct icaltimetype tt);
     200
     201/** @brief Return the timezone */
     202const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
     203
     204/** @brief Return the tzid, or NULL for a floating time */
     205const char *icaltime_get_tzid(const struct icaltimetype t);
     206
     207/** @brief Set the timezone */
     208struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
     209        const icaltimezone *zone);
     210
     211/** Return the day of the year of the given time */
     212int icaltime_day_of_year(const struct icaltimetype t);
     213
     214/** Return the day of the week of the given time. Sunday is 1 */
     215int icaltime_day_of_week(const struct icaltimetype t);
     216
     217/** Return the day of the year for the Sunday of the week that the
     218   given time is within. */
     219int icaltime_start_doy_of_week(const struct icaltimetype t);
     220
     221/** Return the day of the year for the first day of the week that the
     222   given time is within. */
     223int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
     224
     225/** Return the week number for the week the given time is within */
     226int icaltime_week_number(const struct icaltimetype t);
     227
     228/** Return true of the time is null. */
     229int icaltime_is_null_time(const struct icaltimetype t);
     230
     231/** Returns false if the time is clearly invalid, but is not null. This
     232   is usually the result of creating a new time type buy not clearing
     233   it, or setting one of the flags to an illegal value. */
     234int icaltime_is_valid_time(const struct icaltimetype t);
     235
     236/** @brief Returns true if time is of DATE type, false if DATE-TIME */
     237int icaltime_is_date(const struct icaltimetype t);
     238
     239/** @brief Returns true if time is relative to UTC zone */
     240int icaltime_is_utc(const struct icaltimetype t);
     241
     242/** @brief Returns true if time is a floating time */
     243int icaltime_is_floating(const struct icaltimetype t);
     244
     245/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
     246int icaltime_compare_with_zone(const struct icaltimetype a,
     247        const struct icaltimetype b);
     248
     249/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
     250int icaltime_compare(const struct icaltimetype a,
     251        const struct icaltimetype b);
     252
     253/** like icaltime_compare, but only use the date parts. */
     254int icaltime_compare_date_only(const struct icaltimetype a,
     255        const struct icaltimetype b);
     256
     257/** like icaltime_compare, but only use the date parts. */
     258int icaltime_compare_date_only_tz(const struct icaltimetype a,
     259        const struct icaltimetype b, icaltimezone *tz);
     260
     261/** Adds or subtracts a number of days, hours, minutes and seconds. */
     262void  icaltime_adjust(struct icaltimetype *tt, const int days,
     263        const int hours, const int minutes, const int seconds);
     264
     265/** Normalize the icaltime, so that all fields are within the normal range. */
     266struct icaltimetype icaltime_normalize(const struct icaltimetype t);
     267
     268/** convert tt, of timezone tzid, into a utc time. Does nothing if the
     269   time is already UTC.  */
     270struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
     271        icaltimezone *zone);
     272
     273/** Return the number of days in the given month */
     274int icaltime_days_in_month(const int month, const int year);
     275
     276/** Return whether you've specified a leapyear or not. */
     277int icaltime_is_leap_year (const int year);
     278
     279/** Return the number of days in this year */
     280int icaltime_days_in_year (const int year);
     281
     282/** @brief calculate an icaltimespan given a start and end time. */
     283struct icaltime_span icaltime_span_new(struct icaltimetype dtstart,
     284                                       struct icaltimetype dtend,
     285                                       int is_busy);
     286
     287/** @brief Returns true if the two spans overlap **/
     288int icaltime_span_overlaps(icaltime_span *s1,
     289                           icaltime_span *s2);
     290
     291/** @brief Returns true if the span is totally within the containing
     292 *  span
     293 */
     294int icaltime_span_contains(icaltime_span *s,
     295                           icaltime_span *container);
     296
     297
     298#endif /* !ICALTIME_H */
     299
     300
     301/* -*- Mode: C -*- */
     302/*======================================================================
     303 FILE: icalduration.h
     304 CREATOR: eric 26 Jan 2001
     305
     306
     307
     308 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     309     http://www.softwarestudio.org
     310
     311 This program is free software; you can redistribute it and/or modify
     312 it under the terms of either:
     313
     314    The LGPL as published by the Free Software Foundation, version
     315    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     316
     317  Or:
     318
     319    The Mozilla Public License Version 1.0. You may obtain a copy of
     320    the License at http://www.mozilla.org/MPL/
     321
     322 The Original Code is eric. The Initial Developer of the Original
     323 Code is Eric Busboom
     324
     325
     326======================================================================*/
     327
     328#ifndef ICALDURATION_H
     329#define ICALDURATION_H
     330
     331
     332struct icaldurationtype
     333{
     334        int is_neg;
     335        unsigned int days;
     336        unsigned int weeks;
     337        unsigned int hours;
     338        unsigned int minutes;
     339        unsigned int seconds;
     340};
     341
     342struct icaldurationtype icaldurationtype_from_int(int t);
     343struct icaldurationtype icaldurationtype_from_string(const char*);
     344int icaldurationtype_as_int(struct icaldurationtype duration);
     345char* icaldurationtype_as_ical_string(struct icaldurationtype d);
     346char* icaldurationtype_as_ical_string_r(struct icaldurationtype d);
     347struct icaldurationtype icaldurationtype_null_duration(void);
     348struct icaldurationtype icaldurationtype_bad_duration(void);
     349int icaldurationtype_is_null_duration(struct icaldurationtype d);
     350int icaldurationtype_is_bad_duration(struct icaldurationtype d);
     351
     352struct icaltimetype  icaltime_add(struct icaltimetype t,
     353                                  struct icaldurationtype  d);
     354
     355struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
     356                                           struct icaltimetype t2);
     357
     358#endif /* !ICALDURATION_H */
     359
     360
     361
     362/* -*- Mode: C -*- */
     363/*======================================================================
     364 FILE: icalperiod.h
     365 CREATOR: eric 26 Jan 2001
     366
     367
     368
     369 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     370     http://www.softwarestudio.org
     371
     372 This program is free software; you can redistribute it and/or modify
     373 it under the terms of either:
     374
     375    The LGPL as published by the Free Software Foundation, version
     376    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     377
     378  Or:
     379
     380    The Mozilla Public License Version 1.0. You may obtain a copy of
     381    the License at http://www.mozilla.org/MPL/
     382
     383 The Original Code is eric. The Initial Developer of the Original
     384 Code is Eric Busboom
     385
     386
     387======================================================================*/
     388
     389#ifndef ICALPERIOD_H
     390#define ICALPERIOD_H
     391
     392
     393struct icalperiodtype
     394{
     395        struct icaltimetype start;
     396        struct icaltimetype end;
     397        struct icaldurationtype duration;
     398};
     399
     400struct icalperiodtype icalperiodtype_from_string (const char* str);
     401
     402const char* icalperiodtype_as_ical_string(struct icalperiodtype p);
     403char* icalperiodtype_as_ical_string_r(struct icalperiodtype p);
     404
     405struct icalperiodtype icalperiodtype_null_period(void);
     406
     407int icalperiodtype_is_null_period(struct icalperiodtype p);
     408
     409int icalperiodtype_is_valid_period(struct icalperiodtype p);
     410
     411#endif /* !ICALTIME_H */
     412
     413
     414
     415
     416/* -*- Mode: C -*-*/
     417/*======================================================================
     418 FILE: icalenums.h
     419
     420 
     421
     422 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     423     http://www.softwarestudio.org
     424
     425 This program is free software; you can redistribute it and/or modify
     426 it under the terms of either:
     427
     428    The LGPL as published by the Free Software Foundation, version
     429    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     430
     431  Or:
     432
     433    The Mozilla Public License Version 1.0. You may obtain a copy of
     434    the License at http://www.mozilla.org/MPL/
     435
     436  The original code is icalenums.h
     437
     438  Contributions from:
     439     Graham Davison <g.m.davison@computer.org>
     440
     441======================================================================*/
     442
     443#ifndef ICALENUMS_H
     444#define ICALENUMS_H
     445
     446
     447
     448/***********************************************************************
     449 * Component enumerations
     450**********************************************************************/
     451
     452typedef enum icalcomponent_kind {
     453    ICAL_NO_COMPONENT,
     454    ICAL_ANY_COMPONENT, /* Used to select all components*/
     455    ICAL_XROOT_COMPONENT,
     456    ICAL_XATTACH_COMPONENT, /* MIME attached data, returned by parser. */
     457    ICAL_VEVENT_COMPONENT,
     458    ICAL_VTODO_COMPONENT,
     459    ICAL_VJOURNAL_COMPONENT,
     460    ICAL_VCALENDAR_COMPONENT,
     461    ICAL_VAGENDA_COMPONENT,
     462    ICAL_VFREEBUSY_COMPONENT,
     463    ICAL_VALARM_COMPONENT,
     464    ICAL_XAUDIOALARM_COMPONENT, 
     465    ICAL_XDISPLAYALARM_COMPONENT,
     466    ICAL_XEMAILALARM_COMPONENT,
     467    ICAL_XPROCEDUREALARM_COMPONENT,
     468    ICAL_VTIMEZONE_COMPONENT,
     469    ICAL_XSTANDARD_COMPONENT,
     470    ICAL_XDAYLIGHT_COMPONENT,
     471    ICAL_X_COMPONENT,
     472    ICAL_VSCHEDULE_COMPONENT,
     473    ICAL_VQUERY_COMPONENT,
     474    ICAL_VREPLY_COMPONENT,
     475    ICAL_VCAR_COMPONENT,
     476    ICAL_VCOMMAND_COMPONENT,
     477    ICAL_XLICINVALID_COMPONENT,
     478    ICAL_XLICMIMEPART_COMPONENT /* a non-stardard component that mirrors
     479                                structure of MIME data */
     480
     481} icalcomponent_kind;
     482
     483
     484
     485/***********************************************************************
     486 * Request Status codes
     487 **********************************************************************/
     488
     489typedef enum icalrequeststatus {
     490    ICAL_UNKNOWN_STATUS,
     491    ICAL_2_0_SUCCESS_STATUS,
     492    ICAL_2_1_FALLBACK_STATUS,
     493    ICAL_2_2_IGPROP_STATUS,
     494    ICAL_2_3_IGPARAM_STATUS,
     495    ICAL_2_4_IGXPROP_STATUS,
     496    ICAL_2_5_IGXPARAM_STATUS,
     497    ICAL_2_6_IGCOMP_STATUS,
     498    ICAL_2_7_FORWARD_STATUS,
     499    ICAL_2_8_ONEEVENT_STATUS,
     500    ICAL_2_9_TRUNC_STATUS,
     501    ICAL_2_10_ONETODO_STATUS,
     502    ICAL_2_11_TRUNCRRULE_STATUS,
     503    ICAL_3_0_INVPROPNAME_STATUS,
     504    ICAL_3_1_INVPROPVAL_STATUS,
     505    ICAL_3_2_INVPARAM_STATUS,
     506    ICAL_3_3_INVPARAMVAL_STATUS,
     507    ICAL_3_4_INVCOMP_STATUS,
     508    ICAL_3_5_INVTIME_STATUS,
     509    ICAL_3_6_INVRULE_STATUS,
     510    ICAL_3_7_INVCU_STATUS,
     511    ICAL_3_8_NOAUTH_STATUS,
     512    ICAL_3_9_BADVERSION_STATUS,
     513    ICAL_3_10_TOOBIG_STATUS,
     514    ICAL_3_11_MISSREQCOMP_STATUS,
     515    ICAL_3_12_UNKCOMP_STATUS,
     516    ICAL_3_13_BADCOMP_STATUS,
     517    ICAL_3_14_NOCAP_STATUS,
     518    ICAL_3_15_INVCOMMAND,
     519    ICAL_4_0_BUSY_STATUS,
     520    ICAL_4_1_STORE_ACCESS_DENIED,
     521    ICAL_4_2_STORE_FAILED,
     522    ICAL_4_3_STORE_NOT_FOUND,
     523    ICAL_5_0_MAYBE_STATUS,
     524    ICAL_5_1_UNAVAIL_STATUS,
     525    ICAL_5_2_NOSERVICE_STATUS,
     526    ICAL_5_3_NOSCHED_STATUS,
     527    ICAL_6_1_CONTAINER_NOT_FOUND,
     528        ICAL_9_0_UNRECOGNIZED_COMMAND
     529} icalrequeststatus;
     530
     531
     532const char* icalenum_reqstat_desc(icalrequeststatus stat);
     533short icalenum_reqstat_major(icalrequeststatus stat);
     534short icalenum_reqstat_minor(icalrequeststatus stat);
     535icalrequeststatus icalenum_num_to_reqstat(short major, short minor);
     536char* icalenum_reqstat_code(icalrequeststatus stat);
     537char* icalenum_reqstat_code_r(icalrequeststatus stat);
     538
     539/***********************************************************************
     540 * Conversion functions
     541**********************************************************************/
     542
     543
     544/* Thse routines used to be in icalenums.c, but were moved into the
     545   icalproperty, icalparameter, icalvalue, or icalcomponent modules. */
     546
     547/* const char* icalproperty_kind_to_string(icalproperty_kind kind);*/
     548#define icalenum_property_kind_to_string(x) icalproperty_kind_to_string(x)
     549
     550/*icalproperty_kind icalproperty_string_to_kind(const char* string)*/
     551#define icalenum_string_to_property_kind(x) icalproperty_string_to_kind(x)
     552
     553/*icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);*/
     554#define icalenum_property_kind_to_value_kind(x) icalproperty_kind_to_value_kind(x)
     555
     556/*const char* icalenum_method_to_string(icalproperty_method);*/
     557#define icalenum_method_to_string(x) icalproperty_method_to_string(x)
     558
     559/*icalproperty_method icalenum_string_to_method(const char* string);*/
     560#define icalenum_string_to_method(x) icalproperty_string_to_method(x)
     561
     562/*const char* icalenum_status_to_string(icalproperty_status);*/
     563#define icalenum_status_to_string(x) icalproperty_status_to_string(x)
     564
     565/*icalproperty_status icalenum_string_to_status(const char* string);*/
     566#define icalenum_string_to_status(x) icalproperty_string_to_status(x)
     567
     568/*icalvalue_kind icalenum_string_to_value_kind(const char* str);*/
     569#define icalenum_string_to_value_kind(x) icalvalue_string_to_kind(x)
     570
     571/*const char* icalenum_value_kind_to_string(icalvalue_kind kind);*/
     572#define icalenum_value_kind_to_string(x) icalvalue_kind_to_string(x)
     573
     574/*const char* icalenum_component_kind_to_string(icalcomponent_kind kind);*/
     575#define icalenum_component_kind_to_string(x) icalcomponent_kind_to_string(x)
     576
     577/*icalcomponent_kind icalenum_string_to_component_kind(const char* string);*/
     578#define icalenum_string_to_component_kind(x) icalcomponent_string_to_kind(x)
     579
     580
     581#endif /* !ICALENUMS_H */
     582
     583/* -*- Mode: C -*- */
     584/*======================================================================
     585 FILE: icaltypes.h
     586 CREATOR: eric 20 March 1999
     587
     588
     589 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     590     http://www.softwarestudio.org
     591
     592 This program is free software; you can redistribute it and/or modify
     593 it under the terms of either:
     594
     595    The LGPL as published by the Free Software Foundation, version
     596    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     597
     598  Or:
     599
     600    The Mozilla Public License Version 1.0. You may obtain a copy of
     601    the License at http://www.mozilla.org/MPL/
     602
     603  The original code is icaltypes.h
     604
     605======================================================================*/
     606
     607#ifndef ICALTYPES_H
     608#define ICALTYPES_H
     609
     610#include <time.h>
     611
     612
     613struct icalgeotype
     614{
     615        float lat;
     616        float lon;
     617};
     618
     619
     620struct icaldatetimeperiodtype
     621{
     622        struct icaltimetype time;
     623        struct icalperiodtype period;
     624};
     625
     626
     627struct icaltriggertype
     628{
     629        struct icaltimetype time;
     630        struct icaldurationtype duration;
     631};
     632
     633struct icaltriggertype icaltriggertype_from_int(const int reltime);
     634struct icaltriggertype icaltriggertype_from_string(const char* str);
     635
     636int icaltriggertype_is_null_trigger(struct icaltriggertype tr);
     637int icaltriggertype_is_bad_trigger(struct icaltriggertype tr);
     638
     639/* struct icalreqstattype. This struct contains two string pointers,
     640but don't try to free either of them. The "desc" string is a pointer
     641to a static table inside the library.  Don't try to free it. The
     642"debug" string is a pointer into the string that the called passed
     643into to icalreqstattype_from_string. Don't try to free it either, and
     644don't use it after the original string has been freed.
     645
     646BTW, you would get that original string from
     647*icalproperty_get_requeststatus() or icalvalue_get_text(), when
     648operating on a the value of a request_status property. */
     649
     650struct icalreqstattype {
     651
     652        icalrequeststatus code;
     653        const char* desc;
     654        const char* debug;
     655};
     656
     657struct icalreqstattype icalreqstattype_from_string(const char* str);
     658const char* icalreqstattype_as_string(struct icalreqstattype);
     659char* icalreqstattype_as_string_r(struct icalreqstattype);
     660
     661
     662
     663struct icaltimezonephase {
     664    const char* tzname;
     665    int is_stdandard; /* 1 = standard tme, 0 = daylight savings time */
     666    struct icaltimetype dtstart;
     667    int offsetto;
     668    int tzoffsetfrom;
     669    const char* comment;
     670    struct icaldatetimeperiodtype rdate;
     671    const char* rrule;   
     672};
     673
     674
     675struct icaltimezonetype {
     676    const char* tzid;
     677    struct icaltimetype last_mod;
     678    const char* tzurl;
     679   
     680    /* Array of phases. The end of the array is a phase with tzname == 0 */
     681    struct icaltimezonephase *phases;
     682};
     683
     684void icaltimezonetype_free(struct icaltimezonetype tzt);
     685
     686
     687#endif /* !ICALTYPES_H */
     688/* -*- Mode: C -*- */
     689/*======================================================================
     690 FILE: icalrecur.h
     691 CREATOR: eric 20 March 2000
     692
     693
     694 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     695     http://www.softwarestudio.org
     696
     697 This program is free software; you can redistribute it and/or modify
     698 it under the terms of either:
     699
     700    The LGPL as published by the Free Software Foundation, version
     701    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     702
     703  Or:
     704
     705    The Mozilla Public License Version 1.0. You may obtain a copy of
     706    the License at http://www.mozilla.org/MPL/
     707*/
     708
     709/**
     710@file icalrecur.h
     711@brief Routines for dealing with recurring time
     712
     713How to use:
     714
     7151) Get a rule and a start time from a component
     716
     717@code
     718        icalproperty rrule;
     719        struct icalrecurrencetype recur;
     720        struct icaltimetype dtstart;
     721
     722        rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);
     723        recur = icalproperty_get_rrule(rrule);
     724        start = icalproperty_get_dtstart(dtstart);
     725@endcode
     726
     727Or, just make them up:
     728
     729@code
     730        recur = icalrecurrencetype_from_string("FREQ=YEARLY;BYDAY=SU,WE");
     731        dtstart = icaltime_from_string("19970101T123000")
     732@endcode
     733
     7342) Create an iterator
     735
     736@code
     737        icalrecur_iterator* ritr;
     738        ritr = icalrecur_iterator_new(recur,start);
     739@endcode
     740
     7413) Iterator over the occurrences
     742
     743@code
     744        struct icaltimetype next;
     745        while (next = icalrecur_iterator_next(ritr)
     746               && !icaltime_is_null_time(next){
     747                Do something with next
     748        }
     749@endcode
     750
     751Note that that the time returned by icalrecur_iterator_next is in
     752whatever timezone that dtstart is in.
     753
     754*/
     755
     756#ifndef ICALRECUR_H
     757#define ICALRECUR_H
     758
     759#include <time.h>
     760
     761/*
     762 * Recurrance enumerations
     763 */
     764
     765typedef enum icalrecurrencetype_frequency
     766{
     767    /* These enums are used to index an array, so don't change the
     768       order or the integers */
     769
     770    ICAL_SECONDLY_RECURRENCE=0,
     771    ICAL_MINUTELY_RECURRENCE=1,
     772    ICAL_HOURLY_RECURRENCE=2,
     773    ICAL_DAILY_RECURRENCE=3,
     774    ICAL_WEEKLY_RECURRENCE=4,
     775    ICAL_MONTHLY_RECURRENCE=5,
     776    ICAL_YEARLY_RECURRENCE=6,
     777    ICAL_NO_RECURRENCE=7
     778
     779} icalrecurrencetype_frequency;
     780
     781typedef enum icalrecurrencetype_weekday
     782{
     783    ICAL_NO_WEEKDAY,
     784    ICAL_SUNDAY_WEEKDAY,
     785    ICAL_MONDAY_WEEKDAY,
     786    ICAL_TUESDAY_WEEKDAY,
     787    ICAL_WEDNESDAY_WEEKDAY,
     788    ICAL_THURSDAY_WEEKDAY,
     789    ICAL_FRIDAY_WEEKDAY,
     790    ICAL_SATURDAY_WEEKDAY
     791} icalrecurrencetype_weekday;
     792
     793enum {
     794    ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,
     795    ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f
     796};
     797
     798
     799
     800/**
     801 * Recurrence type routines
     802 */
     803
     804/* See RFC 2445 Section 4.3.10, RECUR Value, for an explaination of
     805   the values and fields in struct icalrecurrencetype */
     806
     807#define ICAL_BY_SECOND_SIZE 61
     808#define ICAL_BY_MINUTE_SIZE 61
     809#define ICAL_BY_HOUR_SIZE 25
     810#define ICAL_BY_DAY_SIZE 364 /* 7 days * 52 weeks */
     811#define ICAL_BY_MONTHDAY_SIZE 32
     812#define ICAL_BY_YEARDAY_SIZE 367
     813#define ICAL_BY_WEEKNO_SIZE 54
     814#define ICAL_BY_MONTH_SIZE 13
     815#define ICAL_BY_SETPOS_SIZE 367
     816
     817/** Main struct for holding digested recurrence rules */
     818struct icalrecurrencetype
     819{
     820        icalrecurrencetype_frequency freq;
     821
     822
     823        /* until and count are mutually exclusive. */
     824        struct icaltimetype until;
     825        int count;
     826
     827        short interval;
     828       
     829        icalrecurrencetype_weekday week_start;
     830       
     831        /* The BY* parameters can each take a list of values. Here I
     832         * assume that the list of values will not be larger than the
     833         * range of the value -- that is, the client will not name a
     834         * value more than once.
     835         
     836         * Each of the lists is terminated with the value
     837         * ICAL_RECURRENCE_ARRAY_MAX unless the the list is full.
     838         */
     839
     840        short by_second[ICAL_BY_SECOND_SIZE];
     841        short by_minute[ICAL_BY_MINUTE_SIZE];
     842        short by_hour[ICAL_BY_HOUR_SIZE];
     843        short by_day[ICAL_BY_DAY_SIZE]; /* Encoded value, see below */
     844        short by_month_day[ICAL_BY_MONTHDAY_SIZE];
     845        short by_year_day[ ICAL_BY_YEARDAY_SIZE];
     846        short by_week_no[ICAL_BY_WEEKNO_SIZE];
     847        short by_month[ICAL_BY_MONTH_SIZE];
     848        short by_set_pos[ICAL_BY_SETPOS_SIZE];
     849};
     850
     851
     852void icalrecurrencetype_clear(struct icalrecurrencetype *r);
     853
     854/**
     855 * Array Encoding
     856 *
     857 * The 'day' element of the by_day array is encoded to allow
     858 * representation of both the day of the week ( Monday, Tueday), but also
     859 * the Nth day of the week ( First tuesday of the month, last thursday of
     860 * the year) These routines decode the day values
     861 */
     862
     863/** 1 == Monday, etc. */
     864enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day);
     865
     866/** 0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc */
     867int icalrecurrencetype_day_position(short day);
     868
     869icalrecurrencetype_weekday icalrecur_string_to_weekday(const char* str);
     870
     871/** Recurrance rule parser */
     872
     873/** Convert between strings and recurrencetype structures. */
     874struct icalrecurrencetype icalrecurrencetype_from_string(const char* str);
     875char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur);
     876char* icalrecurrencetype_as_string_r(struct icalrecurrencetype *recur);
     877
     878
     879/** Recurrence iteration routines */
     880
     881typedef struct icalrecur_iterator_impl  icalrecur_iterator;
     882
     883/** Create a new recurrence rule iterator */
     884icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule,
     885                                           struct icaltimetype dtstart);
     886
     887/** Get the next occurrence from an iterator */
     888struct icaltimetype icalrecur_iterator_next(icalrecur_iterator*);
     889
     890void icalrecur_iterator_decrement_count(icalrecur_iterator*);
     891
     892/** Free the iterator */
     893void icalrecur_iterator_free(icalrecur_iterator*);
     894
     895/**
     896 * Fills array up with at most 'count' time_t values, each
     897 *  representing an occurrence time in seconds past the POSIX epoch
     898 */
     899int icalrecur_expand_recurrence(char* rule, time_t start,
     900                                int count, time_t* array);
     901
     902
     903#endif
     904/* -*- Mode: C -*- */
     905/*======================================================================
     906 FILE: icalattach.h
     907 CREATOR: acampi 28 May 02
     908
     909
     910 (C) COPYRIGHT 2002, Andrea Campi <a.campi@inet.it>
     911
     912 This program is free software; you can redistribute it and/or modify
     913 it under the terms of either:
     914
     915    The LGPL as published by the Free Software Foundation, version
     916    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     917
     918  Or:
     919
     920    The Mozilla Public License Version 1.0. You may obtain a copy of
     921    the License at http://www.mozilla.org/MPL/
     922
     923  The original code is icalattach.h
     924
     925======================================================================*/
     926
     927#ifndef ICALATTACH_H
     928#define ICALATTACH_H
     929
     930
     931typedef struct icalattach_impl icalattach;
     932
     933typedef void (* icalattach_free_fn_t) (unsigned char *data, void *user_data);
     934
     935icalattach *icalattach_new_from_url (const char *url);
     936icalattach *icalattach_new_from_data (unsigned char *data,
     937        icalattach_free_fn_t free_fn, void *free_fn_data);
     938
     939void icalattach_ref (icalattach *attach);
     940void icalattach_unref (icalattach *attach);
     941
     942int icalattach_get_is_url (icalattach *attach);
     943const char *icalattach_get_url (icalattach *attach);
     944unsigned char *icalattach_get_data (icalattach *attach);
     945
     946struct icalattachtype* icalattachtype_new(void);
     947void  icalattachtype_add_reference(struct icalattachtype* v);
     948void icalattachtype_free(struct icalattachtype* v);
     949
     950void icalattachtype_set_url(struct icalattachtype* v, char* url);
     951char* icalattachtype_get_url(struct icalattachtype* v);
     952
     953void icalattachtype_set_base64(struct icalattachtype* v, char* base64,
     954                                int owns);
     955char* icalattachtype_get_base64(struct icalattachtype* v);
     956
     957void icalattachtype_set_binary(struct icalattachtype* v, char* binary,
     958                                int owns);
     959void* icalattachtype_get_binary(struct icalattachtype* v);
     960
     961
     962
     963#endif /* !ICALATTACH_H */
     964/* -*- Mode: C -*- */
     965/*======================================================================
     966  FILE: icalvalue.h
     967  CREATOR: eric 20 March 1999
     968
     969
     970
     971 
     972
     973 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     974
     975 This program is free software; you can redistribute it and/or modify
     976 it under the terms of either:
     977
     978    The LGPL as published by the Free Software Foundation, version
     979    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     980
     981  Or:
     982
     983    The Mozilla Public License Version 1.0. You may obtain a copy of
     984    the License at http://www.mozilla.org/MPL/
     985
     986  The original code is icalvalue.h
     987
     988  ======================================================================*/
     989
     990#ifndef ICALDERIVEDVALUE_H
     991#define ICALDERIVEDVALUE_H
     992
     993     
     994typedef struct icalvalue_impl icalvalue;
     995
     996
     997
     998void icalvalue_set_x(icalvalue* value, const char* v);
     999icalvalue* icalvalue_new_x(const char* v);
     1000const char* icalvalue_get_x(const icalvalue* value);
     1001
     1002icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
     1003void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
     1004struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
     1005
     1006icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
     1007void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
     1008struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
     1009
     1010icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
     1011void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
     1012struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
     1013
     1014icalvalue *icalvalue_new_attach (icalattach *attach);
     1015void icalvalue_set_attach (icalvalue *value, icalattach *attach);
     1016icalattach *icalvalue_get_attach (const icalvalue *value);
     1017
     1018void icalvalue_reset_kind(icalvalue* value);
     1019
     1020typedef enum icalvalue_kind {
     1021   ICAL_ANY_VALUE=5000,
     1022    ICAL_QUERY_VALUE=5001,
     1023    ICAL_DATE_VALUE=5002,
     1024    ICAL_ATTACH_VALUE=5003,
     1025    ICAL_GEO_VALUE=5004,
     1026    ICAL_STATUS_VALUE=5005,
     1027    ICAL_TRANSP_VALUE=5006,
     1028    ICAL_STRING_VALUE=5007,
     1029    ICAL_TEXT_VALUE=5008,
     1030    ICAL_REQUESTSTATUS_VALUE=5009,
     1031    ICAL_CMD_VALUE=5010,
     1032    ICAL_BINARY_VALUE=5011,
     1033    ICAL_QUERYLEVEL_VALUE=5012,
     1034    ICAL_PERIOD_VALUE=5013,
     1035    ICAL_FLOAT_VALUE=5014,
     1036    ICAL_DATETIMEPERIOD_VALUE=5015,
     1037    ICAL_CARLEVEL_VALUE=5016,
     1038    ICAL_INTEGER_VALUE=5017,
     1039    ICAL_CLASS_VALUE=5018,
     1040    ICAL_URI_VALUE=5019,
     1041    ICAL_DURATION_VALUE=5020,
     1042    ICAL_BOOLEAN_VALUE=5021,
     1043    ICAL_X_VALUE=5022,
     1044    ICAL_CALADDRESS_VALUE=5023,
     1045    ICAL_TRIGGER_VALUE=5024,
     1046    ICAL_XLICCLASS_VALUE=5025,
     1047    ICAL_RECUR_VALUE=5026,
     1048    ICAL_ACTION_VALUE=5027,
     1049    ICAL_DATETIME_VALUE=5028,
     1050    ICAL_UTCOFFSET_VALUE=5029,
     1051    ICAL_METHOD_VALUE=5030,
     1052   ICAL_NO_VALUE=5031
     1053} icalvalue_kind ;
     1054
     1055#define ICALPROPERTY_FIRST_ENUM 10000
     1056
     1057typedef enum icalproperty_action {
     1058    ICAL_ACTION_X = 10000,
     1059    ICAL_ACTION_AUDIO = 10001,
     1060    ICAL_ACTION_DISPLAY = 10002,
     1061    ICAL_ACTION_EMAIL = 10003,
     1062    ICAL_ACTION_PROCEDURE = 10004,
     1063    ICAL_ACTION_NONE = 10005
     1064} icalproperty_action;
     1065
     1066typedef enum icalproperty_carlevel {
     1067    ICAL_CARLEVEL_X = 10006,
     1068    ICAL_CARLEVEL_CARNONE = 10007,
     1069    ICAL_CARLEVEL_CARMIN = 10008,
     1070    ICAL_CARLEVEL_CARFULL1 = 10009,
     1071    ICAL_CARLEVEL_NONE = 10010
     1072} icalproperty_carlevel;
     1073
     1074typedef enum icalproperty_class {
     1075    ICAL_CLASS_X = 10011,
     1076    ICAL_CLASS_PUBLIC = 10012,
     1077    ICAL_CLASS_PRIVATE = 10013,
     1078    ICAL_CLASS_CONFIDENTIAL = 10014,
     1079    ICAL_CLASS_NONE = 10015
     1080} icalproperty_class;
     1081
     1082typedef enum icalproperty_cmd {
     1083    ICAL_CMD_X = 10016,
     1084    ICAL_CMD_ABORT = 10017,
     1085    ICAL_CMD_CONTINUE = 10018,
     1086    ICAL_CMD_CREATE = 10019,
     1087    ICAL_CMD_DELETE = 10020,
     1088    ICAL_CMD_GENERATEUID = 10021,
     1089    ICAL_CMD_GETCAPABILITY = 10022,
     1090    ICAL_CMD_IDENTIFY = 10023,
     1091    ICAL_CMD_MODIFY = 10024,
     1092    ICAL_CMD_MOVE = 10025,
     1093    ICAL_CMD_REPLY = 10026,
     1094    ICAL_CMD_SEARCH = 10027,
     1095    ICAL_CMD_SETLOCALE = 10028,
     1096    ICAL_CMD_NONE = 10029
     1097} icalproperty_cmd;
     1098
     1099typedef enum icalproperty_method {
     1100    ICAL_METHOD_X = 10030,
     1101    ICAL_METHOD_PUBLISH = 10031,
     1102    ICAL_METHOD_REQUEST = 10032,
     1103    ICAL_METHOD_REPLY = 10033,
     1104    ICAL_METHOD_ADD = 10034,
     1105    ICAL_METHOD_CANCEL = 10035,
     1106    ICAL_METHOD_REFRESH = 10036,
     1107    ICAL_METHOD_COUNTER = 10037,
     1108    ICAL_METHOD_DECLINECOUNTER = 10038,
     1109    ICAL_METHOD_CREATE = 10039,
     1110    ICAL_METHOD_READ = 10040,
     1111    ICAL_METHOD_RESPONSE = 10041,
     1112    ICAL_METHOD_MOVE = 10042,
     1113    ICAL_METHOD_MODIFY = 10043,
     1114    ICAL_METHOD_GENERATEUID = 10044,
     1115    ICAL_METHOD_DELETE = 10045,
     1116    ICAL_METHOD_NONE = 10046
     1117} icalproperty_method;
     1118
     1119typedef enum icalproperty_querylevel {
     1120    ICAL_QUERYLEVEL_X = 10047,
     1121    ICAL_QUERYLEVEL_CALQL1 = 10048,
     1122    ICAL_QUERYLEVEL_CALQLNONE = 10049,
     1123    ICAL_QUERYLEVEL_NONE = 10050
     1124} icalproperty_querylevel;
     1125
     1126typedef enum icalproperty_status {
     1127    ICAL_STATUS_X = 10051,
     1128    ICAL_STATUS_TENTATIVE = 10052,
     1129    ICAL_STATUS_CONFIRMED = 10053,
     1130    ICAL_STATUS_COMPLETED = 10054,
     1131    ICAL_STATUS_NEEDSACTION = 10055,
     1132    ICAL_STATUS_CANCELLED = 10056,
     1133    ICAL_STATUS_INPROCESS = 10057,
     1134    ICAL_STATUS_DRAFT = 10058,
     1135    ICAL_STATUS_FINAL = 10059,
     1136    ICAL_STATUS_NONE = 10060
     1137} icalproperty_status;
     1138
     1139typedef enum icalproperty_transp {
     1140    ICAL_TRANSP_X = 10061,
     1141    ICAL_TRANSP_OPAQUE = 10062,
     1142    ICAL_TRANSP_OPAQUENOCONFLICT = 10063,
     1143    ICAL_TRANSP_TRANSPARENT = 10064,
     1144    ICAL_TRANSP_TRANSPARENTNOCONFLICT = 10065,
     1145    ICAL_TRANSP_NONE = 10066
     1146} icalproperty_transp;
     1147
     1148typedef enum icalproperty_xlicclass {
     1149    ICAL_XLICCLASS_X = 10067,
     1150    ICAL_XLICCLASS_PUBLISHNEW = 10068,
     1151    ICAL_XLICCLASS_PUBLISHUPDATE = 10069,
     1152    ICAL_XLICCLASS_PUBLISHFREEBUSY = 10070,
     1153    ICAL_XLICCLASS_REQUESTNEW = 10071,
     1154    ICAL_XLICCLASS_REQUESTUPDATE = 10072,
     1155    ICAL_XLICCLASS_REQUESTRESCHEDULE = 10073,
     1156    ICAL_XLICCLASS_REQUESTDELEGATE = 10074,
     1157    ICAL_XLICCLASS_REQUESTNEWORGANIZER = 10075,
     1158    ICAL_XLICCLASS_REQUESTFORWARD = 10076,
     1159    ICAL_XLICCLASS_REQUESTSTATUS = 10077,
     1160    ICAL_XLICCLASS_REQUESTFREEBUSY = 10078,
     1161    ICAL_XLICCLASS_REPLYACCEPT = 10079,
     1162    ICAL_XLICCLASS_REPLYDECLINE = 10080,
     1163    ICAL_XLICCLASS_REPLYDELEGATE = 10081,
     1164    ICAL_XLICCLASS_REPLYCRASHERACCEPT = 10082,
     1165    ICAL_XLICCLASS_REPLYCRASHERDECLINE = 10083,
     1166    ICAL_XLICCLASS_ADDINSTANCE = 10084,
     1167    ICAL_XLICCLASS_CANCELEVENT = 10085,
     1168    ICAL_XLICCLASS_CANCELINSTANCE = 10086,
     1169    ICAL_XLICCLASS_CANCELALL = 10087,
     1170    ICAL_XLICCLASS_REFRESH = 10088,
     1171    ICAL_XLICCLASS_COUNTER = 10089,
     1172    ICAL_XLICCLASS_DECLINECOUNTER = 10090,
     1173    ICAL_XLICCLASS_MALFORMED = 10091,
     1174    ICAL_XLICCLASS_OBSOLETE = 10092,
     1175    ICAL_XLICCLASS_MISSEQUENCED = 10093,
     1176    ICAL_XLICCLASS_UNKNOWN = 10094,
     1177    ICAL_XLICCLASS_NONE = 10095
     1178} icalproperty_xlicclass;
     1179
     1180#define ICALPROPERTY_LAST_ENUM 10096
     1181
     1182
     1183 /* QUERY */
     1184icalvalue* icalvalue_new_query(const char* v);
     1185const char* icalvalue_get_query(const icalvalue* value);
     1186void icalvalue_set_query(icalvalue* value, const char* v);
     1187
     1188
     1189 /* DATE */
     1190icalvalue* icalvalue_new_date(struct icaltimetype v);
     1191struct icaltimetype icalvalue_get_date(const icalvalue* value);
     1192void icalvalue_set_date(icalvalue* value, struct icaltimetype v);
     1193
     1194
     1195 /* GEO */
     1196icalvalue* icalvalue_new_geo(struct icalgeotype v);
     1197struct icalgeotype icalvalue_get_geo(const icalvalue* value);
     1198void icalvalue_set_geo(icalvalue* value, struct icalgeotype v);
     1199
     1200
     1201 /* STATUS */
     1202icalvalue* icalvalue_new_status(enum icalproperty_status v);
     1203enum icalproperty_status icalvalue_get_status(const icalvalue* value);
     1204void icalvalue_set_status(icalvalue* value, enum icalproperty_status v);
     1205
     1206
     1207 /* TRANSP */
     1208icalvalue* icalvalue_new_transp(enum icalproperty_transp v);
     1209enum icalproperty_transp icalvalue_get_transp(const icalvalue* value);
     1210void icalvalue_set_transp(icalvalue* value, enum icalproperty_transp v);
     1211
     1212
     1213 /* STRING */
     1214icalvalue* icalvalue_new_string(const char* v);
     1215const char* icalvalue_get_string(const icalvalue* value);
     1216void icalvalue_set_string(icalvalue* value, const char* v);
     1217
     1218
     1219 /* TEXT */
     1220icalvalue* icalvalue_new_text(const char* v);
     1221const char* icalvalue_get_text(const icalvalue* value);
     1222void icalvalue_set_text(icalvalue* value, const char* v);
     1223
     1224
     1225 /* REQUEST-STATUS */
     1226icalvalue* icalvalue_new_requeststatus(struct icalreqstattype v);
     1227struct icalreqstattype icalvalue_get_requeststatus(const icalvalue* value);
     1228void icalvalue_set_requeststatus(icalvalue* value, struct icalreqstattype v);
     1229
     1230
     1231 /* CMD */
     1232icalvalue* icalvalue_new_cmd(enum icalproperty_cmd v);
     1233enum icalproperty_cmd icalvalue_get_cmd(const icalvalue* value);
     1234void icalvalue_set_cmd(icalvalue* value, enum icalproperty_cmd v);
     1235
     1236
     1237 /* BINARY */
     1238icalvalue* icalvalue_new_binary(const char* v);
     1239const char* icalvalue_get_binary(const icalvalue* value);
     1240void icalvalue_set_binary(icalvalue* value, const char* v);
     1241
     1242
     1243 /* QUERY-LEVEL */
     1244icalvalue* icalvalue_new_querylevel(enum icalproperty_querylevel v);
     1245enum icalproperty_querylevel icalvalue_get_querylevel(const icalvalue* value);
     1246void icalvalue_set_querylevel(icalvalue* value, enum icalproperty_querylevel v);
     1247
     1248
     1249 /* PERIOD */
     1250icalvalue* icalvalue_new_period(struct icalperiodtype v);
     1251struct icalperiodtype icalvalue_get_period(const icalvalue* value);
     1252void icalvalue_set_period(icalvalue* value, struct icalperiodtype v);
     1253
     1254
     1255 /* FLOAT */
     1256icalvalue* icalvalue_new_float(float v);
     1257float icalvalue_get_float(const icalvalue* value);
     1258void icalvalue_set_float(icalvalue* value, float v);
     1259
     1260
     1261 /* CAR-LEVEL */
     1262icalvalue* icalvalue_new_carlevel(enum icalproperty_carlevel v);
     1263enum icalproperty_carlevel icalvalue_get_carlevel(const icalvalue* value);
     1264void icalvalue_set_carlevel(icalvalue* value, enum icalproperty_carlevel v);
     1265
     1266
     1267 /* INTEGER */
     1268icalvalue* icalvalue_new_integer(int v);
     1269int icalvalue_get_integer(const icalvalue* value);
     1270void icalvalue_set_integer(icalvalue* value, int v);
     1271
     1272
     1273 /* CLASS */
     1274icalvalue* icalvalue_new_class(enum icalproperty_class v);
     1275enum icalproperty_class icalvalue_get_class(const icalvalue* value);
     1276void icalvalue_set_class(icalvalue* value, enum icalproperty_class v);
     1277
     1278
     1279 /* URI */
     1280icalvalue* icalvalue_new_uri(const char* v);
     1281const char* icalvalue_get_uri(const icalvalue* value);
     1282void icalvalue_set_uri(icalvalue* value, const char* v);
     1283
     1284
     1285 /* DURATION */
     1286icalvalue* icalvalue_new_duration(struct icaldurationtype v);
     1287struct icaldurationtype icalvalue_get_duration(const icalvalue* value);
     1288void icalvalue_set_duration(icalvalue* value, struct icaldurationtype v);
     1289
     1290
     1291 /* BOOLEAN */
     1292icalvalue* icalvalue_new_boolean(int v);
     1293int icalvalue_get_boolean(const icalvalue* value);
     1294void icalvalue_set_boolean(icalvalue* value, int v);
     1295
     1296
     1297 /* CAL-ADDRESS */
     1298icalvalue* icalvalue_new_caladdress(const char* v);
     1299const char* icalvalue_get_caladdress(const icalvalue* value);
     1300void icalvalue_set_caladdress(icalvalue* value, const char* v);
     1301
     1302
     1303 /* X-LIC-CLASS */
     1304icalvalue* icalvalue_new_xlicclass(enum icalproperty_xlicclass v);
     1305enum icalproperty_xlicclass icalvalue_get_xlicclass(const icalvalue* value);
     1306void icalvalue_set_xlicclass(icalvalue* value, enum icalproperty_xlicclass v);
     1307
     1308
     1309 /* ACTION */
     1310icalvalue* icalvalue_new_action(enum icalproperty_action v);
     1311enum icalproperty_action icalvalue_get_action(const icalvalue* value);
     1312void icalvalue_set_action(icalvalue* value, enum icalproperty_action v);
     1313
     1314
     1315 /* DATE-TIME */
     1316icalvalue* icalvalue_new_datetime(struct icaltimetype v);
     1317struct icaltimetype icalvalue_get_datetime(const icalvalue* value);
     1318void icalvalue_set_datetime(icalvalue* value, struct icaltimetype v);
     1319
     1320
     1321 /* UTC-OFFSET */
     1322icalvalue* icalvalue_new_utcoffset(int v);
     1323int icalvalue_get_utcoffset(const icalvalue* value);
     1324void icalvalue_set_utcoffset(icalvalue* value, int v);
     1325
     1326
     1327 /* METHOD */
     1328icalvalue* icalvalue_new_method(enum icalproperty_method v);
     1329enum icalproperty_method icalvalue_get_method(const icalvalue* value);
     1330void icalvalue_set_method(icalvalue* value, enum icalproperty_method v);
     1331
     1332#endif /*ICALVALUE_H*/
     1333/* -*- Mode: C -*- */
     1334/*======================================================================
     1335  FILE: icalparam.h
     1336  CREATOR: eric 20 March 1999
     1337
     1338
     1339
     1340 
     1341
     1342 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     1343
     1344 This program is free software; you can redistribute it and/or modify
     1345 it under the terms of either:
     1346
     1347    The LGPL as published by the Free Software Foundation, version
     1348    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     1349
     1350  Or:
     1351
     1352    The Mozilla Public License Version 1.0. You may obtain a copy of
     1353    the License at http://www.mozilla.org/MPL/
     1354
     1355  The original code is icalparam.h
     1356
     1357  ======================================================================*/
     1358
     1359#ifndef ICALDERIVEDPARAMETER_H
     1360#define ICALDERIVEDPARAMETER_H
     1361
     1362
     1363typedef struct icalparameter_impl icalparameter;
     1364
     1365const char* icalparameter_enum_to_string(int e);
     1366int icalparameter_string_to_enum(const char* str);
     1367
     1368typedef enum icalparameter_kind {
     1369    ICAL_ANY_PARAMETER = 0,
     1370    ICAL_ACTIONPARAM_PARAMETER,
     1371    ICAL_ALTREP_PARAMETER,
     1372    ICAL_CHARSET_PARAMETER,
     1373    ICAL_CN_PARAMETER,
     1374    ICAL_CUTYPE_PARAMETER,
     1375    ICAL_DELEGATEDFROM_PARAMETER,
     1376    ICAL_DELEGATEDTO_PARAMETER,
     1377    ICAL_DIR_PARAMETER,
     1378    ICAL_ENABLE_PARAMETER,
     1379    ICAL_ENCODING_PARAMETER,
     1380    ICAL_FBTYPE_PARAMETER,
     1381    ICAL_FMTTYPE_PARAMETER,
     1382    ICAL_ID_PARAMETER,
     1383    ICAL_LANGUAGE_PARAMETER,
     1384    ICAL_LATENCY_PARAMETER,
     1385    ICAL_LOCAL_PARAMETER,
     1386    ICAL_LOCALIZE_PARAMETER,
     1387    ICAL_MEMBER_PARAMETER,
     1388    ICAL_OPTIONS_PARAMETER,
     1389    ICAL_PARTSTAT_PARAMETER,
     1390    ICAL_RANGE_PARAMETER,
     1391    ICAL_RELATED_PARAMETER,
     1392    ICAL_RELTYPE_PARAMETER,
     1393    ICAL_ROLE_PARAMETER,
     1394    ICAL_RSVP_PARAMETER,
     1395    ICAL_SENTBY_PARAMETER,
     1396    ICAL_TZID_PARAMETER,
     1397    ICAL_VALUE_PARAMETER,
     1398    ICAL_X_PARAMETER,
     1399    ICAL_XLICCOMPARETYPE_PARAMETER,
     1400    ICAL_XLICERRORTYPE_PARAMETER,
     1401    ICAL_NO_PARAMETER
     1402} icalparameter_kind;
     1403
     1404#define ICALPARAMETER_FIRST_ENUM 20000
     1405
     1406typedef enum icalparameter_action {
     1407    ICAL_ACTIONPARAM_X = 20000,
     1408    ICAL_ACTIONPARAM_ASK = 20001,
     1409    ICAL_ACTIONPARAM_ABORT = 20002,
     1410    ICAL_ACTIONPARAM_NONE = 20003
     1411} icalparameter_action;
     1412
     1413typedef enum icalparameter_cutype {
     1414    ICAL_CUTYPE_X = 20004,
     1415    ICAL_CUTYPE_INDIVIDUAL = 20005,
     1416    ICAL_CUTYPE_GROUP = 20006,
     1417    ICAL_CUTYPE_RESOURCE = 20007,
     1418    ICAL_CUTYPE_ROOM = 20008,
     1419    ICAL_CUTYPE_UNKNOWN = 20009,
     1420    ICAL_CUTYPE_NONE = 20010
     1421} icalparameter_cutype;
     1422
     1423typedef enum icalparameter_enable {
     1424    ICAL_ENABLE_X = 20011,
     1425    ICAL_ENABLE_TRUE = 20012,
     1426    ICAL_ENABLE_FALSE = 20013,
     1427    ICAL_ENABLE_NONE = 20014
     1428} icalparameter_enable;
     1429
     1430typedef enum icalparameter_encoding {
     1431    ICAL_ENCODING_X = 20015,
     1432    ICAL_ENCODING_8BIT = 20016,
     1433    ICAL_ENCODING_BASE64 = 20017,
     1434    ICAL_ENCODING_NONE = 20018
     1435} icalparameter_encoding;
     1436
     1437typedef enum icalparameter_fbtype {
     1438    ICAL_FBTYPE_X = 20019,
     1439    ICAL_FBTYPE_FREE = 20020,
     1440    ICAL_FBTYPE_BUSY = 20021,
     1441    ICAL_FBTYPE_BUSYUNAVAILABLE = 20022,
     1442    ICAL_FBTYPE_BUSYTENTATIVE = 20023,
     1443    ICAL_FBTYPE_NONE = 20024
     1444} icalparameter_fbtype;
     1445
     1446typedef enum icalparameter_local {
     1447    ICAL_LOCAL_X = 20025,
     1448    ICAL_LOCAL_TRUE = 20026,
     1449    ICAL_LOCAL_FALSE = 20027,
     1450    ICAL_LOCAL_NONE = 20028
     1451} icalparameter_local;
     1452
     1453typedef enum icalparameter_partstat {
     1454    ICAL_PARTSTAT_X = 20029,
     1455    ICAL_PARTSTAT_NEEDSACTION = 20030,
     1456    ICAL_PARTSTAT_ACCEPTED = 20031,
     1457    ICAL_PARTSTAT_DECLINED = 20032,
     1458    ICAL_PARTSTAT_TENTATIVE = 20033,
     1459    ICAL_PARTSTAT_DELEGATED = 20034,
     1460    ICAL_PARTSTAT_COMPLETED = 20035,
     1461    ICAL_PARTSTAT_INPROCESS = 20036,
     1462    ICAL_PARTSTAT_NONE = 20037
     1463} icalparameter_partstat;
     1464
     1465typedef enum icalparameter_range {
     1466    ICAL_RANGE_X = 20038,
     1467    ICAL_RANGE_THISANDPRIOR = 20039,
     1468    ICAL_RANGE_THISANDFUTURE = 20040,
     1469    ICAL_RANGE_NONE = 20041
     1470} icalparameter_range;
     1471
     1472typedef enum icalparameter_related {
     1473    ICAL_RELATED_X = 20042,
     1474    ICAL_RELATED_START = 20043,
     1475    ICAL_RELATED_END = 20044,
     1476    ICAL_RELATED_NONE = 20045
     1477} icalparameter_related;
     1478
     1479typedef enum icalparameter_reltype {
     1480    ICAL_RELTYPE_X = 20046,
     1481    ICAL_RELTYPE_PARENT = 20047,
     1482    ICAL_RELTYPE_CHILD = 20048,
     1483    ICAL_RELTYPE_SIBLING = 20049,
     1484    ICAL_RELTYPE_NONE = 20050
     1485} icalparameter_reltype;
     1486
     1487typedef enum icalparameter_role {
     1488    ICAL_ROLE_X = 20051,
     1489    ICAL_ROLE_CHAIR = 20052,
     1490    ICAL_ROLE_REQPARTICIPANT = 20053,
     1491    ICAL_ROLE_OPTPARTICIPANT = 20054,
     1492    ICAL_ROLE_NONPARTICIPANT = 20055,
     1493    ICAL_ROLE_NONE = 20056
     1494} icalparameter_role;
     1495
     1496typedef enum icalparameter_rsvp {
     1497    ICAL_RSVP_X = 20057,
     1498    ICAL_RSVP_TRUE = 20058,
     1499    ICAL_RSVP_FALSE = 20059,
     1500    ICAL_RSVP_NONE = 20060
     1501} icalparameter_rsvp;
     1502
     1503typedef enum icalparameter_value {
     1504    ICAL_VALUE_X = 20061,
     1505    ICAL_VALUE_BINARY = 20062,
     1506    ICAL_VALUE_BOOLEAN = 20063,
     1507    ICAL_VALUE_DATE = 20064,
     1508    ICAL_VALUE_DURATION = 20065,
     1509    ICAL_VALUE_FLOAT = 20066,
     1510    ICAL_VALUE_INTEGER = 20067,
     1511    ICAL_VALUE_PERIOD = 20068,
     1512    ICAL_VALUE_RECUR = 20069,
     1513    ICAL_VALUE_TEXT = 20070,
     1514    ICAL_VALUE_URI = 20071,
     1515    ICAL_VALUE_ERROR = 20072,
     1516    ICAL_VALUE_DATETIME = 20073,
     1517    ICAL_VALUE_UTCOFFSET = 20074,
     1518    ICAL_VALUE_CALADDRESS = 20075,
     1519    ICAL_VALUE_NONE = 20076
     1520} icalparameter_value;
     1521
     1522typedef enum icalparameter_xliccomparetype {
     1523    ICAL_XLICCOMPARETYPE_X = 20077,
     1524    ICAL_XLICCOMPARETYPE_EQUAL = 20078,
     1525    ICAL_XLICCOMPARETYPE_NOTEQUAL = 20079,
     1526    ICAL_XLICCOMPARETYPE_LESS = 20080,
     1527    ICAL_XLICCOMPARETYPE_GREATER = 20081,
     1528    ICAL_XLICCOMPARETYPE_LESSEQUAL = 20082,
     1529    ICAL_XLICCOMPARETYPE_GREATEREQUAL = 20083,
     1530    ICAL_XLICCOMPARETYPE_REGEX = 20084,
     1531    ICAL_XLICCOMPARETYPE_ISNULL = 20085,
     1532    ICAL_XLICCOMPARETYPE_ISNOTNULL = 20086,
     1533    ICAL_XLICCOMPARETYPE_NONE = 20087
     1534} icalparameter_xliccomparetype;
     1535
     1536typedef enum icalparameter_xlicerrortype {
     1537    ICAL_XLICERRORTYPE_X = 20088,
     1538    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR = 20089,
     1539    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR = 20090,
     1540    ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR = 20091,
     1541    ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR = 20092,
     1542    ICAL_XLICERRORTYPE_VALUEPARSEERROR = 20093,
     1543    ICAL_XLICERRORTYPE_INVALIDITIP = 20094,
     1544    ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR = 20095,
     1545    ICAL_XLICERRORTYPE_MIMEPARSEERROR = 20096,
     1546    ICAL_XLICERRORTYPE_VCALPROPPARSEERROR = 20097,
     1547    ICAL_XLICERRORTYPE_NONE = 20098
     1548} icalparameter_xlicerrortype;
     1549
     1550#define ICALPARAMETER_LAST_ENUM 20099
     1551
     1552/* ID */
     1553icalparameter* icalparameter_new_id(const char* v);
     1554const char* icalparameter_get_id(const icalparameter* value);
     1555void icalparameter_set_id(icalparameter* value, const char* v);
     1556
     1557/* LOCALIZE */
     1558icalparameter* icalparameter_new_localize(const char* v);
     1559const char* icalparameter_get_localize(const icalparameter* value);
     1560void icalparameter_set_localize(icalparameter* value, const char* v);
     1561
     1562/* LANGUAGE */
     1563icalparameter* icalparameter_new_language(const char* v);
     1564const char* icalparameter_get_language(const icalparameter* value);
     1565void icalparameter_set_language(icalparameter* value, const char* v);
     1566
     1567/* DIR */
     1568icalparameter* icalparameter_new_dir(const char* v);
     1569const char* icalparameter_get_dir(const icalparameter* value);
     1570void icalparameter_set_dir(icalparameter* value, const char* v);
     1571
     1572/* RELTYPE */
     1573icalparameter* icalparameter_new_reltype(icalparameter_reltype v);
     1574icalparameter_reltype icalparameter_get_reltype(const icalparameter* value);
     1575void icalparameter_set_reltype(icalparameter* value, icalparameter_reltype v);
     1576
     1577/* FMTTYPE */
     1578icalparameter* icalparameter_new_fmttype(const char* v);
     1579const char* icalparameter_get_fmttype(const icalparameter* value);
     1580void icalparameter_set_fmttype(icalparameter* value, const char* v);
     1581
     1582/* OPTIONS */
     1583icalparameter* icalparameter_new_options(const char* v);
     1584const char* icalparameter_get_options(const icalparameter* value);
     1585void icalparameter_set_options(icalparameter* value, const char* v);
     1586
     1587/* TZID */
     1588icalparameter* icalparameter_new_tzid(const char* v);
     1589const char* icalparameter_get_tzid(const icalparameter* value);
     1590void icalparameter_set_tzid(icalparameter* value, const char* v);
     1591
     1592/* ENABLE */
     1593icalparameter* icalparameter_new_enable(icalparameter_enable v);
     1594icalparameter_enable icalparameter_get_enable(const icalparameter* value);
     1595void icalparameter_set_enable(icalparameter* value, icalparameter_enable v);
     1596
     1597/* RANGE */
     1598icalparameter* icalparameter_new_range(icalparameter_range v);
     1599icalparameter_range icalparameter_get_range(const icalparameter* value);
     1600void icalparameter_set_range(icalparameter* value, icalparameter_range v);
     1601
     1602/* LATENCY */
     1603icalparameter* icalparameter_new_latency(const char* v);
     1604const char* icalparameter_get_latency(const icalparameter* value);
     1605void icalparameter_set_latency(icalparameter* value, const char* v);
     1606
     1607/* DELEGATED-TO */
     1608icalparameter* icalparameter_new_delegatedto(const char* v);
     1609const char* icalparameter_get_delegatedto(const icalparameter* value);
     1610void icalparameter_set_delegatedto(icalparameter* value, const char* v);
     1611
     1612/* LOCAL */
     1613icalparameter* icalparameter_new_local(icalparameter_local v);
     1614icalparameter_local icalparameter_get_local(const icalparameter* value);
     1615void icalparameter_set_local(icalparameter* value, icalparameter_local v);
     1616
     1617/* CN */
     1618icalparameter* icalparameter_new_cn(const char* v);
     1619const char* icalparameter_get_cn(const icalparameter* value);
     1620void icalparameter_set_cn(icalparameter* value, const char* v);
     1621
     1622/* CHARSET */
     1623icalparameter* icalparameter_new_charset(const char* v);
     1624const char* icalparameter_get_charset(const icalparameter* value);
     1625void icalparameter_set_charset(icalparameter* value, const char* v);
     1626
     1627/* ACTIONPARAM */
     1628icalparameter* icalparameter_new_actionparam(icalparameter_action v);
     1629icalparameter_action icalparameter_get_actionparam(const icalparameter* value);
     1630void icalparameter_set_actionparam(icalparameter* value, icalparameter_action v);
     1631
     1632/* VALUE */
     1633icalparameter* icalparameter_new_value(icalparameter_value v);
     1634icalparameter_value icalparameter_get_value(const icalparameter* value);
     1635void icalparameter_set_value(icalparameter* value, icalparameter_value v);
     1636
     1637/* X-LIC-COMPARETYPE */
     1638icalparameter* icalparameter_new_xliccomparetype(icalparameter_xliccomparetype v);
     1639icalparameter_xliccomparetype icalparameter_get_xliccomparetype(const icalparameter* value);
     1640void icalparameter_set_xliccomparetype(icalparameter* value, icalparameter_xliccomparetype v);
     1641
     1642/* X */
     1643icalparameter* icalparameter_new_x(const char* v);
     1644const char* icalparameter_get_x(const icalparameter* value);
     1645void icalparameter_set_x(icalparameter* value, const char* v);
     1646
     1647/* MEMBER */
     1648icalparameter* icalparameter_new_member(const char* v);
     1649const char* icalparameter_get_member(const icalparameter* value);
     1650void icalparameter_set_member(icalparameter* value, const char* v);
     1651
     1652/* SENT-BY */
     1653icalparameter* icalparameter_new_sentby(const char* v);
     1654const char* icalparameter_get_sentby(const icalparameter* value);
     1655void icalparameter_set_sentby(icalparameter* value, const char* v);
     1656
     1657/* CUTYPE */
     1658icalparameter* icalparameter_new_cutype(icalparameter_cutype v);
     1659icalparameter_cutype icalparameter_get_cutype(const icalparameter* value);
     1660void icalparameter_set_cutype(icalparameter* value, icalparameter_cutype v);
     1661
     1662/* RSVP */
     1663icalparameter* icalparameter_new_rsvp(icalparameter_rsvp v);
     1664icalparameter_rsvp icalparameter_get_rsvp(const icalparameter* value);
     1665void icalparameter_set_rsvp(icalparameter* value, icalparameter_rsvp v);
     1666
     1667/* RELATED */
     1668icalparameter* icalparameter_new_related(icalparameter_related v);
     1669icalparameter_related icalparameter_get_related(const icalparameter* value);
     1670void icalparameter_set_related(icalparameter* value, icalparameter_related v);
     1671
     1672/* X-LIC-ERRORTYPE */
     1673icalparameter* icalparameter_new_xlicerrortype(icalparameter_xlicerrortype v);
     1674icalparameter_xlicerrortype icalparameter_get_xlicerrortype(const icalparameter* value);
     1675void icalparameter_set_xlicerrortype(icalparameter* value, icalparameter_xlicerrortype v);
     1676
     1677/* ENCODING */
     1678icalparameter* icalparameter_new_encoding(icalparameter_encoding v);
     1679icalparameter_encoding icalparameter_get_encoding(const icalparameter* value);
     1680void icalparameter_set_encoding(icalparameter* value, icalparameter_encoding v);
     1681
     1682/* ALTREP */
     1683icalparameter* icalparameter_new_altrep(const char* v);
     1684const char* icalparameter_get_altrep(const icalparameter* value);
     1685void icalparameter_set_altrep(icalparameter* value, const char* v);
     1686
     1687/* DELEGATED-FROM */
     1688icalparameter* icalparameter_new_delegatedfrom(const char* v);
     1689const char* icalparameter_get_delegatedfrom(const icalparameter* value);
     1690void icalparameter_set_delegatedfrom(icalparameter* value, const char* v);
     1691
     1692/* FBTYPE */
     1693icalparameter* icalparameter_new_fbtype(icalparameter_fbtype v);
     1694icalparameter_fbtype icalparameter_get_fbtype(const icalparameter* value);
     1695void icalparameter_set_fbtype(icalparameter* value, icalparameter_fbtype v);
     1696
     1697/* PARTSTAT */
     1698icalparameter* icalparameter_new_partstat(icalparameter_partstat v);
     1699icalparameter_partstat icalparameter_get_partstat(const icalparameter* value);
     1700void icalparameter_set_partstat(icalparameter* value, icalparameter_partstat v);
     1701
     1702/* ROLE */
     1703icalparameter* icalparameter_new_role(icalparameter_role v);
     1704icalparameter_role icalparameter_get_role(const icalparameter* value);
     1705void icalparameter_set_role(icalparameter* value, icalparameter_role v);
     1706
     1707#endif /*ICALPARAMETER_H*/
     1708
     1709/* Everything below this line is machine generated. Do not edit. */
     1710/* -*- Mode: C -*- */
     1711/*======================================================================
     1712  FILE: icalvalue.h
     1713  CREATOR: eric 20 March 1999
     1714
     1715
     1716
     1717 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     1718     http://www.softwarestudio.org
     1719
     1720 This program is free software; you can redistribute it and/or modify
     1721 it under the terms of either:
     1722
     1723    The LGPL as published by the Free Software Foundation, version
     1724    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     1725
     1726  Or:
     1727
     1728    The Mozilla Public License Version 1.0. You may obtain a copy of
     1729    the License at http://www.mozilla.org/MPL/
     1730
     1731  The original code is icalvalue.h
     1732
     1733  ======================================================================*/
     1734
     1735#ifndef ICALVALUE_H
     1736#define ICALVALUE_H
     1737
     1738#include <time.h>
     1739                         
     1740/* Defined in icalderivedvalue.h */
     1741/*typedef struct icalvalue_impl icalvalue;*/
     1742
     1743icalvalue* icalvalue_new(icalvalue_kind kind);
     1744
     1745icalvalue* icalvalue_new_clone(const icalvalue* value);
     1746
     1747icalvalue* icalvalue_new_from_string(icalvalue_kind kind, const char* str);
     1748
     1749void icalvalue_free(icalvalue* value);
     1750
     1751int icalvalue_is_valid(const icalvalue* value);
     1752
     1753const char* icalvalue_as_ical_string(const icalvalue* value);
     1754char* icalvalue_as_ical_string_r(const icalvalue* value);
     1755
     1756icalvalue_kind icalvalue_isa(const icalvalue* value);
     1757
     1758int icalvalue_isa_value(void*);
     1759
     1760icalparameter_xliccomparetype icalvalue_compare(const icalvalue* a, const icalvalue *b);
     1761
     1762
     1763/* Special, non autogenerated value accessors */
     1764
     1765icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
     1766void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
     1767struct icalrecurrencetype icalvalue_get_recur(const icalvalue* value);
     1768
     1769icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
     1770void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
     1771struct icaltriggertype icalvalue_get_trigger(const icalvalue* value);
     1772
     1773icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
     1774void icalvalue_set_datetimeperiod(icalvalue* value,
     1775                                  struct icaldatetimeperiodtype v);
     1776struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* value);
     1777
     1778/* Convert enumerations */
     1779
     1780icalvalue_kind icalvalue_string_to_kind(const char* str);
     1781const char* icalvalue_kind_to_string(const icalvalue_kind kind);
     1782
     1783/** Check validity of a specific icalvalue_kind **/
     1784int icalvalue_kind_is_valid(const icalvalue_kind kind);
     1785
     1786/** Encode a character string in ical format, esacpe certain characters, etc. */
     1787int icalvalue_encode_ical_string(const char *szText, char *szEncText, int MaxBufferLen);
     1788
     1789/** Extract the original character string encoded by the above function **/
     1790int icalvalue_decode_ical_string(const char *szText, char *szDecText, int nMaxBufferLen);
     1791
     1792#endif /*ICALVALUE_H*/
     1793/* -*- Mode: C -*- */
     1794/*======================================================================
     1795  FILE: icalparam.h
     1796  CREATOR: eric 20 March 1999
     1797
     1798
     1799
     1800 
     1801
     1802 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     1803     http://www.softwarestudio.org
     1804
     1805 This program is free software; you can redistribute it and/or modify
     1806 it under the terms of either:
     1807
     1808    The LGPL as published by the Free Software Foundation, version
     1809    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     1810
     1811  Or:
     1812
     1813    The Mozilla Public License Version 1.0. You may obtain a copy of
     1814    the License at http://www.mozilla.org/MPL/
     1815
     1816  The original code is icalparam.h
     1817
     1818  ======================================================================*/
     1819
     1820#ifndef ICALPARAM_H
     1821#define ICALPARAM_H
     1822
     1823
     1824/* Declared in icalderivedparameter.h */
     1825/*typedef struct icalparameter_impl icalparameter;*/
     1826
     1827icalparameter* icalparameter_new(icalparameter_kind kind);
     1828icalparameter* icalparameter_new_clone(icalparameter* p);
     1829
     1830/* Create from string of form "PARAMNAME=VALUE" */
     1831icalparameter* icalparameter_new_from_string(const char* value);
     1832
     1833/* Create from just the value, the part after the "=" */
     1834icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind, const char* value);
     1835
     1836void icalparameter_free(icalparameter* parameter);
     1837
     1838char* icalparameter_as_ical_string(icalparameter* parameter);
     1839char* icalparameter_as_ical_string_r(icalparameter* parameter);
     1840
     1841int icalparameter_is_valid(icalparameter* parameter);
     1842
     1843icalparameter_kind icalparameter_isa(icalparameter* parameter);
     1844
     1845int icalparameter_isa_parameter(void* param);
     1846
     1847/* Access the name of an X parameer */
     1848void icalparameter_set_xname (icalparameter* param, const char* v);
     1849const char* icalparameter_get_xname(icalparameter* param);
     1850void icalparameter_set_xvalue (icalparameter* param, const char* v);
     1851const char* icalparameter_get_xvalue(icalparameter* param);
     1852
     1853/* Convert enumerations */
     1854
     1855const char* icalparameter_kind_to_string(icalparameter_kind kind);
     1856icalparameter_kind icalparameter_string_to_kind(const char* string);
     1857
     1858
     1859
     1860#endif
     1861/* -*- Mode: C -*-
     1862  ======================================================================
     1863  FILE: icalderivedproperties.{c,h}
     1864  CREATOR: eric 09 May 1999
     1865 
     1866   
     1867 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     1868 ======================================================================*/
     1869
     1870
     1871#ifndef ICALDERIVEDPROPERTY_H
     1872#define ICALDERIVEDPROPERTY_H
     1873
     1874#include <time.h>
     1875
     1876typedef struct icalproperty_impl icalproperty;
     1877
     1878typedef enum icalproperty_kind {
     1879    ICAL_ANY_PROPERTY = 0,
     1880    ICAL_ACTION_PROPERTY,
     1881    ICAL_ALLOWCONFLICT_PROPERTY,
     1882    ICAL_ATTACH_PROPERTY,
     1883    ICAL_ATTENDEE_PROPERTY,
     1884    ICAL_CALID_PROPERTY,
     1885    ICAL_CALMASTER_PROPERTY,
     1886    ICAL_CALSCALE_PROPERTY,
     1887    ICAL_CAPVERSION_PROPERTY,
     1888    ICAL_CARLEVEL_PROPERTY,
     1889    ICAL_CARID_PROPERTY,
     1890    ICAL_CATEGORIES_PROPERTY,
     1891    ICAL_CLASS_PROPERTY,
     1892    ICAL_CMD_PROPERTY,
     1893    ICAL_COMMENT_PROPERTY,
     1894    ICAL_COMPLETED_PROPERTY,
     1895    ICAL_COMPONENTS_PROPERTY,
     1896    ICAL_CONTACT_PROPERTY,
     1897    ICAL_CREATED_PROPERTY,
     1898    ICAL_CSID_PROPERTY,
     1899    ICAL_DATEMAX_PROPERTY,
     1900    ICAL_DATEMIN_PROPERTY,
     1901    ICAL_DECREED_PROPERTY,
     1902    ICAL_DEFAULTCHARSET_PROPERTY,
     1903    ICAL_DEFAULTLOCALE_PROPERTY,
     1904    ICAL_DEFAULTTZID_PROPERTY,
     1905    ICAL_DEFAULTVCARS_PROPERTY,
     1906    ICAL_DENY_PROPERTY,
     1907    ICAL_DESCRIPTION_PROPERTY,
     1908    ICAL_DTEND_PROPERTY,
     1909    ICAL_DTSTAMP_PROPERTY,
     1910    ICAL_DTSTART_PROPERTY,
     1911    ICAL_DUE_PROPERTY,
     1912    ICAL_DURATION_PROPERTY,
     1913    ICAL_EXDATE_PROPERTY,
     1914    ICAL_EXPAND_PROPERTY,
     1915    ICAL_EXRULE_PROPERTY,
     1916    ICAL_FREEBUSY_PROPERTY,
     1917    ICAL_GEO_PROPERTY,
     1918    ICAL_GRANT_PROPERTY,
     1919    ICAL_ITIPVERSION_PROPERTY,
     1920    ICAL_LASTMODIFIED_PROPERTY,
     1921    ICAL_LOCATION_PROPERTY,
     1922    ICAL_MAXCOMPONENTSIZE_PROPERTY,
     1923    ICAL_MAXDATE_PROPERTY,
     1924    ICAL_MAXRESULTS_PROPERTY,
     1925    ICAL_MAXRESULTSSIZE_PROPERTY,
     1926    ICAL_METHOD_PROPERTY,
     1927    ICAL_MINDATE_PROPERTY,
     1928    ICAL_MULTIPART_PROPERTY,
     1929    ICAL_NAME_PROPERTY,
     1930    ICAL_ORGANIZER_PROPERTY,
     1931    ICAL_OWNER_PROPERTY,
     1932    ICAL_PERCENTCOMPLETE_PROPERTY,
     1933    ICAL_PERMISSION_PROPERTY,
     1934    ICAL_PRIORITY_PROPERTY,
     1935    ICAL_PRODID_PROPERTY,
     1936    ICAL_QUERY_PROPERTY,
     1937    ICAL_QUERYLEVEL_PROPERTY,
     1938    ICAL_QUERYID_PROPERTY,
     1939    ICAL_QUERYNAME_PROPERTY,
     1940    ICAL_RDATE_PROPERTY,
     1941    ICAL_RECURACCEPTED_PROPERTY,
     1942    ICAL_RECUREXPAND_PROPERTY,
     1943    ICAL_RECURLIMIT_PROPERTY,
     1944    ICAL_RECURRENCEID_PROPERTY,
     1945    ICAL_RELATEDTO_PROPERTY,
     1946    ICAL_RELCALID_PROPERTY,
     1947    ICAL_REPEAT_PROPERTY,
     1948    ICAL_REQUESTSTATUS_PROPERTY,
     1949    ICAL_RESOURCES_PROPERTY,
     1950    ICAL_RESTRICTION_PROPERTY,
     1951    ICAL_RRULE_PROPERTY,
     1952    ICAL_SCOPE_PROPERTY,
     1953    ICAL_SEQUENCE_PROPERTY,
     1954    ICAL_STATUS_PROPERTY,
     1955    ICAL_STORESEXPANDED_PROPERTY,
     1956    ICAL_SUMMARY_PROPERTY,
     1957    ICAL_TARGET_PROPERTY,
     1958    ICAL_TRANSP_PROPERTY,
     1959    ICAL_TRIGGER_PROPERTY,
     1960    ICAL_TZID_PROPERTY,
     1961    ICAL_TZNAME_PROPERTY,
     1962    ICAL_TZOFFSETFROM_PROPERTY,
     1963    ICAL_TZOFFSETTO_PROPERTY,
     1964    ICAL_TZURL_PROPERTY,
     1965    ICAL_UID_PROPERTY,
     1966    ICAL_URL_PROPERTY,
     1967    ICAL_VERSION_PROPERTY,
     1968    ICAL_X_PROPERTY,
     1969    ICAL_XLICCLASS_PROPERTY,
     1970    ICAL_XLICCLUSTERCOUNT_PROPERTY,
     1971    ICAL_XLICERROR_PROPERTY,
     1972    ICAL_XLICMIMECHARSET_PROPERTY,
     1973    ICAL_XLICMIMECID_PROPERTY,
     1974    ICAL_XLICMIMECONTENTTYPE_PROPERTY,
     1975    ICAL_XLICMIMEENCODING_PROPERTY,
     1976    ICAL_XLICMIMEFILENAME_PROPERTY,
     1977    ICAL_XLICMIMEOPTINFO_PROPERTY,
     1978    ICAL_NO_PROPERTY
     1979} icalproperty_kind;
     1980
     1981
     1982/* ACTION */
     1983icalproperty* icalproperty_new_action(enum icalproperty_action v);
     1984void icalproperty_set_action(icalproperty* prop, enum icalproperty_action v);
     1985enum icalproperty_action icalproperty_get_action(const icalproperty* prop);icalproperty* icalproperty_vanew_action(enum icalproperty_action v, ...);
     1986
     1987/* ALLOW-CONFLICT */
     1988icalproperty* icalproperty_new_allowconflict(const char* v);
     1989void icalproperty_set_allowconflict(icalproperty* prop, const char* v);
     1990const char* icalproperty_get_allowconflict(const icalproperty* prop);icalproperty* icalproperty_vanew_allowconflict(const char* v, ...);
     1991
     1992/* ATTACH */
     1993icalproperty* icalproperty_new_attach(icalattach * v);
     1994void icalproperty_set_attach(icalproperty* prop, icalattach * v);
     1995icalattach * icalproperty_get_attach(const icalproperty* prop);icalproperty* icalproperty_vanew_attach(icalattach * v, ...);
     1996
     1997/* ATTENDEE */
     1998icalproperty* icalproperty_new_attendee(const char* v);
     1999void icalproperty_set_attendee(icalproperty* prop, const char* v);
     2000const char* icalproperty_get_attendee(const icalproperty* prop);icalproperty* icalproperty_vanew_attendee(const char* v, ...);
     2001
     2002/* CALID */
     2003icalproperty* icalproperty_new_calid(const char* v);
     2004void icalproperty_set_calid(icalproperty* prop, const char* v);
     2005const char* icalproperty_get_calid(const icalproperty* prop);icalproperty* icalproperty_vanew_calid(const char* v, ...);
     2006
     2007/* CALMASTER */
     2008icalproperty* icalproperty_new_calmaster(const char* v);
     2009void icalproperty_set_calmaster(icalproperty* prop, const char* v);
     2010const char* icalproperty_get_calmaster(const icalproperty* prop);icalproperty* icalproperty_vanew_calmaster(const char* v, ...);
     2011
     2012/* CALSCALE */
     2013icalproperty* icalproperty_new_calscale(const char* v);
     2014void icalproperty_set_calscale(icalproperty* prop, const char* v);
     2015const char* icalproperty_get_calscale(const icalproperty* prop);icalproperty* icalproperty_vanew_calscale(const char* v, ...);
     2016
     2017/* CAP-VERSION */
     2018icalproperty* icalproperty_new_capversion(const char* v);
     2019void icalproperty_set_capversion(icalproperty* prop, const char* v);
     2020const char* icalproperty_get_capversion(const icalproperty* prop);icalproperty* icalproperty_vanew_capversion(const char* v, ...);
     2021
     2022/* CAR-LEVEL */
     2023icalproperty* icalproperty_new_carlevel(enum icalproperty_carlevel v);
     2024void icalproperty_set_carlevel(icalproperty* prop, enum icalproperty_carlevel v);
     2025enum icalproperty_carlevel icalproperty_get_carlevel(const icalproperty* prop);icalproperty* icalproperty_vanew_carlevel(enum icalproperty_carlevel v, ...);
     2026
     2027/* CARID */
     2028icalproperty* icalproperty_new_carid(const char* v);
     2029void icalproperty_set_carid(icalproperty* prop, const char* v);
     2030const char* icalproperty_get_carid(const icalproperty* prop);icalproperty* icalproperty_vanew_carid(const char* v, ...);
     2031
     2032/* CATEGORIES */
     2033icalproperty* icalproperty_new_categories(const char* v);
     2034void icalproperty_set_categories(icalproperty* prop, const char* v);
     2035const char* icalproperty_get_categories(const icalproperty* prop);icalproperty* icalproperty_vanew_categories(const char* v, ...);
     2036
     2037/* CLASS */
     2038icalproperty* icalproperty_new_class(enum icalproperty_class v);
     2039void icalproperty_set_class(icalproperty* prop, enum icalproperty_class v);
     2040enum icalproperty_class icalproperty_get_class(const icalproperty* prop);icalproperty* icalproperty_vanew_class(enum icalproperty_class v, ...);
     2041
     2042/* CMD */
     2043icalproperty* icalproperty_new_cmd(enum icalproperty_cmd v);
     2044void icalproperty_set_cmd(icalproperty* prop, enum icalproperty_cmd v);
     2045enum icalproperty_cmd icalproperty_get_cmd(const icalproperty* prop);icalproperty* icalproperty_vanew_cmd(enum icalproperty_cmd v, ...);
     2046
     2047/* COMMENT */
     2048icalproperty* icalproperty_new_comment(const char* v);
     2049void icalproperty_set_comment(icalproperty* prop, const char* v);
     2050const char* icalproperty_get_comment(const icalproperty* prop);icalproperty* icalproperty_vanew_comment(const char* v, ...);
     2051
     2052/* COMPLETED */
     2053icalproperty* icalproperty_new_completed(struct icaltimetype v);
     2054void icalproperty_set_completed(icalproperty* prop, struct icaltimetype v);
     2055struct icaltimetype icalproperty_get_completed(const icalproperty* prop);icalproperty* icalproperty_vanew_completed(struct icaltimetype v, ...);
     2056
     2057/* COMPONENTS */
     2058icalproperty* icalproperty_new_components(const char* v);
     2059void icalproperty_set_components(icalproperty* prop, const char* v);
     2060const char* icalproperty_get_components(const icalproperty* prop);icalproperty* icalproperty_vanew_components(const char* v, ...);
     2061
     2062/* CONTACT */
     2063icalproperty* icalproperty_new_contact(const char* v);
     2064void icalproperty_set_contact(icalproperty* prop, const char* v);
     2065const char* icalproperty_get_contact(const icalproperty* prop);icalproperty* icalproperty_vanew_contact(const char* v, ...);
     2066
     2067/* CREATED */
     2068icalproperty* icalproperty_new_created(struct icaltimetype v);
     2069void icalproperty_set_created(icalproperty* prop, struct icaltimetype v);
     2070struct icaltimetype icalproperty_get_created(const icalproperty* prop);icalproperty* icalproperty_vanew_created(struct icaltimetype v, ...);
     2071
     2072/* CSID */
     2073icalproperty* icalproperty_new_csid(const char* v);
     2074void icalproperty_set_csid(icalproperty* prop, const char* v);
     2075const char* icalproperty_get_csid(const icalproperty* prop);icalproperty* icalproperty_vanew_csid(const char* v, ...);
     2076
     2077/* DATE-MAX */
     2078icalproperty* icalproperty_new_datemax(struct icaltimetype v);
     2079void icalproperty_set_datemax(icalproperty* prop, struct icaltimetype v);
     2080struct icaltimetype icalproperty_get_datemax(const icalproperty* prop);icalproperty* icalproperty_vanew_datemax(struct icaltimetype v, ...);
     2081
     2082/* DATE-MIN */
     2083icalproperty* icalproperty_new_datemin(struct icaltimetype v);
     2084void icalproperty_set_datemin(icalproperty* prop, struct icaltimetype v);
     2085struct icaltimetype icalproperty_get_datemin(const icalproperty* prop);icalproperty* icalproperty_vanew_datemin(struct icaltimetype v, ...);
     2086
     2087/* DECREED */
     2088icalproperty* icalproperty_new_decreed(const char* v);
     2089void icalproperty_set_decreed(icalproperty* prop, const char* v);
     2090const char* icalproperty_get_decreed(const icalproperty* prop);icalproperty* icalproperty_vanew_decreed(const char* v, ...);
     2091
     2092/* DEFAULT-CHARSET */
     2093icalproperty* icalproperty_new_defaultcharset(const char* v);
     2094void icalproperty_set_defaultcharset(icalproperty* prop, const char* v);
     2095const char* icalproperty_get_defaultcharset(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultcharset(const char* v, ...);
     2096
     2097/* DEFAULT-LOCALE */
     2098icalproperty* icalproperty_new_defaultlocale(const char* v);
     2099void icalproperty_set_defaultlocale(icalproperty* prop, const char* v);
     2100const char* icalproperty_get_defaultlocale(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultlocale(const char* v, ...);
     2101
     2102/* DEFAULT-TZID */
     2103icalproperty* icalproperty_new_defaulttzid(const char* v);
     2104void icalproperty_set_defaulttzid(icalproperty* prop, const char* v);
     2105const char* icalproperty_get_defaulttzid(const icalproperty* prop);icalproperty* icalproperty_vanew_defaulttzid(const char* v, ...);
     2106
     2107/* DEFAULT-VCARS */
     2108icalproperty* icalproperty_new_defaultvcars(const char* v);
     2109void icalproperty_set_defaultvcars(icalproperty* prop, const char* v);
     2110const char* icalproperty_get_defaultvcars(const icalproperty* prop);icalproperty* icalproperty_vanew_defaultvcars(const char* v, ...);
     2111
     2112/* DENY */
     2113icalproperty* icalproperty_new_deny(const char* v);
     2114void icalproperty_set_deny(icalproperty* prop, const char* v);
     2115const char* icalproperty_get_deny(const icalproperty* prop);icalproperty* icalproperty_vanew_deny(const char* v, ...);
     2116
     2117/* DESCRIPTION */
     2118icalproperty* icalproperty_new_description(const char* v);
     2119void icalproperty_set_description(icalproperty* prop, const char* v);
     2120const char* icalproperty_get_description(const icalproperty* prop);icalproperty* icalproperty_vanew_description(const char* v, ...);
     2121
     2122/* DTEND */
     2123icalproperty* icalproperty_new_dtend(struct icaltimetype v);
     2124void icalproperty_set_dtend(icalproperty* prop, struct icaltimetype v);
     2125struct icaltimetype icalproperty_get_dtend(const icalproperty* prop);icalproperty* icalproperty_vanew_dtend(struct icaltimetype v, ...);
     2126
     2127/* DTSTAMP */
     2128icalproperty* icalproperty_new_dtstamp(struct icaltimetype v);
     2129void icalproperty_set_dtstamp(icalproperty* prop, struct icaltimetype v);
     2130struct icaltimetype icalproperty_get_dtstamp(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstamp(struct icaltimetype v, ...);
     2131
     2132/* DTSTART */
     2133icalproperty* icalproperty_new_dtstart(struct icaltimetype v);
     2134void icalproperty_set_dtstart(icalproperty* prop, struct icaltimetype v);
     2135struct icaltimetype icalproperty_get_dtstart(const icalproperty* prop);icalproperty* icalproperty_vanew_dtstart(struct icaltimetype v, ...);
     2136
     2137/* DUE */
     2138icalproperty* icalproperty_new_due(struct icaltimetype v);
     2139void icalproperty_set_due(icalproperty* prop, struct icaltimetype v);
     2140struct icaltimetype icalproperty_get_due(const icalproperty* prop);icalproperty* icalproperty_vanew_due(struct icaltimetype v, ...);
     2141
     2142/* DURATION */
     2143icalproperty* icalproperty_new_duration(struct icaldurationtype v);
     2144void icalproperty_set_duration(icalproperty* prop, struct icaldurationtype v);
     2145struct icaldurationtype icalproperty_get_duration(const icalproperty* prop);icalproperty* icalproperty_vanew_duration(struct icaldurationtype v, ...);
     2146
     2147/* EXDATE */
     2148icalproperty* icalproperty_new_exdate(struct icaltimetype v);
     2149void icalproperty_set_exdate(icalproperty* prop, struct icaltimetype v);
     2150struct icaltimetype icalproperty_get_exdate(const icalproperty* prop);icalproperty* icalproperty_vanew_exdate(struct icaltimetype v, ...);
     2151
     2152/* EXPAND */
     2153icalproperty* icalproperty_new_expand(int v);
     2154void icalproperty_set_expand(icalproperty* prop, int v);
     2155int icalproperty_get_expand(const icalproperty* prop);icalproperty* icalproperty_vanew_expand(int v, ...);
     2156
     2157/* EXRULE */
     2158icalproperty* icalproperty_new_exrule(struct icalrecurrencetype v);
     2159void icalproperty_set_exrule(icalproperty* prop, struct icalrecurrencetype v);
     2160struct icalrecurrencetype icalproperty_get_exrule(const icalproperty* prop);icalproperty* icalproperty_vanew_exrule(struct icalrecurrencetype v, ...);
     2161
     2162/* FREEBUSY */
     2163icalproperty* icalproperty_new_freebusy(struct icalperiodtype v);
     2164void icalproperty_set_freebusy(icalproperty* prop, struct icalperiodtype v);
     2165struct icalperiodtype icalproperty_get_freebusy(const icalproperty* prop);icalproperty* icalproperty_vanew_freebusy(struct icalperiodtype v, ...);
     2166
     2167/* GEO */
     2168icalproperty* icalproperty_new_geo(struct icalgeotype v);
     2169void icalproperty_set_geo(icalproperty* prop, struct icalgeotype v);
     2170struct icalgeotype icalproperty_get_geo(const icalproperty* prop);icalproperty* icalproperty_vanew_geo(struct icalgeotype v, ...);
     2171
     2172/* GRANT */
     2173icalproperty* icalproperty_new_grant(const char* v);
     2174void icalproperty_set_grant(icalproperty* prop, const char* v);
     2175const char* icalproperty_get_grant(const icalproperty* prop);icalproperty* icalproperty_vanew_grant(const char* v, ...);
     2176
     2177/* ITIP-VERSION */
     2178icalproperty* icalproperty_new_itipversion(const char* v);
     2179void icalproperty_set_itipversion(icalproperty* prop, const char* v);
     2180const char* icalproperty_get_itipversion(const icalproperty* prop);icalproperty* icalproperty_vanew_itipversion(const char* v, ...);
     2181
     2182/* LAST-MODIFIED */
     2183icalproperty* icalproperty_new_lastmodified(struct icaltimetype v);
     2184void icalproperty_set_lastmodified(icalproperty* prop, struct icaltimetype v);
     2185struct icaltimetype icalproperty_get_lastmodified(const icalproperty* prop);icalproperty* icalproperty_vanew_lastmodified(struct icaltimetype v, ...);
     2186
     2187/* LOCATION */
     2188icalproperty* icalproperty_new_location(const char* v);
     2189void icalproperty_set_location(icalproperty* prop, const char* v);
     2190const char* icalproperty_get_location(const icalproperty* prop);icalproperty* icalproperty_vanew_location(const char* v, ...);
     2191
     2192/* MAX-COMPONENT-SIZE */
     2193icalproperty* icalproperty_new_maxcomponentsize(int v);
     2194void icalproperty_set_maxcomponentsize(icalproperty* prop, int v);
     2195int icalproperty_get_maxcomponentsize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxcomponentsize(int v, ...);
     2196
     2197/* MAXDATE */
     2198icalproperty* icalproperty_new_maxdate(struct icaltimetype v);
     2199void icalproperty_set_maxdate(icalproperty* prop, struct icaltimetype v);
     2200struct icaltimetype icalproperty_get_maxdate(const icalproperty* prop);icalproperty* icalproperty_vanew_maxdate(struct icaltimetype v, ...);
     2201
     2202/* MAXRESULTS */
     2203icalproperty* icalproperty_new_maxresults(int v);
     2204void icalproperty_set_maxresults(icalproperty* prop, int v);
     2205int icalproperty_get_maxresults(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresults(int v, ...);
     2206
     2207/* MAXRESULTSSIZE */
     2208icalproperty* icalproperty_new_maxresultssize(int v);
     2209void icalproperty_set_maxresultssize(icalproperty* prop, int v);
     2210int icalproperty_get_maxresultssize(const icalproperty* prop);icalproperty* icalproperty_vanew_maxresultssize(int v, ...);
     2211
     2212/* METHOD */
     2213icalproperty* icalproperty_new_method(enum icalproperty_method v);
     2214void icalproperty_set_method(icalproperty* prop, enum icalproperty_method v);
     2215enum icalproperty_method icalproperty_get_method(const icalproperty* prop);icalproperty* icalproperty_vanew_method(enum icalproperty_method v, ...);
     2216
     2217/* MINDATE */
     2218icalproperty* icalproperty_new_mindate(struct icaltimetype v);
     2219void icalproperty_set_mindate(icalproperty* prop, struct icaltimetype v);
     2220struct icaltimetype icalproperty_get_mindate(const icalproperty* prop);icalproperty* icalproperty_vanew_mindate(struct icaltimetype v, ...);
     2221
     2222/* MULTIPART */
     2223icalproperty* icalproperty_new_multipart(const char* v);
     2224void icalproperty_set_multipart(icalproperty* prop, const char* v);
     2225const char* icalproperty_get_multipart(const icalproperty* prop);icalproperty* icalproperty_vanew_multipart(const char* v, ...);
     2226
     2227/* NAME */
     2228icalproperty* icalproperty_new_name(const char* v);
     2229void icalproperty_set_name(icalproperty* prop, const char* v);
     2230const char* icalproperty_get_name(const icalproperty* prop);icalproperty* icalproperty_vanew_name(const char* v, ...);
     2231
     2232/* ORGANIZER */
     2233icalproperty* icalproperty_new_organizer(const char* v);
     2234void icalproperty_set_organizer(icalproperty* prop, const char* v);
     2235const char* icalproperty_get_organizer(const icalproperty* prop);icalproperty* icalproperty_vanew_organizer(const char* v, ...);
     2236
     2237/* OWNER */
     2238icalproperty* icalproperty_new_owner(const char* v);
     2239void icalproperty_set_owner(icalproperty* prop, const char* v);
     2240const char* icalproperty_get_owner(const icalproperty* prop);icalproperty* icalproperty_vanew_owner(const char* v, ...);
     2241
     2242/* PERCENT-COMPLETE */
     2243icalproperty* icalproperty_new_percentcomplete(int v);
     2244void icalproperty_set_percentcomplete(icalproperty* prop, int v);
     2245int icalproperty_get_percentcomplete(const icalproperty* prop);icalproperty* icalproperty_vanew_percentcomplete(int v, ...);
     2246
     2247/* PERMISSION */
     2248icalproperty* icalproperty_new_permission(const char* v);
     2249void icalproperty_set_permission(icalproperty* prop, const char* v);
     2250const char* icalproperty_get_permission(const icalproperty* prop);icalproperty* icalproperty_vanew_permission(const char* v, ...);
     2251
     2252/* PRIORITY */
     2253icalproperty* icalproperty_new_priority(int v);
     2254void icalproperty_set_priority(icalproperty* prop, int v);
     2255int icalproperty_get_priority(const icalproperty* prop);icalproperty* icalproperty_vanew_priority(int v, ...);
     2256
     2257/* PRODID */
     2258icalproperty* icalproperty_new_prodid(const char* v);
     2259void icalproperty_set_prodid(icalproperty* prop, const char* v);
     2260const char* icalproperty_get_prodid(const icalproperty* prop);icalproperty* icalproperty_vanew_prodid(const char* v, ...);
     2261
     2262/* QUERY */
     2263icalproperty* icalproperty_new_query(const char* v);
     2264void icalproperty_set_query(icalproperty* prop, const char* v);
     2265const char* icalproperty_get_query(const icalproperty* prop);icalproperty* icalproperty_vanew_query(const char* v, ...);
     2266
     2267/* QUERY-LEVEL */
     2268icalproperty* icalproperty_new_querylevel(enum icalproperty_querylevel v);
     2269void icalproperty_set_querylevel(icalproperty* prop, enum icalproperty_querylevel v);
     2270enum icalproperty_querylevel icalproperty_get_querylevel(const icalproperty* prop);icalproperty* icalproperty_vanew_querylevel(enum icalproperty_querylevel v, ...);
     2271
     2272/* QUERYID */
     2273icalproperty* icalproperty_new_queryid(const char* v);
     2274void icalproperty_set_queryid(icalproperty* prop, const char* v);
     2275const char* icalproperty_get_queryid(const icalproperty* prop);icalproperty* icalproperty_vanew_queryid(const char* v, ...);
     2276
     2277/* QUERYNAME */
     2278icalproperty* icalproperty_new_queryname(const char* v);
     2279void icalproperty_set_queryname(icalproperty* prop, const char* v);
     2280const char* icalproperty_get_queryname(const icalproperty* prop);icalproperty* icalproperty_vanew_queryname(const char* v, ...);
     2281
     2282/* RDATE */
     2283icalproperty* icalproperty_new_rdate(struct icaldatetimeperiodtype v);
     2284void icalproperty_set_rdate(icalproperty* prop, struct icaldatetimeperiodtype v);
     2285struct icaldatetimeperiodtype icalproperty_get_rdate(const icalproperty* prop);icalproperty* icalproperty_vanew_rdate(struct icaldatetimeperiodtype v, ...);
     2286
     2287/* RECUR-ACCEPTED */
     2288icalproperty* icalproperty_new_recuraccepted(const char* v);
     2289void icalproperty_set_recuraccepted(icalproperty* prop, const char* v);
     2290const char* icalproperty_get_recuraccepted(const icalproperty* prop);icalproperty* icalproperty_vanew_recuraccepted(const char* v, ...);
     2291
     2292/* RECUR-EXPAND */
     2293icalproperty* icalproperty_new_recurexpand(const char* v);
     2294void icalproperty_set_recurexpand(icalproperty* prop, const char* v);
     2295const char* icalproperty_get_recurexpand(const icalproperty* prop);icalproperty* icalproperty_vanew_recurexpand(const char* v, ...);
     2296
     2297/* RECUR-LIMIT */
     2298icalproperty* icalproperty_new_recurlimit(const char* v);
     2299void icalproperty_set_recurlimit(icalproperty* prop, const char* v);
     2300const char* icalproperty_get_recurlimit(const icalproperty* prop);icalproperty* icalproperty_vanew_recurlimit(const char* v, ...);
     2301
     2302/* RECURRENCE-ID */
     2303icalproperty* icalproperty_new_recurrenceid(struct icaltimetype v);
     2304void icalproperty_set_recurrenceid(icalproperty* prop, struct icaltimetype v);
     2305struct icaltimetype icalproperty_get_recurrenceid(const icalproperty* prop);icalproperty* icalproperty_vanew_recurrenceid(struct icaltimetype v, ...);
     2306
     2307/* RELATED-TO */
     2308icalproperty* icalproperty_new_relatedto(const char* v);
     2309void icalproperty_set_relatedto(icalproperty* prop, const char* v);
     2310const char* icalproperty_get_relatedto(const icalproperty* prop);icalproperty* icalproperty_vanew_relatedto(const char* v, ...);
     2311
     2312/* RELCALID */
     2313icalproperty* icalproperty_new_relcalid(const char* v);
     2314void icalproperty_set_relcalid(icalproperty* prop, const char* v);
     2315const char* icalproperty_get_relcalid(const icalproperty* prop);icalproperty* icalproperty_vanew_relcalid(const char* v, ...);
     2316
     2317/* REPEAT */
     2318icalproperty* icalproperty_new_repeat(int v);
     2319void icalproperty_set_repeat(icalproperty* prop, int v);
     2320int icalproperty_get_repeat(const icalproperty* prop);icalproperty* icalproperty_vanew_repeat(int v, ...);
     2321
     2322/* REQUEST-STATUS */
     2323icalproperty* icalproperty_new_requeststatus(struct icalreqstattype v);
     2324void icalproperty_set_requeststatus(icalproperty* prop, struct icalreqstattype v);
     2325struct icalreqstattype icalproperty_get_requeststatus(const icalproperty* prop);icalproperty* icalproperty_vanew_requeststatus(struct icalreqstattype v, ...);
     2326
     2327/* RESOURCES */
     2328icalproperty* icalproperty_new_resources(const char* v);
     2329void icalproperty_set_resources(icalproperty* prop, const char* v);
     2330const char* icalproperty_get_resources(const icalproperty* prop);icalproperty* icalproperty_vanew_resources(const char* v, ...);
     2331
     2332/* RESTRICTION */
     2333icalproperty* icalproperty_new_restriction(const char* v);
     2334void icalproperty_set_restriction(icalproperty* prop, const char* v);
     2335const char* icalproperty_get_restriction(const icalproperty* prop);icalproperty* icalproperty_vanew_restriction(const char* v, ...);
     2336
     2337/* RRULE */
     2338icalproperty* icalproperty_new_rrule(struct icalrecurrencetype v);
     2339void icalproperty_set_rrule(icalproperty* prop, struct icalrecurrencetype v);
     2340struct icalrecurrencetype icalproperty_get_rrule(const icalproperty* prop);icalproperty* icalproperty_vanew_rrule(struct icalrecurrencetype v, ...);
     2341
     2342/* SCOPE */
     2343icalproperty* icalproperty_new_scope(const char* v);
     2344void icalproperty_set_scope(icalproperty* prop, const char* v);
     2345const char* icalproperty_get_scope(const icalproperty* prop);icalproperty* icalproperty_vanew_scope(const char* v, ...);
     2346
     2347/* SEQUENCE */
     2348icalproperty* icalproperty_new_sequence(int v);
     2349void icalproperty_set_sequence(icalproperty* prop, int v);
     2350int icalproperty_get_sequence(const icalproperty* prop);icalproperty* icalproperty_vanew_sequence(int v, ...);
     2351
     2352/* STATUS */
     2353icalproperty* icalproperty_new_status(enum icalproperty_status v);
     2354void icalproperty_set_status(icalproperty* prop, enum icalproperty_status v);
     2355enum icalproperty_status icalproperty_get_status(const icalproperty* prop);icalproperty* icalproperty_vanew_status(enum icalproperty_status v, ...);
     2356
     2357/* STORES-EXPANDED */
     2358icalproperty* icalproperty_new_storesexpanded(const char* v);
     2359void icalproperty_set_storesexpanded(icalproperty* prop, const char* v);
     2360const char* icalproperty_get_storesexpanded(const icalproperty* prop);icalproperty* icalproperty_vanew_storesexpanded(const char* v, ...);
     2361
     2362/* SUMMARY */
     2363icalproperty* icalproperty_new_summary(const char* v);
     2364void icalproperty_set_summary(icalproperty* prop, const char* v);
     2365const char* icalproperty_get_summary(const icalproperty* prop);icalproperty* icalproperty_vanew_summary(const char* v, ...);
     2366
     2367/* TARGET */
     2368icalproperty* icalproperty_new_target(const char* v);
     2369void icalproperty_set_target(icalproperty* prop, const char* v);
     2370const char* icalproperty_get_target(const icalproperty* prop);icalproperty* icalproperty_vanew_target(const char* v, ...);
     2371
     2372/* TRANSP */
     2373icalproperty* icalproperty_new_transp(enum icalproperty_transp v);
     2374void icalproperty_set_transp(icalproperty* prop, enum icalproperty_transp v);
     2375enum icalproperty_transp icalproperty_get_transp(const icalproperty* prop);icalproperty* icalproperty_vanew_transp(enum icalproperty_transp v, ...);
     2376
     2377/* TRIGGER */
     2378icalproperty* icalproperty_new_trigger(struct icaltriggertype v);
     2379void icalproperty_set_trigger(icalproperty* prop, struct icaltriggertype v);
     2380struct icaltriggertype icalproperty_get_trigger(const icalproperty* prop);icalproperty* icalproperty_vanew_trigger(struct icaltriggertype v, ...);
     2381
     2382/* TZID */
     2383icalproperty* icalproperty_new_tzid(const char* v);
     2384void icalproperty_set_tzid(icalproperty* prop, const char* v);
     2385const char* icalproperty_get_tzid(const icalproperty* prop);icalproperty* icalproperty_vanew_tzid(const char* v, ...);
     2386
     2387/* TZNAME */
     2388icalproperty* icalproperty_new_tzname(const char* v);
     2389void icalproperty_set_tzname(icalproperty* prop, const char* v);
     2390const char* icalproperty_get_tzname(const icalproperty* prop);icalproperty* icalproperty_vanew_tzname(const char* v, ...);
     2391
     2392/* TZOFFSETFROM */
     2393icalproperty* icalproperty_new_tzoffsetfrom(int v);
     2394void icalproperty_set_tzoffsetfrom(icalproperty* prop, int v);
     2395int icalproperty_get_tzoffsetfrom(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetfrom(int v, ...);
     2396
     2397/* TZOFFSETTO */
     2398icalproperty* icalproperty_new_tzoffsetto(int v);
     2399void icalproperty_set_tzoffsetto(icalproperty* prop, int v);
     2400int icalproperty_get_tzoffsetto(const icalproperty* prop);icalproperty* icalproperty_vanew_tzoffsetto(int v, ...);
     2401
     2402/* TZURL */
     2403icalproperty* icalproperty_new_tzurl(const char* v);
     2404void icalproperty_set_tzurl(icalproperty* prop, const char* v);
     2405const char* icalproperty_get_tzurl(const icalproperty* prop);icalproperty* icalproperty_vanew_tzurl(const char* v, ...);
     2406
     2407/* UID */
     2408icalproperty* icalproperty_new_uid(const char* v);
     2409void icalproperty_set_uid(icalproperty* prop, const char* v);
     2410const char* icalproperty_get_uid(const icalproperty* prop);icalproperty* icalproperty_vanew_uid(const char* v, ...);
     2411
     2412/* URL */
     2413icalproperty* icalproperty_new_url(const char* v);
     2414void icalproperty_set_url(icalproperty* prop, const char* v);
     2415const char* icalproperty_get_url(const icalproperty* prop);icalproperty* icalproperty_vanew_url(const char* v, ...);
     2416
     2417/* VERSION */
     2418icalproperty* icalproperty_new_version(const char* v);
     2419void icalproperty_set_version(icalproperty* prop, const char* v);
     2420const char* icalproperty_get_version(const icalproperty* prop);icalproperty* icalproperty_vanew_version(const char* v, ...);
     2421
     2422/* X */
     2423icalproperty* icalproperty_new_x(const char* v);
     2424void icalproperty_set_x(icalproperty* prop, const char* v);
     2425const char* icalproperty_get_x(const icalproperty* prop);icalproperty* icalproperty_vanew_x(const char* v, ...);
     2426
     2427/* X-LIC-CLASS */
     2428icalproperty* icalproperty_new_xlicclass(enum icalproperty_xlicclass v);
     2429void icalproperty_set_xlicclass(icalproperty* prop, enum icalproperty_xlicclass v);
     2430enum icalproperty_xlicclass icalproperty_get_xlicclass(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclass(enum icalproperty_xlicclass v, ...);
     2431
     2432/* X-LIC-CLUSTERCOUNT */
     2433icalproperty* icalproperty_new_xlicclustercount(const char* v);
     2434void icalproperty_set_xlicclustercount(icalproperty* prop, const char* v);
     2435const char* icalproperty_get_xlicclustercount(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicclustercount(const char* v, ...);
     2436
     2437/* X-LIC-ERROR */
     2438icalproperty* icalproperty_new_xlicerror(const char* v);
     2439void icalproperty_set_xlicerror(icalproperty* prop, const char* v);
     2440const char* icalproperty_get_xlicerror(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicerror(const char* v, ...);
     2441
     2442/* X-LIC-MIMECHARSET */
     2443icalproperty* icalproperty_new_xlicmimecharset(const char* v);
     2444void icalproperty_set_xlicmimecharset(icalproperty* prop, const char* v);
     2445const char* icalproperty_get_xlicmimecharset(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecharset(const char* v, ...);
     2446
     2447/* X-LIC-MIMECID */
     2448icalproperty* icalproperty_new_xlicmimecid(const char* v);
     2449void icalproperty_set_xlicmimecid(icalproperty* prop, const char* v);
     2450const char* icalproperty_get_xlicmimecid(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecid(const char* v, ...);
     2451
     2452/* X-LIC-MIMECONTENTTYPE */
     2453icalproperty* icalproperty_new_xlicmimecontenttype(const char* v);
     2454void icalproperty_set_xlicmimecontenttype(icalproperty* prop, const char* v);
     2455const char* icalproperty_get_xlicmimecontenttype(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimecontenttype(const char* v, ...);
     2456
     2457/* X-LIC-MIMEENCODING */
     2458icalproperty* icalproperty_new_xlicmimeencoding(const char* v);
     2459void icalproperty_set_xlicmimeencoding(icalproperty* prop, const char* v);
     2460const char* icalproperty_get_xlicmimeencoding(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeencoding(const char* v, ...);
     2461
     2462/* X-LIC-MIMEFILENAME */
     2463icalproperty* icalproperty_new_xlicmimefilename(const char* v);
     2464void icalproperty_set_xlicmimefilename(icalproperty* prop, const char* v);
     2465const char* icalproperty_get_xlicmimefilename(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimefilename(const char* v, ...);
     2466
     2467/* X-LIC-MIMEOPTINFO */
     2468icalproperty* icalproperty_new_xlicmimeoptinfo(const char* v);
     2469void icalproperty_set_xlicmimeoptinfo(icalproperty* prop, const char* v);
     2470const char* icalproperty_get_xlicmimeoptinfo(const icalproperty* prop);icalproperty* icalproperty_vanew_xlicmimeoptinfo(const char* v, ...);
     2471
     2472
     2473#endif /*ICALPROPERTY_H*/
     2474/* -*- Mode: C -*- */
     2475/*======================================================================
     2476  FILE: icalproperty.h
     2477  CREATOR: eric 20 March 1999
     2478
     2479
     2480
     2481 
     2482
     2483 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     2484     http://www.softwarestudio.org
     2485
     2486 This program is free software; you can redistribute it and/or modify
     2487 it under the terms of either:
     2488
     2489    The LGPL as published by the Free Software Foundation, version
     2490    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     2491
     2492  Or:
     2493
     2494    The Mozilla Public License Version 1.0. You may obtain a copy of
     2495    the License at http://www.mozilla.org/MPL/
     2496
     2497  The original code is icalparam.h
     2498
     2499  ======================================================================*/
     2500
     2501
     2502#ifndef ICALPROPERTY_H
     2503#define ICALPROPERTY_H
     2504
     2505#include <time.h>
     2506#include <stdarg.h>  /* for va_... */
     2507
     2508
     2509
     2510/* Actually in icalderivedproperty.h:
     2511   typedef struct icalproperty_impl icalproperty; */
     2512
     2513
     2514icalproperty* icalproperty_new(icalproperty_kind kind);
     2515
     2516icalproperty* icalproperty_new_clone(icalproperty * prop);
     2517
     2518icalproperty* icalproperty_new_from_string(const char* str);
     2519
     2520const char* icalproperty_as_ical_string(icalproperty* prop);
     2521char* icalproperty_as_ical_string_r(icalproperty* prop);
     2522
     2523void  icalproperty_free(icalproperty* prop);
     2524
     2525icalproperty_kind icalproperty_isa(icalproperty* property);
     2526int icalproperty_isa_property(void* property);
     2527
     2528void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
     2529void icalproperty_add_parameter(icalproperty* prop,icalparameter* parameter);
     2530void icalproperty_set_parameter(icalproperty* prop,icalparameter* parameter);
     2531void icalproperty_set_parameter_from_string(icalproperty* prop,
     2532                                            const char* name, const char* value);
     2533const char* icalproperty_get_parameter_as_string(icalproperty* prop,
     2534                                                 const char* name);
     2535char* icalproperty_get_parameter_as_string_r(icalproperty* prop,
     2536                                                 const char* name);
     2537
     2538void icalproperty_remove_parameter(icalproperty* prop,
     2539                                   icalparameter_kind kind);
     2540
     2541void icalproperty_remove_parameter_by_kind(icalproperty* prop,
     2542                                           icalparameter_kind kind);
     2543
     2544void icalproperty_remove_parameter_by_name(icalproperty* prop,
     2545                                           const char *name);
     2546
     2547void icalproperty_remove_parameter_by_ref(icalproperty* prop,
     2548                                          icalparameter *param);
     2549
     2550
     2551
     2552int icalproperty_count_parameters(const icalproperty* prop);
     2553
     2554/* Iterate through the parameters */
     2555icalparameter* icalproperty_get_first_parameter(icalproperty* prop,
     2556                                                icalparameter_kind kind);
     2557icalparameter* icalproperty_get_next_parameter(icalproperty* prop,
     2558                                                icalparameter_kind kind);
     2559/* Access the value of the property */
     2560void icalproperty_set_value(icalproperty* prop, icalvalue* value);
     2561void icalproperty_set_value_from_string(icalproperty* prop,const char* value, const char* kind);
     2562
     2563icalvalue* icalproperty_get_value(const icalproperty* prop);
     2564const char* icalproperty_get_value_as_string(const icalproperty* prop);
     2565char* icalproperty_get_value_as_string_r(const icalproperty* prop);
     2566
     2567/* Deal with X properties */
     2568
     2569void icalproperty_set_x_name(icalproperty* prop, const char* name);
     2570const char* icalproperty_get_x_name(icalproperty* prop);
     2571
     2572/** Return the name of the property -- the type name converted to a
     2573 *  string, or the value of _get_x_name if the type is and X
     2574 *  property
     2575 */
     2576const char* icalproperty_get_property_name (const icalproperty* prop);
     2577char* icalproperty_get_property_name_r(const icalproperty* prop);
     2578
     2579icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
     2580
     2581/* Convert kinds to string and get default value type */
     2582
     2583icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);
     2584icalproperty_kind icalproperty_value_kind_to_kind(icalvalue_kind kind);
     2585const char* icalproperty_kind_to_string(icalproperty_kind kind);
     2586icalproperty_kind icalproperty_string_to_kind(const char* string);
     2587
     2588/** Check validity of a specific icalproperty_kind **/
     2589int icalproperty_kind_is_valid(const icalproperty_kind kind);
     2590
     2591icalproperty_method icalproperty_string_to_method(const char* str);
     2592const char* icalproperty_method_to_string(icalproperty_method method);
     2593
     2594
     2595const char* icalproperty_enum_to_string(int e);
     2596char* icalproperty_enum_to_string_r(int e);
     2597int icalproperty_string_to_enum(const char* str);
     2598int icalproperty_kind_and_string_to_enum(const int kind, const char* str);
     2599
     2600const char* icalproperty_status_to_string(icalproperty_status);
     2601icalproperty_status icalproperty_string_to_status(const char* string);
     2602
     2603int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e);
     2604
     2605
     2606
     2607
     2608#endif /*ICALPROPERTY_H*/
     2609/*======================================================================
     2610 FILE: pvl.h
     2611 CREATOR: eric November, 1995
     2612
     2613
     2614 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     2615     http://www.softwarestudio.org
     2616======================================================================*/
     2617
     2618
     2619#ifndef __PVL_H__
     2620#define __PVL_H__
     2621
     2622typedef struct pvl_list_t* pvl_list;
     2623typedef struct pvl_elem_t* pvl_elem;
     2624
     2625/**
     2626 * This type is private. Always use pvl_elem instead. The struct would
     2627 * not even appear in this header except to make code in the USE_MACROS
     2628 * blocks work
     2629 */
     2630
     2631typedef struct pvl_elem_t
     2632{
     2633        int MAGIC;                      /**< Magic Identifier */
     2634        void *d;                        /**< Pointer to data user is storing */
     2635        struct pvl_elem_t *next;        /**< Next element */
     2636        struct pvl_elem_t *prior;       /**< Prior element */
     2637} pvl_elem_t;
     2638
     2639
     2640
     2641/**
     2642 * This global is incremented for each call to pvl_new_element(); it gives each
     2643 * list a unique identifer
     2644 */
     2645
     2646extern int  pvl_elem_count;
     2647extern int  pvl_list_count;
     2648
     2649/* Create new lists or elements */
     2650pvl_elem pvl_new_element(void* d, pvl_elem next,pvl_elem prior);
     2651pvl_list pvl_newlist(void);
     2652void pvl_free(pvl_list);
     2653
     2654/* Add, remove, or get the head of the list */
     2655void pvl_unshift(pvl_list l,void *d);
     2656void* pvl_shift(pvl_list l);
     2657pvl_elem pvl_head(pvl_list);
     2658
     2659/* Add, remove or get the tail of the list */
     2660void pvl_push(pvl_list l,void *d);
     2661void* pvl_pop(pvl_list l);
     2662pvl_elem pvl_tail(pvl_list);
     2663
     2664/* Insert elements in random places */
     2665typedef int (*pvl_comparef)(void* a, void* b); /* a, b are of the data type*/
     2666void pvl_insert_ordered(pvl_list l,pvl_comparef f,void *d);
     2667void pvl_insert_after(pvl_list l,pvl_elem e,void *d);
     2668void pvl_insert_before(pvl_list l,pvl_elem e,void *d);
     2669
     2670/* Remove an element, or clear the entire list */
     2671void* pvl_remove(pvl_list,pvl_elem); /* Remove element, return data */
     2672void pvl_clear(pvl_list); /* Remove all elements, de-allocate all data */
     2673
     2674int pvl_count(pvl_list);
     2675
     2676/* Navagate the list */
     2677pvl_elem pvl_next(pvl_elem e);
     2678pvl_elem pvl_prior(pvl_elem e);
     2679
     2680/* get the data in the list */
     2681#ifndef PVL_USE_MACROS
     2682void* pvl_data(pvl_elem);
     2683#else
     2684#define pvl_data(x) x==0 ? 0 : ((struct pvl_elem_t *)x)->d;
     2685#endif
     2686
     2687
     2688/* Find an element for which a function returns true */
     2689typedef int (*pvl_findf)(void* a, void* b); /*a is list elem, b is other data*/
     2690pvl_elem pvl_find(pvl_list l,pvl_findf f,void* v);
     2691pvl_elem pvl_find_next(pvl_list l,pvl_findf f,void* v);
     2692
     2693/**
     2694 * Pass each element in the list to a function
     2695 * a is list elem, b is other data
     2696 */
     2697typedef void (*pvl_applyf)(void* a, void* b);
     2698void pvl_apply(pvl_list l,pvl_applyf f, void *v);
     2699
     2700
     2701#endif /* __PVL_H__ */
     2702
     2703
     2704
     2705
     2706
     2707/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
     2708/*======================================================================
     2709 FILE: icalarray.h
     2710 CREATOR: Damon Chaplin 07 March 2001
     2711
     2712
     2713
     2714 (C) COPYRIGHT 2001, Ximian, Inc.
     2715
     2716 This program is free software; you can redistribute it and/or modify
     2717 it under the terms of either:
     2718
     2719    The LGPL as published by the Free Software Foundation, version
     2720    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     2721
     2722  Or:
     2723
     2724    The Mozilla Public License Version 1.0. You may obtain a copy of
     2725    the License at http://www.mozilla.org/MPL/
     2726
     2727
     2728======================================================================*/
     2729
     2730
     2731#ifndef ICALARRAY_H
     2732#define ICALARRAY_H
     2733
     2734/** @file icalarray.h
     2735 *
     2736 *  @brief An array of arbitrarily-sized elements which grows
     2737 *  dynamically as elements are added.
     2738 */
     2739
     2740typedef struct _icalarray icalarray;
     2741struct _icalarray {
     2742    unsigned int         element_size;
     2743    unsigned int         increment_size;
     2744    unsigned int         num_elements;
     2745    unsigned int         space_allocated;
     2746    void                *data;
     2747};
     2748
     2749
     2750
     2751icalarray *icalarray_new                (int             element_size,
     2752                                         int             increment_size);
     2753void       icalarray_free               (icalarray      *array);
     2754
     2755void       icalarray_append             (icalarray      *array,
     2756                                         const void             *element);
     2757void       icalarray_remove_element_at  (icalarray      *array,
     2758                                         int             position);
     2759
     2760void      *icalarray_element_at         (icalarray      *array,
     2761                                         int             position);
     2762
     2763void       icalarray_sort               (icalarray      *array,
     2764                                         int           (*compare) (const void *, const void *));
     2765
     2766
     2767#endif /* ICALARRAY_H */
     2768/* -*- Mode: C -*- */
     2769/*======================================================================
     2770 FILE: icalcomponent.h
     2771 CREATOR: eric 20 March 1999
     2772
     2773
     2774 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     2775     http://www.softwarestudio.org
     2776
     2777 This program is free software; you can redistribute it and/or modify
     2778 it under the terms of either:
     2779
     2780    The LGPL as published by the Free Software Foundation, version
     2781    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     2782
     2783  Or:
     2784
     2785    The Mozilla Public License Version 1.0. You may obtain a copy of
     2786    the License at http://www.mozilla.org/MPL/
     2787
     2788  The original code is icalcomponent.h
     2789
     2790======================================================================*/
     2791
     2792#ifndef ICALCOMPONENT_H
     2793#define ICALCOMPONENT_H
     2794
     2795
     2796typedef struct icalcomponent_impl icalcomponent;
     2797
     2798#ifndef ICALTIMEZONE_DEFINED
     2799#define ICALTIMEZONE_DEFINED
     2800/** @brief An opaque struct representing a timezone. 
     2801 * We declare this here to avoid a circular dependancy.
     2802 */
     2803typedef struct _icaltimezone            icaltimezone;
     2804#endif
     2805
     2806
     2807/* This is exposed so that callers will not have to allocate and
     2808   deallocate iterators. Pretend that you can't see it. */
     2809typedef struct icalcompiter
     2810{
     2811        icalcomponent_kind kind;
     2812        pvl_elem iter;
     2813
     2814} icalcompiter;
     2815
     2816icalcomponent* icalcomponent_new(icalcomponent_kind kind);
     2817icalcomponent* icalcomponent_new_clone(icalcomponent* component);
     2818icalcomponent* icalcomponent_new_from_string(const char* str);
     2819icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
     2820icalcomponent* icalcomponent_new_x(const char* x_name);
     2821void icalcomponent_free(icalcomponent* component);
     2822
     2823char* icalcomponent_as_ical_string(icalcomponent* component);
     2824char* icalcomponent_as_ical_string_r(icalcomponent* component);
     2825
     2826int icalcomponent_is_valid(icalcomponent* component);
     2827
     2828icalcomponent_kind icalcomponent_isa(const icalcomponent* component);
     2829
     2830int icalcomponent_isa_component (void* component);
     2831
     2832/*
     2833 * Working with properties
     2834 */
     2835
     2836void icalcomponent_add_property(icalcomponent* component,
     2837                                icalproperty* property);
     2838
     2839void icalcomponent_remove_property(icalcomponent* component,
     2840                                   icalproperty* property);
     2841
     2842int icalcomponent_count_properties(icalcomponent* component,
     2843                                   icalproperty_kind kind);
     2844
     2845/* Iterate through the properties */
     2846icalproperty* icalcomponent_get_current_property(icalcomponent* component);
     2847
     2848icalproperty* icalcomponent_get_first_property(icalcomponent* component,
     2849                                              icalproperty_kind kind);
     2850icalproperty* icalcomponent_get_next_property(icalcomponent* component,
     2851                                              icalproperty_kind kind);
     2852
     2853
     2854/*
     2855 * Working with components
     2856 */
     2857
     2858
     2859/* Return the first VEVENT, VTODO or VJOURNAL sub-component of cop, or
     2860   comp if it is one of those types */
     2861
     2862icalcomponent* icalcomponent_get_inner(icalcomponent* comp);
     2863
     2864
     2865void icalcomponent_add_component(icalcomponent* parent,
     2866                                icalcomponent* child);
     2867
     2868void icalcomponent_remove_component(icalcomponent* parent,
     2869                                icalcomponent* child);
     2870
     2871int icalcomponent_count_components(icalcomponent* component,
     2872                                   icalcomponent_kind kind);
     2873
     2874/**
     2875   This takes 2 VCALENDAR components and merges the second one into the first,
     2876   resolving any problems with conflicting TZIDs. comp_to_merge will no
     2877   longer exist after calling this function. */
     2878void icalcomponent_merge_component(icalcomponent* comp,
     2879                                   icalcomponent* comp_to_merge);
     2880
     2881
     2882/* Iteration Routines. There are two forms of iterators, internal and
     2883external. The internal ones came first, and are almost completely
     2884sufficient, but they fail badly when you want to construct a loop that
     2885removes components from the container.*/
     2886
     2887
     2888/* Iterate through components */
     2889icalcomponent* icalcomponent_get_current_component (icalcomponent* component);
     2890
     2891icalcomponent* icalcomponent_get_first_component(icalcomponent* component,
     2892                                              icalcomponent_kind kind);
     2893icalcomponent* icalcomponent_get_next_component(icalcomponent* component,
     2894                                              icalcomponent_kind kind);
     2895
     2896/* Using external iterators */
     2897icalcompiter icalcomponent_begin_component(icalcomponent* component,
     2898                                           icalcomponent_kind kind);
     2899icalcompiter icalcomponent_end_component(icalcomponent* component,
     2900                                         icalcomponent_kind kind);
     2901icalcomponent* icalcompiter_next(icalcompiter* i);
     2902icalcomponent* icalcompiter_prior(icalcompiter* i);
     2903icalcomponent* icalcompiter_deref(icalcompiter* i);
     2904
     2905
     2906/* Working with embedded error properties */
     2907
     2908
     2909/* Check the component against itip rules and insert error properties*/
     2910/* Working with embedded error properties */
     2911int icalcomponent_check_restrictions(icalcomponent* comp);
     2912
     2913/** Count embedded errors. */
     2914int icalcomponent_count_errors(icalcomponent* component);
     2915
     2916/** Remove all X-LIC-ERROR properties*/
     2917void icalcomponent_strip_errors(icalcomponent* component);
     2918
     2919/** Convert some X-LIC-ERROR properties into RETURN-STATUS properties*/
     2920void icalcomponent_convert_errors(icalcomponent* component);
     2921
     2922/* Internal operations. They are private, and you should not be using them. */
     2923icalcomponent* icalcomponent_get_parent(icalcomponent* component);
     2924void icalcomponent_set_parent(icalcomponent* component,
     2925                              icalcomponent* parent);
     2926
     2927/* Kind conversion routines */
     2928
     2929int icalcomponent_kind_is_valid(const icalcomponent_kind kind);
     2930
     2931icalcomponent_kind icalcomponent_string_to_kind(const char* string);
     2932
     2933const char* icalcomponent_kind_to_string(icalcomponent_kind kind);
     2934
     2935
     2936/************* Derived class methods.  ****************************
     2937
     2938If the code was in an OO language, the remaining routines would be
     2939members of classes derived from icalcomponent. Don't call them on the
     2940wrong component subtypes. */
     2941
     2942/** For VCOMPONENT: Return a reference to the first VEVENT, VTODO or
     2943   VJOURNAL */
     2944icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c);
     2945
     2946/** For VEVENT, VTODO, VJOURNAL and VTIMEZONE: report the start and end
     2947   times of an event in UTC */
     2948struct icaltime_span icalcomponent_get_span(icalcomponent* comp);
     2949
     2950/******************** Convienience routines **********************/
     2951
     2952void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v);
     2953struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp);
     2954
     2955/* For the icalcomponent routines only, dtend and duration are tied
     2956   together. If you call the set routine for one and the other exists,
     2957   the routine will calculate the change to the other. That is, if
     2958   there is a DTEND and you call set_duration, the routine will modify
     2959   DTEND to be the sum of DTSTART and the duration. If you call a get
     2960   routine for one and the other exists, the routine will calculate
     2961   the return value. If you call a set routine and neither exists, the
     2962   routine will create the apcompriate comperty */
     2963
     2964
     2965struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp);
     2966void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v);
     2967
     2968struct icaltimetype icalcomponent_get_due(icalcomponent* comp);
     2969void icalcomponent_set_due(icalcomponent* comp, struct icaltimetype v);
     2970
     2971void icalcomponent_set_duration(icalcomponent* comp,
     2972                                struct icaldurationtype v);
     2973struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp);
     2974
     2975void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method);
     2976icalproperty_method icalcomponent_get_method(icalcomponent* comp);
     2977
     2978struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp);
     2979void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v);
     2980
     2981void icalcomponent_set_summary(icalcomponent* comp, const char* v);
     2982const char* icalcomponent_get_summary(icalcomponent* comp);
     2983
     2984void icalcomponent_set_comment(icalcomponent* comp, const char* v);
     2985const char* icalcomponent_get_comment(icalcomponent* comp);
     2986
     2987void icalcomponent_set_uid(icalcomponent* comp, const char* v);
     2988const char* icalcomponent_get_uid(icalcomponent* comp);
     2989
     2990void icalcomponent_set_relcalid(icalcomponent* comp, const char* v);
     2991const char* icalcomponent_get_relcalid(icalcomponent* comp);
     2992
     2993void icalcomponent_set_recurrenceid(icalcomponent* comp,
     2994                                    struct icaltimetype v);
     2995struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
     2996
     2997void icalcomponent_set_description(icalcomponent* comp, const char* v);
     2998const char* icalcomponent_get_description(icalcomponent* comp);
     2999
     3000void icalcomponent_set_location(icalcomponent* comp, const char* v);
     3001const char* icalcomponent_get_location(icalcomponent* comp);
     3002
     3003void icalcomponent_set_sequence(icalcomponent* comp, int v);
     3004int icalcomponent_get_sequence(icalcomponent* comp);
     3005
     3006void icalcomponent_set_status(icalcomponent* comp, enum icalproperty_status v);
     3007enum icalproperty_status icalcomponent_get_status(icalcomponent* comp);
     3008
     3009
     3010/** Calls the given function for each TZID parameter found in the
     3011    component, and any subcomponents. */
     3012void icalcomponent_foreach_tzid(icalcomponent* comp,
     3013                                void (*callback)(icalparameter *param, void *data),
     3014                                void *callback_data);
     3015
     3016/** Returns the icaltimezone in the component corresponding to the
     3017    TZID, or NULL if it can't be found. */
     3018icaltimezone* icalcomponent_get_timezone(icalcomponent* comp,
     3019                                         const char *tzid);
     3020
     3021int icalproperty_recurrence_is_excluded(icalcomponent *comp,
     3022                                       struct icaltimetype *dtstart,
     3023                                       struct icaltimetype *recurtime);
     3024
     3025void icalcomponent_foreach_recurrence(icalcomponent* comp,
     3026                                      struct icaltimetype start,
     3027                                      struct icaltimetype end,
     3028                        void (*callback)(icalcomponent *comp,
     3029                                         struct icaltime_span *span,
     3030                                         void *data),
     3031                              void *callback_data);
     3032
     3033
     3034/*************** Type Specific routines ***************/
     3035
     3036icalcomponent* icalcomponent_new_vcalendar();
     3037icalcomponent* icalcomponent_new_vevent();
     3038icalcomponent* icalcomponent_new_vtodo();
     3039icalcomponent* icalcomponent_new_vjournal();
     3040icalcomponent* icalcomponent_new_valarm();
     3041icalcomponent* icalcomponent_new_vfreebusy();
     3042icalcomponent* icalcomponent_new_vtimezone();
     3043icalcomponent* icalcomponent_new_xstandard();
     3044icalcomponent* icalcomponent_new_xdaylight();
     3045icalcomponent* icalcomponent_new_vagenda();
     3046icalcomponent* icalcomponent_new_vquery();
     3047
     3048#endif /* !ICALCOMPONENT_H */
     3049/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
     3050/*======================================================================
     3051 FILE: icaltimezone.h
     3052 CREATOR: Damon Chaplin 15 March 2001
     3053
     3054
     3055
     3056 (C) COPYRIGHT 2001, Damon Chaplin
     3057
     3058 This program is free software; you can redistribute it and/or modify
     3059 it under the terms of either:
     3060
     3061    The LGPL as published by the Free Software Foundation, version
     3062    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3063
     3064  Or:
     3065
     3066    The Mozilla Public License Version 1.0. You may obtain a copy of
     3067    the License at http://www.mozilla.org/MPL/
     3068
     3069
     3070======================================================================*/
     3071/**
     3072 * @file icaltimezone.h
     3073 * @brief timezone handling routines
     3074 */
     3075
     3076#ifndef ICALTIMEZONE_H
     3077#define ICALTIMEZONE_H
     3078
     3079#include <stdio.h> /* For FILE* */
     3080
     3081
     3082#ifndef ICALTIMEZONE_DEFINED
     3083#define ICALTIMEZONE_DEFINED
     3084/** @brief An opaque struct representing a timezone. 
     3085 * We declare this here to avoid a circular dependancy.
     3086 */
     3087typedef struct _icaltimezone            icaltimezone;
     3088#endif
     3089
     3090/**
     3091 * @par Creating/Destroying individual icaltimezones.
     3092 */
     3093
     3094/** Creates a new icaltimezone. */
     3095icaltimezone *icaltimezone_new                  (void);
     3096icaltimezone *icaltimezone_copy                 (icaltimezone *originalzone);
     3097
     3098/** Frees all memory used for the icaltimezone. Set free_struct to free the
     3099   icaltimezone struct as well. */
     3100void icaltimezone_free                          (icaltimezone *zone,
     3101                                                 int free_struct);
     3102
     3103
     3104/**
     3105 * @par Accessing timezones.
     3106 */
     3107
     3108/** Free any builtin timezone information **/
     3109void icaltimezone_free_builtin_timezones(void);
     3110
     3111/** Returns the array of builtin icaltimezones. */
     3112icalarray* icaltimezone_get_builtin_timezones   (void);
     3113
     3114/** Returns a single builtin timezone, given its Olson city name. */
     3115icaltimezone* icaltimezone_get_builtin_timezone (const char *location);
     3116
     3117/** Returns a single builtin timezone, given its offset. */
     3118icaltimezone* icaltimezone_get_builtin_timezone_from_offset     (int offset, const char *tzname);
     3119
     3120/** Returns a single builtin timezone, given its TZID. */
     3121icaltimezone* icaltimezone_get_builtin_timezone_from_tzid (const char *tzid);
     3122
     3123/** Returns the UTC timezone. */
     3124icaltimezone* icaltimezone_get_utc_timezone     (void);
     3125
     3126/** Returns the TZID of a timezone. */
     3127const char*     icaltimezone_get_tzid                   (icaltimezone *zone);
     3128
     3129/** Returns the city name of a timezone. */
     3130const char*     icaltimezone_get_location               (icaltimezone *zone);
     3131
     3132/** Returns the TZNAME properties used in the latest STANDARD and DAYLIGHT
     3133   components. If they are the same it will return just one, e.g. "LMT".
     3134   If they are different it will format them like "EST/EDT". Note that this
     3135   may also return NULL. */
     3136const char*     icaltimezone_get_tznames                (icaltimezone *zone);
     3137
     3138/** Returns the latitude of a builtin timezone. */
     3139double  icaltimezone_get_latitude               (icaltimezone *zone);
     3140
     3141/** Returns the longitude of a builtin timezone. */
     3142double  icaltimezone_get_longitude              (icaltimezone *zone);
     3143
     3144/** Returns the VTIMEZONE component of a timezone. */
     3145icalcomponent*  icaltimezone_get_component      (icaltimezone *zone);
     3146
     3147/** Sets the VTIMEZONE component of an icaltimezone, initializing the tzid,
     3148   location & tzname fields. It returns 1 on success or 0 on failure, i.e.
     3149   no TZID was found. */
     3150int     icaltimezone_set_component              (icaltimezone *zone,
     3151                                                 icalcomponent  *comp);
     3152
     3153const char* icaltimezone_get_display_name       (icaltimezone   *zone);
     3154
     3155/**
     3156 * @par Converting times between timezones.
     3157 */
     3158
     3159void    icaltimezone_convert_time               (struct icaltimetype *tt,
     3160                                                 icaltimezone *from_zone,
     3161                                                 icaltimezone *to_zone);
     3162
     3163
     3164/**
     3165 * @par Getting offsets from UTC.
     3166 */
     3167
     3168/** Calculates the UTC offset of a given local time in the given
     3169   timezone.  It is the number of seconds to add to UTC to get local
     3170   time.  The is_daylight flag is set to 1 if the time is in
     3171   daylight-savings time. */
     3172int icaltimezone_get_utc_offset (icaltimezone *zone,
     3173                                 struct icaltimetype *tt,
     3174                                 int            *is_daylight);
     3175
     3176/** Calculates the UTC offset of a given UTC time in the given
     3177   timezone.  It is the number of seconds to add to UTC to get local
     3178   time.  The is_daylight flag is set to 1 if the time is in
     3179   daylight-savings time. */
     3180int     icaltimezone_get_utc_offset_of_utc_time (icaltimezone *zone,
     3181                                                 struct icaltimetype *tt,
     3182                                                 int            *is_daylight);
     3183
     3184
     3185
     3186/*
     3187 * Handling arrays of timezones. Mainly for internal use.
     3188 */
     3189icalarray*  icaltimezone_array_new              (void);
     3190
     3191void        icaltimezone_array_append_from_vtimezone (icalarray     *timezones,
     3192                                                      icalcomponent *child);
     3193void        icaltimezone_array_free             (icalarray      *timezones);
     3194
     3195
     3196/*
     3197 * @par Handling the default location the timezone files
     3198 */
     3199
     3200/** Set the directory to look for the zonefiles */
     3201void set_zone_directory(char *path);
     3202
     3203/** Free memory dedicated to the zonefile directory */
     3204void free_zone_directory(void);
     3205void icaltimezone_release_zone_tab(void);
     3206
     3207/*
     3208 * @par Debugging Output.
     3209 */
     3210
     3211/** Dumps information about changes in the timezone up to and including
     3212   max_year. */
     3213int     icaltimezone_dump_changes               (icaltimezone *zone,
     3214                                                 int             max_year,
     3215                                                 FILE           *fp);
     3216
     3217#endif /* ICALTIMEZONE_H */
     3218/* -*- Mode: C -*- */
     3219/*======================================================================
     3220  FILE: icalparser.h
     3221  CREATOR: eric 20 April 1999
     3222 
     3223
     3224
     3225 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3226     http://www.softwarestudio.org
     3227
     3228 This program is free software; you can redistribute it and/or modify
     3229 it under the terms of either:
     3230
     3231    The LGPL as published by the Free Software Foundation, version
     3232    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3233
     3234  Or:
     3235
     3236    The Mozilla Public License Version 1.0. You may obtain a copy of
     3237    the License at http://www.mozilla.org/MPL/
     3238
     3239  The original code is icalparser.h
     3240
     3241======================================================================*/
     3242
     3243
     3244#ifndef ICALPARSER_H
     3245#define ICALPARSER_H
     3246
     3247
     3248#include <stdio.h> /* For FILE* */
     3249
     3250typedef struct icalparser_impl icalparser;
     3251
     3252
     3253/**
     3254 * @file  icalparser.h
     3255 * @brief Line-oriented parsing.
     3256 *
     3257 * Create a new parser via icalparse_new_parser, then add lines one at
     3258 * a time with icalparse_add_line(). icalparser_add_line() will return
     3259 * non-zero when it has finished with a component.
     3260 */
     3261
     3262typedef enum icalparser_state {
     3263    ICALPARSER_ERROR,
     3264    ICALPARSER_SUCCESS,
     3265    ICALPARSER_BEGIN_COMP,
     3266    ICALPARSER_END_COMP,
     3267    ICALPARSER_IN_PROGRESS
     3268} icalparser_state;
     3269
     3270icalparser* icalparser_new(void);
     3271icalcomponent* icalparser_add_line(icalparser* parser, char* str );
     3272icalcomponent* icalparser_clean(icalparser* parser);
     3273icalparser_state icalparser_get_state(icalparser* parser);
     3274void icalparser_free(icalparser* parser);
     3275
     3276
     3277/**
     3278 * Message oriented parsing.  icalparser_parse takes a string that
     3279 * holds the text ( in RFC 2445 format ) and returns a pointer to an
     3280 * icalcomponent. The caller owns the memory. line_gen_func is a
     3281 * pointer to a function that returns one content line per invocation
     3282 */
     3283
     3284icalcomponent* icalparser_parse(icalparser *parser,
     3285        char* (*line_gen_func)(char *s, size_t size, void *d));
     3286
     3287/**
     3288   Set the data that icalparser_parse will give to the line_gen_func
     3289   as the parameter 'd'
     3290 */
     3291void icalparser_set_gen_data(icalparser* parser, void* data);
     3292
     3293
     3294icalcomponent* icalparser_parse_string(const char* str);
     3295
     3296
     3297/***********************************************************************
     3298 * Parser support functions
     3299 ***********************************************************************/
     3300
     3301/** Use the flex/bison parser to turn a string into a value type */
     3302icalvalue*  icalparser_parse_value(icalvalue_kind kind,
     3303                                   const char* str, icalcomponent** errors);
     3304
     3305/** Given a line generator function, return a single iCal content line.*/
     3306char* icalparser_get_line(icalparser* parser, char* (*line_gen_func)(char *s, size_t size, void *d));
     3307
     3308char* icalparser_string_line_generator(char *out, size_t buf_size, void *d);
     3309
     3310#endif /* !ICALPARSE_H */
     3311/* -*- Mode: C -*- */
     3312/*======================================================================
     3313 FILE: icalmemory.h
     3314 CREATOR: eric 30 June 1999
     3315
     3316
     3317
     3318 This program is free software; you can redistribute it and/or modify
     3319 it under the terms of either:
     3320
     3321    The LGPL as published by the Free Software Foundation, version
     3322    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3323
     3324  Or:
     3325
     3326    The Mozilla Public License Version 1.0. You may obtain a copy of
     3327    the License at http://www.mozilla.org/MPL/
     3328
     3329 The Initial Developer of the Original Code is Eric Busboom
     3330
     3331 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3332     http://www.softwarestudio.org
     3333======================================================================*/
     3334
     3335#ifndef ICALMEMORY_H
     3336#define ICALMEMORY_H
     3337
     3338#ifndef WIN32
     3339#include <sys/types.h> /* for size_t */
     3340#else
     3341#include <stddef.h>
     3342#endif
     3343
     3344/* Tmp buffers are managed by ical. References can be returned to the
     3345   caller, although the caller will not own the memory. */
     3346
     3347void* icalmemory_tmp_buffer(size_t size);
     3348char* icalmemory_tmp_copy(const char* str);
     3349
     3350/** Add an externally allocated buffer to the ring. */
     3351void  icalmemory_add_tmp_buffer(void*);
     3352
     3353
     3354/** Free all memory used in the ring */
     3355void icalmemory_free_ring(void);
     3356
     3357/* Non-tmp buffers must be freed. These are mostly wrappers around
     3358 * malloc, etc, but are used so the caller can change the memory
     3359 * allocators in a future version of the library */
     3360
     3361void* icalmemory_new_buffer(size_t size);
     3362void* icalmemory_resize_buffer(void* buf, size_t size);
     3363void icalmemory_free_buffer(void* buf);
     3364
     3365/**
     3366   icalmemory_append_string will copy the string 'string' to the
     3367   buffer 'buf' starting at position 'pos', reallocing 'buf' if it is
     3368   too small. 'buf_size' is the size of 'buf' and will be changed if
     3369   'buf' is reallocated. 'pos' will point to the last byte of the new
     3370   string in 'buf', usually a '\0' */
     3371
     3372/* THESE ROUTINES CAN NOT BE USED ON TMP BUFFERS. Only use them on
     3373   normally allocated memory, or on buffers created from
     3374   icalmemory_new_buffer, never with buffers created by
     3375   icalmemory_tmp_buffer. If icalmemory_append_string has to resize a
     3376   buffer on the ring, the ring will loose track of it an you will
     3377   have memory problems. */
     3378
     3379void icalmemory_append_string(char** buf, char** pos, size_t* buf_size,
     3380                              const char* string);
     3381
     3382/**  icalmemory_append_char is similar, but is appends a character instead of a string */
     3383void icalmemory_append_char(char** buf, char** pos, size_t* buf_size,
     3384                              char ch);
     3385
     3386/** A wrapper around strdup. Partly to trap calls to strdup, partly
     3387    because in -ansi, gcc on Red Hat claims that strdup is undeclared */
     3388char* icalmemory_strdup(const char *s);
     3389
     3390#endif /* !ICALMEMORY_H */
     3391
     3392
     3393
     3394/* -*- Mode: C -*- */
     3395/*======================================================================
     3396  FILE: icalerror.h
     3397  CREATOR: eric 09 May 1999
     3398 
     3399
     3400
     3401 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3402     http://www.softwarestudio.org
     3403
     3404 This program is free software; you can redistribute it and/or modify
     3405 it under the terms of either:
     3406
     3407    The LGPL as published by the Free Software Foundation, version
     3408    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3409
     3410  Or:
     3411
     3412    The Mozilla Public License Version 1.0. You may obtain a copy of
     3413    the License at http://www.mozilla.org/MPL/
     3414
     3415  The original code is icalerror.h
     3416
     3417======================================================================*/
     3418
     3419
     3420#ifndef ICALERROR_H
     3421#define ICALERROR_H
     3422
     3423#include <assert.h>
     3424#include <stdio.h> /* For icalerror_warn() */
     3425
     3426
     3427#ifdef HAVE_CONFIG_H
     3428#endif
     3429
     3430#define ICAL_SETERROR_ISFUNC
     3431
     3432
     3433/** This routine is called before any error is triggered. It is called
     3434   by icalerror_set_errno, so it does not appear in all of the macros
     3435   below */
     3436void icalerror_stop_here(void);
     3437
     3438void icalerror_crash_here(void);
     3439
     3440typedef enum icalerrorenum {
     3441    ICAL_NO_ERROR,     /* icalerrno may not be initialized - put it first so and pray that the compiler initialize things to zero */   
     3442    ICAL_BADARG_ERROR,
     3443    ICAL_NEWFAILED_ERROR,
     3444    ICAL_ALLOCATION_ERROR,
     3445    ICAL_MALFORMEDDATA_ERROR,
     3446    ICAL_PARSE_ERROR,
     3447    ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
     3448    ICAL_FILE_ERROR,
     3449    ICAL_USAGE_ERROR,
     3450    ICAL_UNIMPLEMENTED_ERROR,
     3451    ICAL_UNKNOWN_ERROR  /* Used for problems in input to icalerror_strerror()*/
     3452
     3453} icalerrorenum;
     3454
     3455icalerrorenum * icalerrno_return(void);
     3456#define icalerrno (*(icalerrno_return()))
     3457
     3458/** If true, libicl aborts after a call to icalerror_set_error
     3459 *
     3460 *  @warning NOT THREAD SAFE -- recommended that you do not change
     3461 *           this in a multithreaded program.
     3462 */
     3463extern int icalerror_errors_are_fatal;
     3464
     3465/* Warning messages */
     3466
     3467#ifdef __GNUC__ca
     3468#define icalerror_warn(message) {fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);}
     3469#else /* __GNU_C__ */
     3470#define icalerror_warn(message) {fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);}
     3471#endif /* __GNU_C__ */
     3472
     3473
     3474void icalerror_clear_errno(void);
     3475void _icalerror_set_errno(icalerrorenum);
     3476
     3477/* Make an individual error fatal or non-fatal. */
     3478typedef enum icalerrorstate {
     3479    ICAL_ERROR_FATAL,     /* Not fata */
     3480    ICAL_ERROR_NONFATAL,  /* Fatal */
     3481    ICAL_ERROR_DEFAULT,   /* Use the value of icalerror_errors_are_fatal*/
     3482    ICAL_ERROR_UNKNOWN    /* Asked state for an unknown error type */
     3483} icalerrorstate ;
     3484
     3485const char* icalerror_strerror(icalerrorenum e);
     3486const char* icalerror_perror();
     3487void ical_bt(void);
     3488void icalerror_set_error_state( icalerrorenum error, icalerrorstate);
     3489icalerrorstate icalerror_get_error_state( icalerrorenum error);
     3490
     3491#ifndef ICAL_SETERROR_ISFUNC
     3492#define icalerror_set_errno(x) \
     3493icalerrno = x; \
     3494if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || \
     3495   (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && \
     3496    icalerror_errors_are_fatal == 1 )){ \
     3497   icalerror_warn(icalerror_strerror(x)); \
     3498   ical_bt(); \
     3499   assert(0); \
     3500} }
     3501#else
     3502void icalerror_set_errno(icalerrorenum x);
     3503#endif
     3504
     3505#ifdef ICAL_ERRORS_ARE_FATAL
     3506#undef NDEBUG
     3507#endif
     3508
     3509#define icalerror_check_value_type(value,type);
     3510#define icalerror_check_property_type(value,type);
     3511#define icalerror_check_parameter_type(value,type);
     3512#define icalerror_check_component_type(value,type);
     3513
     3514/* Assert with a message */
     3515#ifdef ICAL_ERRORS_ARE_FATAL
     3516
     3517#ifdef __GNUC__
     3518#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
     3519#else /*__GNUC__*/
     3520#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
     3521#endif /*__GNUC__*/
     3522
     3523#else /* ICAL_ERRORS_ARE_FATAL */
     3524#define icalerror_assert(test,message)
     3525#endif /* ICAL_ERRORS_ARE_FATAL */
     3526
     3527/* Check & abort if check fails */
     3528#define icalerror_check_arg(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); }
     3529
     3530/* Check & return void if check fails*/
     3531#define icalerror_check_arg_rv(test,arg) if(!(test)) {icalerror_set_errno(ICAL_BADARG_ERROR); return; }
     3532
     3533/* Check & return 0 if check fails*/
     3534#define icalerror_check_arg_rz(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return 0;}
     3535
     3536/* Check & return an error if check fails*/
     3537#define icalerror_check_arg_re(test,arg,error) if(!(test)) { icalerror_stop_here(); assert(0); return error;}
     3538
     3539/* Check & return something*/
     3540#define icalerror_check_arg_rx(test,arg,x) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return x;}
     3541
     3542
     3543
     3544/* String interfaces to set an error to NONFATAL and restore it to its
     3545   original value */
     3546
     3547icalerrorstate icalerror_supress(const char* error);
     3548void icalerror_restore(const char* error, icalerrorstate es);
     3549
     3550
     3551#endif /* !ICALERROR_H */
     3552
     3553
     3554
     3555/* -*- Mode: C -*- */
     3556/*======================================================================
     3557  FILE: icalrestriction.h
     3558  CREATOR: eric 24 April 1999
     3559 
     3560
     3561
     3562 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3563     http://www.softwarestudio.org
     3564
     3565 This program is free software; you can redistribute it and/or modify
     3566 it under the terms of either:
     3567
     3568    The LGPL as published by the Free Software Foundation, version
     3569    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3570
     3571  Or:
     3572
     3573    The Mozilla Public License Version 1.0. You may obtain a copy of
     3574    the License at http://www.mozilla.org/MPL/
     3575
     3576  The original code is icalrestriction.h
     3577
     3578  Contributions from:
     3579     Graham Davison (g.m.davison@computer.org)
     3580
     3581
     3582======================================================================*/
     3583
     3584
     3585#ifndef ICALRESTRICTION_H
     3586#define ICALRESTRICTION_H
     3587
     3588/* These must stay in this order for icalrestriction_compare to work */
     3589typedef enum icalrestriction_kind {
     3590    ICAL_RESTRICTION_NONE=0,            /* 0 */
     3591    ICAL_RESTRICTION_ZERO,              /* 1 */
     3592    ICAL_RESTRICTION_ONE,               /* 2 */
     3593    ICAL_RESTRICTION_ZEROPLUS,          /* 3 */
     3594    ICAL_RESTRICTION_ONEPLUS,           /* 4 */
     3595    ICAL_RESTRICTION_ZEROORONE,         /* 5 */
     3596    ICAL_RESTRICTION_ONEEXCLUSIVE,      /* 6 */
     3597    ICAL_RESTRICTION_ONEMUTUAL,         /* 7 */
     3598    ICAL_RESTRICTION_UNKNOWN            /* 8 */
     3599} icalrestriction_kind;
     3600
     3601int
     3602icalrestriction_compare(icalrestriction_kind restr, int count);
     3603
     3604
     3605int
     3606icalrestriction_is_parameter_allowed(icalproperty_kind property,
     3607                                       icalparameter_kind parameter);
     3608
     3609int icalrestriction_check(icalcomponent* comp);
     3610
     3611
     3612#endif /* !ICALRESTRICTION_H */
     3613
     3614
     3615
     3616/* -*- Mode: C -*-
     3617  ======================================================================
     3618  FILE: sspm.h Mime Parser
     3619  CREATOR: eric 25 June 2000
     3620 
     3621
     3622 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3623     http://www.softwarestudio.org
     3624
     3625 The contents of this file are subject to the Mozilla Public License
     3626 Version 1.0 (the "License"); you may not use this file except in
     3627 compliance with the License. You may obtain a copy of the License at
     3628 http://www.mozilla.org/MPL/
     3629 
     3630 Software distributed under the License is distributed on an "AS IS"
     3631 basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
     3632 the License for the specific language governing rights and
     3633 limitations under the License.
     3634 
     3635
     3636 This program is free software; you can redistribute it and/or modify
     3637 it under the terms of either:
     3638
     3639    The LGPL as published by the Free Software Foundation, version
     3640    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3641
     3642  Or:
     3643
     3644    The Mozilla Public License Version 1.0. You may obtain a copy of
     3645    the License at http://www.mozilla.org/MPL/
     3646
     3647  The Initial Developer of the Original Code is Eric Busboom
     3648
     3649 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     3650 ======================================================================*/
     3651
     3652#ifndef SSPM_H
     3653#define SSPM_H
     3654
     3655enum sspm_major_type {
     3656    SSPM_NO_MAJOR_TYPE,
     3657    SSPM_TEXT_MAJOR_TYPE,
     3658    SSPM_IMAGE_MAJOR_TYPE,
     3659    SSPM_AUDIO_MAJOR_TYPE,
     3660    SSPM_VIDEO_MAJOR_TYPE,
     3661    SSPM_APPLICATION_MAJOR_TYPE,
     3662    SSPM_MULTIPART_MAJOR_TYPE,
     3663    SSPM_MESSAGE_MAJOR_TYPE,
     3664    SSPM_UNKNOWN_MAJOR_TYPE
     3665};
     3666
     3667enum sspm_minor_type {
     3668    SSPM_NO_MINOR_TYPE,
     3669    SSPM_ANY_MINOR_TYPE,
     3670    SSPM_PLAIN_MINOR_TYPE,
     3671    SSPM_RFC822_MINOR_TYPE,
     3672    SSPM_DIGEST_MINOR_TYPE,
     3673    SSPM_CALENDAR_MINOR_TYPE,
     3674    SSPM_MIXED_MINOR_TYPE,
     3675    SSPM_RELATED_MINOR_TYPE,
     3676    SSPM_ALTERNATIVE_MINOR_TYPE,
     3677    SSPM_PARALLEL_MINOR_TYPE,
     3678    SSPM_UNKNOWN_MINOR_TYPE
     3679};
     3680
     3681enum sspm_encoding {
     3682    SSPM_NO_ENCODING,
     3683    SSPM_QUOTED_PRINTABLE_ENCODING,
     3684    SSPM_8BIT_ENCODING,
     3685    SSPM_7BIT_ENCODING,
     3686    SSPM_BINARY_ENCODING,
     3687    SSPM_BASE64_ENCODING,
     3688    SSPM_UNKNOWN_ENCODING
     3689};
     3690
     3691enum sspm_error{
     3692    SSPM_NO_ERROR,
     3693    SSPM_UNEXPECTED_BOUNDARY_ERROR,
     3694    SSPM_WRONG_BOUNDARY_ERROR,
     3695    SSPM_NO_BOUNDARY_ERROR,
     3696    SSPM_NO_HEADER_ERROR,
     3697    SSPM_MALFORMED_HEADER_ERROR
     3698};
     3699
     3700
     3701struct sspm_header
     3702{
     3703        int def;
     3704        char* boundary;
     3705        enum sspm_major_type major;
     3706        enum sspm_minor_type minor;
     3707        char *minor_text;
     3708        char ** content_type_params;
     3709        char* charset;
     3710        enum sspm_encoding encoding;
     3711        char* filename;
     3712        char* content_id;
     3713        enum sspm_error error;
     3714        char* error_text;
     3715};
     3716
     3717struct sspm_part {
     3718        struct sspm_header header;
     3719        int level;
     3720        size_t data_size;
     3721        void *data;
     3722};
     3723
     3724struct sspm_action_map {
     3725        enum sspm_major_type major;
     3726        enum sspm_minor_type minor;
     3727        void* (*new_part)();
     3728        void (*add_line)(void *part, struct sspm_header *header,
     3729                         const char* line, size_t size);
     3730        void* (*end_part)(void* part);
     3731        void (*free_part)(void *part);
     3732};
     3733
     3734const char* sspm_major_type_string(enum sspm_major_type type);
     3735const char* sspm_minor_type_string(enum sspm_minor_type type);
     3736const char* sspm_encoding_string(enum sspm_encoding type);
     3737
     3738int sspm_parse_mime(struct sspm_part *parts,
     3739                    size_t max_parts,
     3740                    const struct sspm_action_map *actions,
     3741                    char* (*get_string)(char *s, size_t size, void* data),
     3742                    void *get_string_data,
     3743                    struct sspm_header *first_header
     3744    );
     3745
     3746void sspm_free_parts(struct sspm_part *parts, size_t max_parts);
     3747
     3748char *decode_quoted_printable(char *dest,
     3749                                       char *src,
     3750                                       size_t *size);
     3751char *decode_base64(char *dest,
     3752                             char *src,
     3753                             size_t *size);
     3754
     3755
     3756int sspm_write_mime(struct sspm_part *parts,size_t num_parts,
     3757                    char **output_string, const char* header);
     3758
     3759#endif /*SSPM_H*/
     3760/* -*- Mode: C -*- */
     3761/*======================================================================
     3762 FILE: icalmime.h
     3763 CREATOR: eric 26 July 2000
     3764
     3765
     3766
     3767 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
     3768     http://www.softwarestudio.org
     3769
     3770 This program is free software; you can redistribute it and/or modify
     3771 it under the terms of either:
     3772
     3773    The LGPL as published by the Free Software Foundation, version
     3774    2.1, available at: http://www.fsf.org/copyleft/lesser.html
     3775
     3776  Or:
     3777
     3778    The Mozilla Public License Version 1.0. You may obtain a copy of
     3779    the License at http://www.mozilla.org/MPL/
     3780
     3781======================================================================*/
     3782
     3783#ifndef ICALMIME_H
     3784#define ICALMIME_H
     3785
     3786
     3787icalcomponent* icalmime_parse(  char* (*line_gen_func)(char *s, size_t size,
     3788                                                       void *d),
     3789                                void *data);
     3790
     3791/* The inverse of icalmime_parse, not implemented yet. Use sspm.h directly.  */
     3792char* icalmime_as_mime_string(char* component);
     3793
     3794
     3795
     3796#endif /* !ICALMIME_H */
     3797
     3798
     3799
     3800/* -*- Mode: C -*-
     3801  ======================================================================
     3802  FILE: icallangbind.h
     3803  CREATOR: eric 25 jan 2001
     3804 
     3805  DESCRIPTION:
     3806 
     3807
     3808  (C) COPYRIGHT 1999 Eric Busboom
     3809  http://www.softwarestudio.org
     3810 
     3811  This package is free software and is provided "as is" without
     3812  express or implied warranty.  It may be used, redistributed and/or
     3813  modified under the same terms as perl itself. ( Either the Artistic
     3814  License or the GPL. )
     3815
     3816  ======================================================================*/
     3817
     3818#ifndef __ICALLANGBIND_H__
     3819#define __ICALLANGBIND_H__
     3820
     3821int* icallangbind_new_array(int size);
     3822void icallangbind_free_array(int* array);
     3823int icallangbind_access_array(int* array, int index);
     3824icalproperty* icallangbind_get_property(icalcomponent *c, int n, const char* prop);
     3825const char* icallangbind_get_property_val(icalproperty* p);
     3826const char* icallangbind_get_parameter(icalproperty *p, const char* parameter);
     3827icalcomponent* icallangbind_get_component(icalcomponent *c, const char* comp);
     3828
     3829icalproperty* icallangbind_get_first_property(icalcomponent *c,
     3830                                              const char* prop);
     3831
     3832icalproperty* icallangbind_get_next_property(icalcomponent *c,
     3833                                              const char* prop);
     3834
     3835icalcomponent* icallangbind_get_first_component(icalcomponent *c,
     3836                                              const char* comp);
     3837
     3838icalcomponent* icallangbind_get_next_component(icalcomponent *c,
     3839                                              const char* comp);
     3840
     3841icalparameter* icallangbind_get_first_parameter(icalproperty *prop);
     3842
     3843icalparameter* icallangbind_get_next_parameter(icalproperty *prop);
     3844
     3845const char* icallangbind_property_eval_string(icalproperty* prop, char* sep);
     3846char* icallangbind_property_eval_string_r(icalproperty* prop, char* sep);
     3847
     3848
     3849int icallangbind_string_to_open_flag(const char* str);
     3850
     3851const char* icallangbind_quote_as_ical(const char* str);
     3852char* icallangbind_quote_as_ical_r(const char* str);
     3853#endif /*__ICALLANGBIND_H__*/
     3854#ifdef __cplusplus
     3855}
     3856#endif
     3857#endif
  • src/libical/icalrestriction.c

    diff -Nurb libical-0.42.orig/src/libical/icalrestriction.c libical-0.42/src/libical/icalrestriction.c
    old new  
     1/*  -*- Mode: C -*- */
     2/*  ======================================================================
     3  File: icalrestriction.c
     4   
     5 (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
     6 ======================================================================*/
     7/*#line 7 "icalrestriction.c.in"*/
     8
     9#ifdef HAVE_CONFIG_H
     10#include <config.h>
     11#endif
     12
     13#include "icalrestriction.h"
     14#include "icalenums.h"
     15#include "icalerror.h"
     16
     17#include <assert.h>
     18#include <stdio.h> /* For snprintf */   
     19
     20#define TMP_BUF_SIZE 1024
     21
     22/* Define the structs for the restrictions. these data are filled out
     23in machine generated code below */
     24
     25struct icalrestriction_property_record;
     26
     27typedef const char* (*restriction_func)(const struct icalrestriction_property_record* rec,icalcomponent* comp,icalproperty* prop);
     28
     29
     30typedef struct icalrestriction_property_record {
     31        icalproperty_method method;
     32        icalcomponent_kind component;
     33        icalproperty_kind property;
     34        icalrestriction_kind restriction;
     35        restriction_func function;
     36} icalrestriction_property_record;
     37
     38
     39typedef struct icalrestriction_component_record {
     40        icalproperty_method method;
     41        icalcomponent_kind component;
     42        icalcomponent_kind subcomponent;
     43        icalrestriction_kind restriction;
     44        restriction_func function;
     45} icalrestriction_component_record;
     46
     47static const icalrestriction_property_record*
     48icalrestriction_get_property_restriction(icalproperty_method method,
     49                                         icalcomponent_kind component,
     50                                         icalproperty_kind property);
     51static const icalrestriction_component_record*
     52icalrestriction_get_component_restriction(icalproperty_method method,
     53                                          icalcomponent_kind component,
     54                                          icalcomponent_kind subcomponent);
     55
     56icalrestriction_property_record null_prop_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_UNKNOWN,0};
     57icalrestriction_component_record null_comp_record =   {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_UNKNOWN,0};
     58
     59
     60/** Each row gives the result of comparing a restriction against a count.
     61   The columns in each row represent 0,1,2+. '-1' indicates
     62   'invalid, 'don't care' or 'needs more analysis' So, for
     63   ICAL_RESTRICTION_ONE, if there is 1 of a property with that
     64   restriction, it passes, but if there are 0 or 2+, it fails. */
     65
     66char compare_map[ICAL_RESTRICTION_UNKNOWN+1][3] = {
     67    { 1, 1, 1},/*ICAL_RESTRICTION_NONE*/
     68    { 1, 0, 0},/*ICAL_RESTRICTION_ZERO*/
     69    { 0, 1, 0},/*ICAL_RESTRICTION_ONE*/
     70    { 1, 1, 1},/*ICAL_RESTRICTION_ZEROPLUS*/
     71    { 0, 1, 1},/*ICAL_RESTRICTION_ONEPLUS*/
     72    { 1, 1, 0},/*ICAL_RESTRICTION_ZEROORONE*/
     73    { 1, 1, 0},/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
     74    { 1, 1, 0},/*ICAL_RESTRICTION_ONEMUTUAL*/
     75    { 1, 1, 1} /*ICAL_RESTRICTION_UNKNOWN*/
     76};
     77
     78const char restr_string_map[ICAL_RESTRICTION_UNKNOWN+1][60] = {
     79    "unknown number",/*ICAL_RESTRICTION_NONE*/
     80    "0",/*ICAL_RESTRICTION_ZERO*/
     81    "1",/*ICAL_RESTRICTION_ONE*/
     82    "zero or more",/*ICAL_RESTRICTION_ZEROPLUS*/
     83    "one or more" ,/*ICAL_RESTRICTION_ONEPLUS*/
     84    "zero or one",/*ICAL_RESTRICTION_ZEROORONE*/
     85    "zero or one, exclusive with another property",/*ICAL_RESTRICTION_ONEEXCLUSIVE*/
     86    "zero or one, mutual with another property",/*ICAL_RESTRICTION_ONEMUTUAL*/
     87    "unknown number" /*ICAL_RESTRICTION_UNKNOWN*/
     88};
     89
     90
     91int
     92icalrestriction_compare(icalrestriction_kind restr, int count){
     93
     94    /* restr is an unsigned int, ICAL_RESTRICTION_NONE == 0, so the check will always return false */
     95    if ( /*restr < ICAL_RESTRICTION_NONE ||*/ restr > ICAL_RESTRICTION_UNKNOWN
     96         || count < 0){
     97        return -1;
     98    }
     99
     100    if (count > 2) {
     101        count = 2;
     102    }
     103
     104    return compare_map[restr][count];
     105
     106}
     107
     108/* Special case routines */
     109
     110const char* icalrestriction_may_be_draft_final_canceled(
     111    const icalrestriction_property_record *rec,
     112    icalcomponent* comp,
     113    icalproperty* prop)
     114{
     115    icalproperty_status stat = icalproperty_get_status(prop);
     116    (void)rec;
     117    (void)comp;
     118
     119    if( !( stat == ICAL_STATUS_DRAFT ||
     120           stat == ICAL_STATUS_FINAL ||
     121           stat == ICAL_STATUS_CANCELLED )){
     122
     123        return "Failed iTIP restrictions for STATUS property. Value must be one of DRAFT, FINAL, or CANCELED";
     124
     125    }
     126
     127    return 0;   
     128}
     129
     130const char* icalrestriction_may_be_comp_need_process(
     131    const icalrestriction_property_record *rec,
     132    icalcomponent* comp,
     133    icalproperty* prop)
     134{
     135    icalproperty_status stat = icalproperty_get_status(prop);
     136    (void)rec;
     137    (void)comp;
     138
     139    if( !( stat == ICAL_STATUS_COMPLETED ||
     140           stat == ICAL_STATUS_NEEDSACTION ||
     141           stat == ICAL_STATUS_INPROCESS )){
     142
     143        return "Failed iTIP restrictions for STATUS property. Value must be one of COMPLETED, NEEDS-ACTION or IN-PROCESS";
     144
     145    }
     146
     147    return 0;   
     148}
     149const char* icalrestriction_may_be_tent_conf(const icalrestriction_property_record *rec,
     150                                       icalcomponent* comp,
     151                                       icalproperty* prop)
     152{
     153    icalproperty_status stat = icalproperty_get_status(prop);
     154
     155    (void)rec;
     156    (void)comp;
     157
     158    if( !( stat == ICAL_STATUS_TENTATIVE ||
     159           stat == ICAL_STATUS_CONFIRMED )){
     160
     161        return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE or CONFIRMED";
     162
     163    }
     164
     165    return 0;   
     166}
     167const char* icalrestriction_may_be_tent_conf_cancel(
     168    const icalrestriction_property_record *rec,
     169    icalcomponent* comp,
     170    icalproperty* prop)
     171{
     172    icalproperty_status stat = icalproperty_get_status(prop);
     173
     174    (void)rec;
     175    (void)comp;
     176
     177    if( !( stat == ICAL_STATUS_TENTATIVE ||
     178           stat == ICAL_STATUS_CONFIRMED ||
     179           stat == ICAL_STATUS_CANCELLED )){
     180
     181        return "Failed iTIP restrictions for STATUS property. Value must be one of TENTATIVE, CONFIRMED or CANCELED";
     182
     183    }
     184
     185    return 0;   
     186}
     187
     188const char* icalrestriction_must_be_cancel_if_present(
     189    const icalrestriction_property_record *rec,
     190    icalcomponent* comp,
     191    icalproperty* prop)
     192{
     193    /* This routine will not be called if prop == 0 */
     194    icalproperty_status stat = icalproperty_get_status(prop);
     195    (void)rec;
     196    (void)comp;
     197
     198    if( stat != ICAL_STATUS_CANCELLED)
     199    {
     200        return "Failed iTIP restrictions for STATUS property. Value must be CANCELLED";
     201
     202    }
     203 
     204
     205    return 0;   
     206}
     207
     208const char* icalrestriction_must_be_canceled_no_attendee(
     209    const icalrestriction_property_record *rec,
     210    icalcomponent* comp,
     211    icalproperty* prop)
     212{
     213    (void)rec;
     214    (void)comp;
     215    (void)prop;
     216
     217    /* Hack. see rfc2446, 3.2.5 CANCEL for porperty STATUS. I don't
     218       understand the note */
     219
     220    return 0;   
     221}
     222
     223const char* icalrestriction_must_be_recurring(
     224                const icalrestriction_property_record *rec,
     225                icalcomponent* comp,
     226                icalproperty* prop){
     227    /* Hack */
     228    (void)rec;
     229    (void)comp;
     230    (void)prop;
     231    return 0;   
     232}
     233
     234const char* icalrestriction_must_have_duration(
     235        const icalrestriction_property_record *rec,
     236        icalcomponent* comp,
     237        icalproperty* prop)
     238{   
     239    if( !icalcomponent_get_first_property(comp,ICAL_DURATION_PROPERTY)){
     240
     241        return "Failed iTIP restrictions for DURATION property. This component must have a DURATION property";
     242
     243    }
     244
     245    return 0;   
     246}
     247
     248const char* icalrestriction_must_have_repeat(
     249                const icalrestriction_property_record *rec,
     250                icalcomponent* comp,
     251                icalproperty* prop)
     252{
     253    (void)rec;
     254    (void)prop;
     255    if( !icalcomponent_get_first_property(comp,ICAL_REPEAT_PROPERTY)){
     256
     257        return "Failed iTIP restrictions for REPEAT property. This component must have a REPEAT property";
     258
     259    }
     260
     261    return 0;   
     262}
     263
     264const char* icalrestriction_must_if_tz_ref(
     265                const icalrestriction_property_record *rec,
     266                icalcomponent* comp,
     267                icalproperty* prop){
     268
     269    /* Hack */
     270    (void)rec;
     271    (void)comp;
     272    (void)prop;
     273    return 0;   
     274}
     275
     276const char* icalrestriction_no_dtend(
     277                const icalrestriction_property_record *rec,
     278                icalcomponent* comp,
     279                icalproperty* prop)
     280{
     281
     282    (void)rec;
     283    (void)prop;
     284    if( !icalcomponent_get_first_property(comp,ICAL_DTEND_PROPERTY)){
     285
     286        return "Failed iTIP restrictions for DTEND property. The component must not have both DURATION and DTEND";
     287
     288    }
     289
     290    return 0;   
     291}
     292
     293const char* icalrestriction_no_duration(
     294                const icalrestriction_property_record *rec,
     295                icalcomponent* comp,
     296                icalproperty* prop)
     297{
     298    (void)rec;
     299    (void)comp;
     300    (void)prop;
     301
     302    /* _no_dtend takes care of this one */
     303    return 0;   
     304}
     305
     306const char* icalrestriction_must_be_email(
     307    const icalrestriction_property_record *rec,
     308    icalcomponent* comp,
     309    icalproperty* prop)
     310{
     311    icalproperty_action stat = icalproperty_get_action(prop);
     312
     313    (void)rec;
     314    (void)comp;
     315
     316    if( !( stat == ICAL_ACTION_EMAIL)){
     317
     318        return "Failed iTIP restrictions for ACTION property. Value must be EMAIL.";
     319
     320    }
     321
     322    return 0;   
     323}
     324
     325int icalrestriction_check_component(icalproperty_method method,
     326                                    icalcomponent* comp)
     327{
     328    icalproperty_kind kind;
     329    icalcomponent_kind comp_kind;
     330    icalrestriction_kind restr;
     331    const icalrestriction_property_record *prop_record;
     332    const char* funcr = 0;
     333    icalproperty *prop;
     334
     335    int count;
     336    int compare;
     337    int valid = 1;
     338
     339    comp_kind = icalcomponent_isa(comp);
     340
     341    /* Check all of the properties in this component */
     342
     343    for(kind = ICAL_ANY_PROPERTY+1; kind != ICAL_NO_PROPERTY; kind++){
     344        count = icalcomponent_count_properties(comp, kind);
     345       
     346        prop_record = icalrestriction_get_property_restriction(method,
     347                                                         comp_kind,
     348                                                         kind);
     349
     350        restr = prop_record->restriction;
     351
     352        if(restr == ICAL_RESTRICTION_ONEEXCLUSIVE ||
     353            restr == ICAL_RESTRICTION_ONEMUTUAL) {
     354
     355            /* First treat is as a 0/1 restriction */
     356            restr = ICAL_RESTRICTION_ZEROORONE;
     357            compare = icalrestriction_compare(restr,count);
     358
     359        } else {
     360
     361            compare = icalrestriction_compare(restr,count);
     362        }
     363
     364        assert(compare != -1);
     365
     366        if (compare == 0){
     367            char temp[TMP_BUF_SIZE];
     368           
     369            snprintf(temp, TMP_BUF_SIZE,"Failed iTIP restrictions for %s property. Expected %s instances of the property and got %d",
     370                    icalenum_property_kind_to_string(kind),
     371                    restr_string_map[restr], count);
     372           
     373            icalcomponent_add_property
     374                (comp,
     375                 icalproperty_vanew_xlicerror(
     376                     temp,
     377                     icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_INVALIDITIP),
     378                     0));   
     379        }
     380
     381
     382        prop = icalcomponent_get_first_property(comp, kind);
     383
     384        if (prop != 0 && prop_record->function !=0  ){
     385            funcr =  prop_record->function(prop_record,comp,prop);
     386        }
     387
     388        if(funcr !=0){
     389            icalcomponent_add_property
     390                (comp,
     391                 icalproperty_vanew_xlicerror(
     392                     funcr,
     393                     icalparameter_new_xlicerrortype(
     394                         ICAL_XLICERRORTYPE_INVALIDITIP),
     395                     0));   
     396
     397            compare = 0;
     398        }
     399
     400        valid = valid && compare;
     401    }
     402
     403
     404
     405    return valid;
     406
     407
     408}
     409
     410int icalrestriction_check(icalcomponent* outer_comp)
     411{
     412    icalcomponent_kind comp_kind;
     413    icalproperty_method method;
     414    icalcomponent* inner_comp;
     415    icalproperty *method_prop;
     416    int valid;
     417   
     418    icalerror_check_arg_rz( (outer_comp!=0), "outer comp");
     419
     420
     421    /* Get the Method value from the outer component */
     422
     423    comp_kind = icalcomponent_isa(outer_comp);
     424
     425    if (comp_kind != ICAL_VCALENDAR_COMPONENT){
     426        icalerror_set_errno(ICAL_BADARG_ERROR);
     427        return 0;
     428    }
     429
     430    method_prop = icalcomponent_get_first_property(outer_comp,
     431                                                   ICAL_METHOD_PROPERTY);
     432
     433    if (method_prop == 0){
     434        method = ICAL_METHOD_NONE;
     435    } else {
     436        method = icalproperty_get_method(method_prop);
     437    }
     438   
     439
     440    /* Check the VCALENDAR wrapper */
     441    valid = icalrestriction_check_component(ICAL_METHOD_NONE,outer_comp);
     442
     443
     444    /* Now check the inner components */
     445
     446    for(inner_comp= icalcomponent_get_first_component(outer_comp,
     447                                                      ICAL_ANY_COMPONENT);
     448        inner_comp != 0;
     449        inner_comp= icalcomponent_get_next_component(outer_comp,
     450                                                     ICAL_ANY_COMPONENT)){
     451
     452        valid = valid && icalrestriction_check_component(method,inner_comp);
     453
     454    }
     455
     456
     457    return valid;
     458
     459}
     460
     461static const icalrestriction_property_record icalrestriction_property_records[] = {
     462    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     463    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     464    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     465    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     466    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     467    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     468    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     469    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     470    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     471    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     472    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     473    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     474    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     475    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     476    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     477    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     478    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     479    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     480    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     481    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     482    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     483    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     484    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     485    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     486    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     487    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     488    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
     489    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     490    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     491    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     492    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     493    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     494    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     495    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     496    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     497    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     498    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     499    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     500    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     501    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     502    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     503    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     504    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     505    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     506    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     507    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     508    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     509    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     510    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     511    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     512    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     513    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     514    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     515    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     516    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     517    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     518    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     519    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     520    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     521    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     522    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     523    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
     524    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     525    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     526    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     527    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     528    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     529    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     530    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     531    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     532    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     533    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     534    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     535    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     536    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     537    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     538    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     539    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     540    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     541    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     542    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     543    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     544    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     545    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     546    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     547    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     548    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     549    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     550    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     551    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     552    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     553    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     554    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     555    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     556    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     557    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     558    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     559    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     560    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     561    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     562    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     563    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     564    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     565    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     566    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     567    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     568    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     569    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     570    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     571    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     572    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     573    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     574    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     575    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     576    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     577    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     578    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     579    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     580    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     581    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     582    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     583    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     584    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     585    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     586    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     587    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf},
     588    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     589    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     590    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     591    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
     592    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     593    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     594    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     595    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     596    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     597    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     598    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     599    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     600    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     601    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     602    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     603    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     604    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     605    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     606    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE ,icalrestriction_no_duration},
     607    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     608    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     609    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     610    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     611    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     612    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     613    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     614    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     615    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     616    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     617    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     618    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     619    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     620    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
     621    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     622    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     623    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     624    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     625    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     626    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     627    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     628    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     629    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     630    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     631    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     632    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     633    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     634    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     635    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     636    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     637    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     638    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     639    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     640    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     641    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     642    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     643    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     644    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     645    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     646    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     647    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     648    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     649    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     650    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     651    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     652    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     653    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     654    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     655    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     656    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     657    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     658    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     659    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     660    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     661    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     662    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     663    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     664    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     665    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     666    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     667    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     668    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     669    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     670    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     671    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     672    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     673    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     674    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     675    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     676    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     677    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     678    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     679    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     680    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     681    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     682    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     683    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     684    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     685    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     686    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     687    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     688    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_tent_conf_cancel},
     689    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     690    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     691    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     692    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     693    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     694    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     695    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     696    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     697    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     698    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     699    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     700    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     701    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     702    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     703    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     704    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     705    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     706    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     707    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     708    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     709    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     710    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     711    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     712    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     713    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     714    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     715    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     716    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     717    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     718    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     719    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     720    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     721    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     722    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     723    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     724    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     725    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     726    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     727    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     728    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
     729    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     730    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     731    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     732    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     733    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     734    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     735    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     736    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     737    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     738    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     739    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     740    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
     741    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     742    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     743    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     744    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     745    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     746    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     747    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     748    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     749    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     750    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     751    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     752    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     753    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     754    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONE,0},
     755    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     756    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     757    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     758    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     759    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     760    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     761    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     762    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     763    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     764    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     765    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     766    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     767    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     768    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     769    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     770    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     771    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     772    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     773    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     774    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     775    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     776    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     777    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     778    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     779    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     780    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     781    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     782    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     783    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     784    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     785    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     786    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     787    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     788    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     789    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     790    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     791    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     792    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     793    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     794    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     795    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     796    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     797    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     798    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     799    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     800    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     801    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     802    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     803    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     804    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     805    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     806    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     807    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     808    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     809    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     810    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     811    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     812    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     813    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     814    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     815    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     816    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     817    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     818    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     819    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     820    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     821    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     822    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     823    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     824    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     825    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     826    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     827    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
     828    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     829    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     830    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     831    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     832    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     833    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     834    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     835    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     836    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     837    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     838    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     839    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     840    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     841    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     842    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     843    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     844    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     845    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     846    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     847    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     848    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     849    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     850    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     851    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     852    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     853    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     854    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     855    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     856    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     857    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     858    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     859    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     860    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     861    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     862    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     863    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     864    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     865    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     866    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     867    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     868    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     869    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     870    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     871    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     872    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     873    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     874    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     875    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     876    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     877    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     878    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     879    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     880    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     881    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     882    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     883    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     884    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     885    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     886    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     887    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     888    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     889    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     890    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     891    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     892    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
     893    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     894    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     895    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,icalrestriction_must_be_recurring},
     896    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     897    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     898    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     899    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     900    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     901    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     902    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     903    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     904    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     905    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     906    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     907    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     908    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     909    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     910    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     911    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     912    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     913    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     914    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     915    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     916    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     917    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     918    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     919    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     920    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     921    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     922    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     923    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     924    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     925    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_canceled_no_attendee},
     926    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     927    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     928    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     929    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     930    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     931    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     932    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     933    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     934    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     935    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     936    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     937    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     938    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     939    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     940    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     941    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     942    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     943    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     944    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     945    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     946    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     947    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     948    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     949    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     950    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     951    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     952    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     953    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     954    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     955    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     956    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     957    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     958    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     959    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     960    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     961    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     962    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     963    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     964    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     965    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     966    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     967    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     968    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     969    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     970    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     971    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     972    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     973    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     974    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     975    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     976    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     977    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     978    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     979    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     980    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     981    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     982    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     983    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     984    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     985    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     986    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     987    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     988    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     989    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     990    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     991    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_comp_need_process},
     992    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     993    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     994    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     995    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     996    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     997    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     998    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     999    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1000    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1001    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     1002    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1003    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1004    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1005    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1006    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1007    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1008    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1009    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1010    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1011    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1012    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1013    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1014    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1015    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1016    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1017    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1018    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1019    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1020    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1021    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1022    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1023    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1024    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1025    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1026    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1027    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1028    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1029    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1030    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1031    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1032    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1033    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     1034    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1035    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1036    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1037    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1038    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1039    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1040    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1041    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1042    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1043    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1044    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1045    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1046    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_may_be_draft_final_canceled},
     1047    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1048    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1049    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1050    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1051    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1052    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1053    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1054    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1055    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1056    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1057    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1058    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     1059    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1060    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1061    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1062    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1063    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1064    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1065    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1066    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1067    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1068    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1069    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1070    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1071    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1072    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1073    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1074    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1075    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1076    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1077    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1078    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1079    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1080    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1081    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS ,0},
     1082    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1083    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1084    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1085    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1086    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1087    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1088    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1089    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1090    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1091    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1092    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1093    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1094    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1095    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_cancel_if_present},
     1096    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1097    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1098    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1099    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1100    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1101    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1102    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1103    {ICAL_METHOD_PUBLISH,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1104    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1105    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1106    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1107    {ICAL_METHOD_REQUEST,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1108    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1109    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1110    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1111    {ICAL_METHOD_REPLY,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1112    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1113    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1114    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1115    {ICAL_METHOD_ADD,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1116    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1117    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1118    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1119    {ICAL_METHOD_CANCEL,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1120    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1121    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1122    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1123    {ICAL_METHOD_REFRESH,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1124    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1125    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1126    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1127    {ICAL_METHOD_COUNTER,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1128    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1129    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1130    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1131    {ICAL_METHOD_DECLINECOUNTER,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1132    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_ALLOWCONFLICT_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1133    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_CALMASTER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1134    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_OWNER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1135    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1136    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1137    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTCHARSET_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1138    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTLOCALE_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1139    {ICAL_METHOD_NONE,ICAL_VAGENDA_COMPONENT,ICAL_DEFAULTTZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1140    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1141    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1142    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1143    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1144    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1145    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1146    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1147    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1148    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1149    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1150    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1151    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1152    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1153    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1154    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1155    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1156    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1157    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1158    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1159    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1160    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1161    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1162    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1163    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1164    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1165    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1166    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1167    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1168    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1169    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1170    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1171    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1172    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1173    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1174    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1175    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1176    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1177    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1178    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1179    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1180    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1181    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1182    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1183    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1184    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1185    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1186    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1187    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1188    {ICAL_METHOD_NONE,ICAL_VCALENDAR_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1189    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1190    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1191    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1192    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1193    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1194    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1195    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1196    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1197    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1198    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1199    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1200    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_duration},
     1201    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1202    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1203    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1204    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,icalrestriction_no_dtend},
     1205    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1206    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1207    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1208    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1209    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1210    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1211    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1212    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1213    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1214    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1215    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1216    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1217    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1218    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1219    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1220    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1221    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1222    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1223    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1224    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1225    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1226    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1227    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1228    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1229    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1230    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1231    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1232    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1233    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1234    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1235    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1236    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1237    {ICAL_METHOD_NONE,ICAL_VEVENT_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1238    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1239    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1240    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1241    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1242    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1243    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1244    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1245    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1246    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1247    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1248    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1249    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1250    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1251    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1252    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
     1253    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
     1254    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1255    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1256    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1257    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1258    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1259    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1260    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1261    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1262    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1263    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1264    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1265    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1266    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1267    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1268    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1269    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1270    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1271    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1272    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1273    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1274    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1275    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1276    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1277    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1278    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1279    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1280    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1281    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1282    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1283    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1284    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1285    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1286    {ICAL_METHOD_NONE,ICAL_VTODO_COMPONENT,ICAL_RELCALID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1287    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1288    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1289    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1290    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1291    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1292    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1293    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1294    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1295    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1296    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1297    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1298    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1299    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1300    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1301    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
     1302    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEEXCLUSIVE,0},
     1303    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1304    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1305    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1306    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1307    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1308    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1309    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1310    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1311    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1312    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1313    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1314    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1315    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_be_recurring},
     1316    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1317    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1318    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1319    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1320    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1321    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1322    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1323    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1324    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1325    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1326    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1327    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1328    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1329    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1330    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1331    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1332    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1333    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1334    {ICAL_METHOD_NONE,ICAL_VJOURNAL_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1335    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1336    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1337    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1338    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1339    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1340    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1341    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1342    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1343    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1344    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1345    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1346    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1347    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1348    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1349    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1350    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1351    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1352    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1353    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1354    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1355    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1356    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1357    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1358    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1359    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1360    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1361    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1362    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1363    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1364    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1365    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1366    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1367    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1368    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1369    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1370    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1371    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1372    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1373    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1374    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1375    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1376    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1377    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1378    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1379    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1380    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1381    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1382    {ICAL_METHOD_NONE,ICAL_VFREEBUSY_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1383    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1384    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1385    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1386    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1387    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1388    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1389    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1390    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1391    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1392    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1393    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1394    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1395    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1396    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1397    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1398    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1399    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1400    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1401    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1402    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1403    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1404    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1405    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1406    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1407    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1408    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1409    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1410    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1411    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1412    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1413    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1414    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1415    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1416    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1417    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1418    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1419    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1420    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1421    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1422    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1423    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1424    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1425    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1426    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1427    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1428    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1429    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1430    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1431    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1432    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1433    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1434    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1435    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1436    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1437    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1438    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1439    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1440    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1441    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1442    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1443    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1444    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1445    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1446    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1447    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1448    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1449    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1450    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1451    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1452    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1453    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1454    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1455    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1456    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1457    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1458    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1459    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1460    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1461    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1462    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1463    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1464    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1465    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1466    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1467    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1468    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1469    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1470    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1471    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1472    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1473    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1474    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1475    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1476    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1477    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1478    {ICAL_METHOD_NONE,ICAL_XSTANDARD_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1479    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1480    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1481    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1482    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1483    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1484    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1485    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1486    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1487    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1488    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1489    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1490    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1491    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1492    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1493    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1494    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1495    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1496    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1497    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1498    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1499    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1500    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1501    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1502    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1503    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1504    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1505    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1506    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1507    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1508    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1509    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1510    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1511    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1512    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1513    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1514    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1515    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1516    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1517    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1518    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1519    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1520    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1521    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1522    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1523    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1524    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1525    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1526    {ICAL_METHOD_NONE,ICAL_XDAYLIGHT_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1527    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1528    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1529    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1530    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1531    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1532    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1533    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1534    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1535    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1536    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1537    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1538    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1539    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1540    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1541    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1542    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
     1543    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
     1544    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1545    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1546    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1547    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1548    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1549    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1550    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1551    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1552    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1553    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1554    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1555    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1556    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1557    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1558    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1559    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1560    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1561    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1562    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1563    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1564    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1565    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1566    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1567    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1568    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1569    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1570    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1571    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1572    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1573    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1574    {ICAL_METHOD_NONE,ICAL_XAUDIOALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1575    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1576    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1577    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1578    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1579    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1580    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1581    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1582    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1583    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1584    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1585    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1586    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1587    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1588    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1589    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1590    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
     1591    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
     1592    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1593    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1594    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1595    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1596    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1597    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1598    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1599    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1600    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1601    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1602    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1603    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1604    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1605    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1606    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1607    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1608    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1609    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1610    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1611    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1612    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1613    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1614    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1615    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1616    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1617    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1618    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1619    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1620    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1621    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1622    {ICAL_METHOD_NONE,ICAL_XDISPLAYALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1623    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,icalrestriction_must_be_email},
     1624    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1625    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ONEPLUS,0},
     1626    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1627    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1628    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1629    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1630    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1631    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1632    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1633    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1634    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1635    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1636    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1637    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1638    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
     1639    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
     1640    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1641    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1642    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1643    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1644    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1645    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1646    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1647    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1648    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1649    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1650    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1651    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1652    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1653    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1654    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1655    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1656    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1657    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1658    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1659    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1660    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1661    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1662    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1663    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1664    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1665    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1666    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1667    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1668    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1669    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1670    {ICAL_METHOD_NONE,ICAL_XEMAILALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1671    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ACTION_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1672    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTACH_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1673    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ATTENDEE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1674    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CALSCALE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1675    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CATEGORIES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1676    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CLASS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1677    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMMENT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1678    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_COMPLETED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1679    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CONTACT_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1680    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_CREATED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1681    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DESCRIPTION_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1682    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTEND_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1683    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTAMP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1684    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DTSTART_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1685    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DUE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1686    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_DURATION_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_repeat},
     1687    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REPEAT_PROPERTY,ICAL_RESTRICTION_ONEMUTUAL,icalrestriction_must_have_duration},
     1688    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1689    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_EXRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1690    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_FREEBUSY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1691    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_GEO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1692    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LASTMODIFIED_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1693    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_LOCATION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1694    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_METHOD_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1695    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_ORGANIZER_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1696    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PERCENTCOMPLETE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1697    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRIORITY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1698    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_PRODID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1699    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RDATE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1700    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RECURRENCEID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1701    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RELATEDTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1702    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_REQUESTSTATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1703    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RESOURCES_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1704    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_RRULE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1705    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SEQUENCE_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1706    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_STATUS_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1707    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_SUMMARY_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1708    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRANSP_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1709    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TRIGGER_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1710    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1711    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZNAME_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1712    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETFROM_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1713    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZOFFSETTO_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1714    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_TZURL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1715    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_UID_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1716    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_URL_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1717    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_VERSION_PROPERTY,ICAL_RESTRICTION_ZERO,0},
     1718    {ICAL_METHOD_NONE,ICAL_XPROCEDUREALARM_COMPONENT,ICAL_X_PROPERTY,ICAL_RESTRICTION_ZEROPLUS,0},
     1719    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_QUERY_PROPERTY,ICAL_RESTRICTION_ZEROORONE,0},
     1720    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_QUERYNAME_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1721    {ICAL_METHOD_NONE,ICAL_VQUERY_COMPONENT,ICAL_EXPAND_PROPERTY,ICAL_RESTRICTION_ONE,0},
     1722    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE}
     1723};
     1724static const icalrestriction_component_record icalrestriction_component_records[] = {
     1725    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1726    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1727    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1728    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1729    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
     1730    {ICAL_METHOD_PUBLISH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1731    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1732    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
     1733    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1734    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1735    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1736    {ICAL_METHOD_REQUEST,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1737    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,icalrestriction_must_if_tz_ref},
     1738    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1739    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1740    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1741    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1742    {ICAL_METHOD_REPLY,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1743    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1744    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
     1745    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1746    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1747    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1748    {ICAL_METHOD_ADD,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1749    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
     1750    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1751    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1752    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1753    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1754    {ICAL_METHOD_CANCEL,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1755    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1756    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1757    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1758    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1759    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
     1760    {ICAL_METHOD_REFRESH,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1761    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1762    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,icalrestriction_must_if_tz_ref},
     1763    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1764    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1765    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1766    {ICAL_METHOD_COUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1767    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1768    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1769    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1770    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1771    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
     1772    {ICAL_METHOD_DECLINECOUNTER,ICAL_VEVENT_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1773    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1774    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1775    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1776    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1777    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,icalrestriction_must_if_tz_ref},
     1778    {ICAL_METHOD_PUBLISH,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1779    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1780    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1781    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1782    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1783    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1784    {ICAL_METHOD_REQUEST,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1785    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1786    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1787    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1788    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1789    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1790    {ICAL_METHOD_REPLY,ICAL_VFREEBUSY_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1791    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1792    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1793    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1794    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1795    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1796    {ICAL_METHOD_PUBLISH,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1797    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1798    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1799    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1800    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1801    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1802    {ICAL_METHOD_REQUEST,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1803    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
     1804    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1805    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1806    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1807    {ICAL_METHOD_REPLY,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1808    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1809    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1810    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1811    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1812    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VJOURNAL_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1813    {ICAL_METHOD_ADD,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1814    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
     1815    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1816    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1817    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1818    {ICAL_METHOD_CANCEL,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1819    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1820    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1821    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1822    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1823    {ICAL_METHOD_REFRESH,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1824    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1825    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
     1826    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1827    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1828    {ICAL_METHOD_COUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1829    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1830    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1831    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1832    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1833    {ICAL_METHOD_DECLINECOUNTER,ICAL_VTODO_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1834    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1835    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1836    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1837    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1838    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1839    {ICAL_METHOD_PUBLISH,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1840    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1841    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROORONE,0},
     1842    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1843    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1844    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1845    {ICAL_METHOD_ADD,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1846    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTIMEZONE_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1847    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_X_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1848    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VALARM_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1849    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VEVENT_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1850    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VFREEBUSY_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1851    {ICAL_METHOD_CANCEL,ICAL_VJOURNAL_COMPONENT,ICAL_VTODO_COMPONENT,ICAL_RESTRICTION_ZERO,0},
     1852    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_XSTANDARD_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1853    {ICAL_METHOD_NONE,ICAL_VTIMEZONE_COMPONENT,ICAL_XDAYLIGHT_COMPONENT,ICAL_RESTRICTION_ZEROPLUS,0},
     1854    {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE}
     1855};
     1856
     1857static const icalrestriction_property_record*
     1858icalrestriction_get_property_restriction(icalproperty_method method,
     1859                                         icalcomponent_kind component,
     1860                                         icalproperty_kind property)
     1861{
     1862    int i;
     1863
     1864    for(i = 0;
     1865        icalrestriction_property_records[i].restriction != ICAL_RESTRICTION_NONE;
     1866        i++){
     1867
     1868        if (method == icalrestriction_property_records[i].method &&
     1869            component == icalrestriction_property_records[i].component &&
     1870            property ==  icalrestriction_property_records[i].property ){
     1871            return  &icalrestriction_property_records[i];
     1872        }
     1873    }
     1874       
     1875    return &null_prop_record;
     1876}
     1877
     1878
     1879static const icalrestriction_component_record*
     1880icalrestriction_get_component_restriction(icalproperty_method method,
     1881                                          icalcomponent_kind component,
     1882                                          icalcomponent_kind subcomponent)
     1883{
     1884
     1885    int i;
     1886
     1887    for(i = 0;
     1888        icalrestriction_component_records[i].restriction != ICAL_RESTRICTION_NONE;
     1889        i++){
     1890
     1891        if (method == icalrestriction_component_records[i].method &&
     1892            component == icalrestriction_component_records[i].component &&
     1893            subcomponent ==  icalrestriction_component_records[i].subcomponent ){
     1894            return  &icalrestriction_component_records[i];
     1895        }
     1896    }
     1897       
     1898    return &null_comp_record;
     1899}
Note: See TracBrowser for help on using the repository browser.