diff options
Diffstat (limited to 'libical/src/libical/icalenums.c')
-rw-r--r-- | libical/src/libical/icalenums.c | 547 |
1 files changed, 547 insertions, 0 deletions
diff --git a/libical/src/libical/icalenums.c b/libical/src/libical/icalenums.c new file mode 100644 index 0000000000..70931d03d0 --- /dev/null +++ b/libical/src/libical/icalenums.c @@ -0,0 +1,547 @@ +/* -*- Mode: C -*- */ +/*====================================================================== + FILE: icalenum.c + CREATOR: eric 29 April 1999 + + $Id$ + + + (C) COPYRIGHT 1999 Eric Busboom + http://www.softwarestudio.org + + The contents of this file are subject to the Mozilla Public License + Version 1.0 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and + limitations under the License. + + The original author is Eric Busboom + The original code is icalenum.c + + ======================================================================*/ + +#include "icalenums.h" + +struct icalproperty_kind_map { + icalproperty_kind kind; + char name[20]; +}; + +static struct icalproperty_kind_map property_map[] = +{ + { ICAL_ACTION_PROPERTY, "ACTION"}, + { ICAL_ATTACH_PROPERTY, "ATTACH"}, + { ICAL_ATTENDEE_PROPERTY, "ATTENDEE"}, + { ICAL_CALSCALE_PROPERTY, "CALSCALE"}, + { ICAL_CATEGORIES_PROPERTY, "CATEGORIES"}, + { ICAL_CLASS_PROPERTY, "CLASS"}, + { ICAL_COMMENT_PROPERTY, "COMMENT"}, + { ICAL_COMPLETED_PROPERTY, "COMPLETED"}, + { ICAL_CONTACT_PROPERTY, "CONTACT"}, + { ICAL_CREATED_PROPERTY, "CREATED"}, + { ICAL_DESCRIPTION_PROPERTY, "DESCRIPTION"}, + { ICAL_DTEND_PROPERTY, "DTEND"}, + { ICAL_DTSTAMP_PROPERTY, "DTSTAMP"}, + { ICAL_DTSTART_PROPERTY, "DTSTART"}, + { ICAL_DUE_PROPERTY, "DUE"}, + { ICAL_DURATION_PROPERTY, "DURATION"}, + { ICAL_EXDATE_PROPERTY, "EXDATE"}, + { ICAL_EXRULE_PROPERTY, "EXRULE"}, + { ICAL_FREEBUSY_PROPERTY, "FREEBUSY"}, + { ICAL_GEO_PROPERTY, "GEO"}, + { ICAL_LASTMODIFIED_PROPERTY, "LAST-MODIFIED"}, + { ICAL_LOCATION_PROPERTY, "LOCATION"}, + { ICAL_METHOD_PROPERTY, "METHOD"}, + { ICAL_ORGANIZER_PROPERTY, "ORGANIZER"}, + { ICAL_PERCENTCOMPLETE_PROPERTY, "PERCENT-COMPLETE"}, + { ICAL_PRIORITY_PROPERTY, "PRIORITY"}, + { ICAL_PRODID_PROPERTY, "PRODID"}, + { ICAL_RDATE_PROPERTY, "RDATE"}, + { ICAL_RECURRENCEID_PROPERTY, "RECURRENCE-ID"}, + { ICAL_RELATEDTO_PROPERTY, "RELATED-TO"}, + { ICAL_REPEAT_PROPERTY, "REPEAT"}, + { ICAL_REQUESTSTATUS_PROPERTY, "REQUEST-STATUS"}, + { ICAL_RESOURCES_PROPERTY, "RESOURCES"}, + { ICAL_RRULE_PROPERTY, "RRULE"}, + { ICAL_SEQUENCE_PROPERTY, "SEQUENCE"}, + { ICAL_STATUS_PROPERTY, "STATUS"}, + { ICAL_SUMMARY_PROPERTY, "SUMMARY"}, + { ICAL_TRANSP_PROPERTY, "TRANSP"}, + { ICAL_TRIGGER_PROPERTY, "TRIGGER"}, + { ICAL_TZID_PROPERTY, "TZID"}, + { ICAL_TZNAME_PROPERTY, "TZNAME"}, + { ICAL_TZOFFSETFROM_PROPERTY, "TZOFFSETFROM"}, + { ICAL_TZOFFSETTO_PROPERTY, "TZOFFSETTO"}, + { ICAL_TZURL_PROPERTY, "TZURL"}, + { ICAL_UID_PROPERTY, "UID"}, + { ICAL_URL_PROPERTY, "URL"}, + { ICAL_VERSION_PROPERTY, "VERSION"}, + { ICAL_X_PROPERTY,"X_PROPERTY"}, + + /* CAP Object Properties */ + + { ICAL_SCOPE_PROPERTY, "SCOPE"}, + { ICAL_MAXRESULTS_PROPERTY, "MAXRESULTS"}, + { ICAL_MAXRESULTSSIZE_PROPERTY, "MAXRESULTSSIZE"}, + { ICAL_QUERY_PROPERTY, "QUERY" }, + { ICAL_QUERYNAME_PROPERTY, "QUERYNAME" }, + { ICAL_TARGET_PROPERTY, "TARGET"}, + + /* libical private properties */ + { ICAL_XLICERROR_PROPERTY,"X-LIC-ERROR"}, + { ICAL_XLICCLUSTERCOUNT_PROPERTY,"X-LIC-CLUSTERCOUNT"}, + + /* End of the list */ + { ICAL_NO_PROPERTY, ""} +}; + + +char* icalenum_property_kind_to_string(icalproperty_kind kind) +{ + int i; + + for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) { + if (property_map[i].kind == kind) { + return property_map[i].name; + } + } + + return 0; + +} + +icalproperty_kind icalenum_string_to_property_kind(char* string) +{ + int i; + + if (string ==0 ) { + return ICAL_NO_PROPERTY; + } + + for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) { + if (strcmp(property_map[i].name, string) == 0) { + return property_map[i].kind; + } + } + + return ICAL_NO_PROPERTY; +} + + + + +struct icalparameter_kind_map { + icalparameter_kind kind; + char name[20]; +}; + +static struct icalparameter_kind_map parameter_map[] = +{ + { ICAL_ALTREP_PARAMETER, "ALTREP"}, + { ICAL_CN_PARAMETER, "CN"}, + { ICAL_CUTYPE_PARAMETER, "CUTYPE"}, + { ICAL_DELEGATEDFROM_PARAMETER, "DELEGATED-FROM"}, + { ICAL_DELEGATEDTO_PARAMETER, "DELEGATED-TO"}, + { ICAL_DIR_PARAMETER, "DIR"}, + { ICAL_ENCODING_PARAMETER, "ENCODING"}, + { ICAL_FBTYPE_PARAMETER, "FBTYPE"}, + { ICAL_FMTTYPE_PARAMETER, "FMTTYPE"}, + { ICAL_LANGUAGE_PARAMETER, "LANGUAGE"}, + { ICAL_MEMBER_PARAMETER, "MEMBER"}, + { ICAL_PARTSTAT_PARAMETER, "PARTSTAT"}, + { ICAL_RANGE_PARAMETER, "RANGE"}, + { ICAL_RELATED_PARAMETER, "RELATED"}, + { ICAL_RELTYPE_PARAMETER, "RELTYPE"}, + { ICAL_ROLE_PARAMETER, "ROLE"}, + { ICAL_RSVP_PARAMETER, "RSVP"}, + { ICAL_SENTBY_PARAMETER, "SENT-BY"}, + { ICAL_TZID_PARAMETER, "TZID"}, + { ICAL_VALUE_PARAMETER, "VALUE"}, + + /* CAP parameters */ + + /* libical private parameters */ + { ICAL_XLICERRORTYPE_PARAMETER, "X-LIC-ERRORTYPE"}, + { ICAL_XLICCOMPARETYPE_PARAMETER, "X-LIC-COMPARETYPE"}, + + /* End of list */ + { ICAL_NO_PARAMETER, ""} +}; + +char* icalenum_parameter_kind_to_string(icalparameter_kind kind) +{ + int i; + + for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) { + if (parameter_map[i].kind == kind) { + return parameter_map[i].name; + } + } + + return 0; + +} + +icalparameter_kind icalenum_string_to_parameter_kind(char* string) +{ + int i; + + if (string ==0 ) { + return ICAL_NO_PARAMETER; + } + + for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) { + if (strcmp(parameter_map[i].name, string) == 0) { + return parameter_map[i].kind; + } + } + + return ICAL_NO_PARAMETER; +} + +struct icalvalue_kind_map { + icalvalue_kind kind; + char name[20]; +}; + +static struct icalvalue_kind_map value_map[] = +{ + { ICAL_BINARY_VALUE, "BINARY"}, + { ICAL_BOOLEAN_VALUE, "BOOLEAN"}, + { ICAL_CALADDRESS_VALUE, "CAL-ADDRESS"}, + { ICAL_DATE_VALUE, "DATE"}, + { ICAL_DATETIME_VALUE, "DATE-TIME"}, + { ICAL_DURATION_VALUE, "DURATION"}, + { ICAL_FLOAT_VALUE, "FLOAT"}, + { ICAL_INTEGER_VALUE, "INTEGER"}, + { ICAL_PERIOD_VALUE, "PERIOD"}, + { ICAL_RECUR_VALUE, "RECUR"}, + { ICAL_TEXT_VALUE, "TEXT"}, + { ICAL_TIME_VALUE, "TIME"}, + { ICAL_URI_VALUE, "URI"}, + { ICAL_UTCOFFSET_VALUE, "UTC-OFFSET"}, + { ICAL_GEO_VALUE, "FLOAT"}, /* Not an RFC2445 type */ + { ICAL_ATTACH_VALUE, "XATTACH"}, /* Not an RFC2445 type */ + { ICAL_DATETIMEDATE_VALUE, "XDATETIMEDATE"}, /* Not an RFC2445 type */ + { ICAL_DATETIMEPERIOD_VALUE, "XDATETIMEPERIOD"}, /* Not an RFC2445 type */ + { ICAL_QUERY_VALUE, "QUERY"}, + { ICAL_NO_VALUE, ""}, +}; + +char* icalenum_value_kind_to_string(icalvalue_kind kind) +{ + int i; + + for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) { + if (value_map[i].kind == kind) { + return value_map[i].name; + } + } + + return 0; + +} + +icalvalue_kind icalenum_value_kind_by_prop(icalproperty_kind kind) +{ + + return ICAL_NO_VALUE; +} + + +struct icalcomponent_kind_map { + icalcomponent_kind kind; + char name[20]; +}; + + + +static struct icalcomponent_kind_map component_map[] = +{ + { ICAL_VEVENT_COMPONENT, "VEVENT" }, + { ICAL_VTODO_COMPONENT, "VTODO" }, + { ICAL_VJOURNAL_COMPONENT, "VJOURNAL" }, + { ICAL_VCALENDAR_COMPONENT, "VCALENDAR" }, + { ICAL_VFREEBUSY_COMPONENT, "VFREEBUSY" }, + { ICAL_VTIMEZONE_COMPONENT, "VTIMEZONE" }, + { ICAL_VALARM_COMPONENT, "VALARM" }, + { ICAL_XSTANDARD_COMPONENT, "STANDARD" }, /*These are part of RFC2445 */ + { ICAL_XDAYLIGHT_COMPONENT, "DAYLIGHT" }, /*but are not really components*/ + { ICAL_X_COMPONENT, "X" }, + { ICAL_VSCHEDULE_COMPONENT, "SCHEDULE" }, + + /* CAP components */ + { ICAL_VQUERY_COMPONENT, "VQUERY" }, + { ICAL_VCAR_COMPONENT, "VCAR" }, + { ICAL_VCOMMAND_COMPONENT, "VCOMMAND" }, + + /* libical private components */ + { ICAL_XLICINVALID_COMPONENT, "X-LIC-UNKNOWN" }, + { ICAL_XROOT_COMPONENT, "ROOT" }, + + /* End of list */ + { ICAL_NO_COMPONENT, "" }, +}; + +char* icalenum_component_kind_to_string(icalcomponent_kind kind) +{ + int i; + + for (i=0; component_map[i].kind != ICAL_NO_COMPONENT; i++) { + if (component_map[i].kind == kind) { + return component_map[i].name; + } + } + + return 0; + +} + +icalcomponent_kind icalenum_string_to_component_kind(char* string) +{ + int i; + + if (string ==0 ) { + return ICAL_NO_COMPONENT; + } + + for (i=0; component_map[i].kind != ICAL_NO_COMPONENT; i++) { + if (strcmp(component_map[i].name, string) == 0) { + return component_map[i].kind; + } + } + + return ICAL_NO_COMPONENT; +} + +struct icalproperty_kind_value_map { + icalproperty_kind prop; + icalvalue_kind value; +}; + +static struct icalproperty_kind_value_map propval_map[] = +{ + { ICAL_CALSCALE_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_METHOD_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_PRODID_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_VERSION_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_CATEGORIES_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_CLASS_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_COMMENT_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_DESCRIPTION_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_LOCATION_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_PERCENTCOMPLETE_PROPERTY, ICAL_INTEGER_VALUE }, + { ICAL_PRIORITY_PROPERTY, ICAL_INTEGER_VALUE }, + { ICAL_RESOURCES_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_STATUS_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_SUMMARY_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_COMPLETED_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_FREEBUSY_PROPERTY, ICAL_PERIOD_VALUE }, + { ICAL_TRANSP_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_TZNAME_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_TZOFFSETFROM_PROPERTY, ICAL_UTCOFFSET_VALUE }, + { ICAL_TZOFFSETTO_PROPERTY, ICAL_UTCOFFSET_VALUE }, + { ICAL_TZURL_PROPERTY, ICAL_URI_VALUE }, + { ICAL_TZID_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_ATTENDEE_PROPERTY, ICAL_CALADDRESS_VALUE }, + { ICAL_CONTACT_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_ORGANIZER_PROPERTY, ICAL_CALADDRESS_VALUE }, + { ICAL_RELATEDTO_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_URL_PROPERTY, ICAL_URI_VALUE }, + { ICAL_UID_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_EXRULE_PROPERTY, ICAL_RECUR_VALUE }, + { ICAL_RRULE_PROPERTY, ICAL_RECUR_VALUE }, + { ICAL_ACTION_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_REPEAT_PROPERTY, ICAL_INTEGER_VALUE }, + { ICAL_CREATED_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_DTSTAMP_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_LASTMODIFIED_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_SEQUENCE_PROPERTY, ICAL_INTEGER_VALUE }, + { ICAL_X_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_REQUESTSTATUS_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_ATTACH_PROPERTY, ICAL_URI_VALUE }, + { ICAL_GEO_PROPERTY, ICAL_GEO_VALUE }, + { ICAL_DTEND_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_DUE_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_DTSTART_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_RECURRENCEID_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_EXDATE_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_RDATE_PROPERTY, ICAL_DATETIME_VALUE }, + { ICAL_TRIGGER_PROPERTY, ICAL_DURATION_VALUE }, + { ICAL_DURATION_PROPERTY, ICAL_DURATION_VALUE }, + + /* CAP properties */ + { ICAL_SCOPE_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_MAXRESULTS_PROPERTY, ICAL_INTEGER_VALUE}, + { ICAL_MAXRESULTSSIZE_PROPERTY, ICAL_INTEGER_VALUE}, + { ICAL_QUERY_PROPERTY, ICAL_QUERY_VALUE }, + { ICAL_QUERYNAME_PROPERTY, ICAL_TEXT_VALUE }, + { ICAL_TARGET_PROPERTY, ICAL_CALADDRESS_VALUE }, + + + /* libical private properties */ + { ICAL_XLICERROR_PROPERTY,ICAL_TEXT_VALUE}, + { ICAL_XLICCLUSTERCOUNT_PROPERTY,ICAL_INTEGER_VALUE}, + + + /* End of list */ + { ICAL_NO_PROPERTY, ICAL_NO_PROPERTY} +}; + + +icalvalue_kind icalenum_property_kind_to_value_kind(icalproperty_kind kind) +{ + int i; + + for (i=0; propval_map[i].value != ICAL_NO_VALUE; i++) { + if ( propval_map[i].prop == kind ) { + return propval_map[i].value; + } + } + + return ICAL_NO_VALUE; +} + +struct {icalrecurrencetype_weekday wd; char * str; } +wd_map[] = { + {ICAL_SUNDAY_WEEKDAY,"SU"}, + {ICAL_MONDAY_WEEKDAY,"MO"}, + {ICAL_TUESDAY_WEEKDAY,"TU"}, + {ICAL_WEDNESDAY_WEEKDAY,"WE"}, + {ICAL_THURSDAY_WEEKDAY,"TH"}, + {ICAL_FRIDAY_WEEKDAY,"FR"}, + {ICAL_SATURDAY_WEEKDAY,"SA"}, + {ICAL_NO_WEEKDAY,0} +}; + +char* icalenum_weekday_to_string(icalrecurrencetype_weekday kind) +{ + int i; + + for (i=0; wd_map[i].wd != ICAL_NO_WEEKDAY; i++) { + if ( wd_map[i].wd == kind) { + return wd_map[i].str; + } + } + + return 0; +} + + +struct { + icalrecurrencetype_frequency kind; + char* str; +} freq_map[] = { + {ICAL_SECONDLY_RECURRENCE,"SECONDLY"}, + {ICAL_MINUTELY_RECURRENCE,"MINUTELY"}, + {ICAL_HOURLY_RECURRENCE,"HOURLY"}, + {ICAL_DAILY_RECURRENCE,"DAILY"}, + {ICAL_WEEKLY_RECURRENCE,"WEEKLY"}, + {ICAL_MONTHLY_RECURRENCE,"MONTHLY"}, + {ICAL_YEARLY_RECURRENCE,"YEARLY"}, + {ICAL_NO_RECURRENCE,0} +}; + +char* icalenum_recurrence_to_string(icalrecurrencetype_frequency kind) +{ + int i; + + for (i=0; freq_map[i].kind != ICAL_NO_RECURRENCE ; i++) { + if ( freq_map[i].kind == kind ) { + return freq_map[i].str; + } + } + return 0; +} + + +struct { + icalrecurrencetype_frequency kind; + int major; + int minor; + char* str; +} status_map[] = { + {ICAL_2_0_SUCCESS_STATUS, 2,0,"Success."}, + {ICAL_2_1_FALLBACK_STATUS, 2,1,"Success but fallback taken on one or more property values."}, + {ICAL_2_2_IGPROP_STATUS, 2,2,"Success, invalid property ignored."}, + {ICAL_2_3_IGPARAM_STATUS, 2,3,"Success, invalid property parameter ignored."}, + {ICAL_2_4_IGXPROP_STATUS, 2,4,"Success, unknown non-standard property ignored."}, + {ICAL_2_5_IGXPARAM_STATUS, 2,5,"Success, unknown non standard property value ignored."}, + {ICAL_2_6_IGCOMP_STATUS, 2,6,"Success, invalid calendar component ignored."}, + {ICAL_2_7_FORWARD_STATUS, 2,7,"Success, request forwarded to Calendar User."}, + {ICAL_2_8_ONEEVENT_STATUS, 2,8,"Success, repeating event ignored. Scheduled as a single component."}, + {ICAL_2_9_TRUNC_STATUS, 2,9,"Success, truncated end date time to date boundary."}, + {ICAL_2_10_ONETODO_STATUS, 2,10,"Success, repeating VTODO ignored. Scheduled as a single VTODO."}, + {ICAL_2_11_TRUNCRRULE_STATUS, 2,11,"Success, unbounded RRULE clipped at some finite number of instances "}, + {ICAL_3_0_INVPROPNAME_STATUS, 3,0,"Invalid property name."}, + {ICAL_3_1_INVPROPVAL_STATUS, 3,1,"Invalid property value."}, + {ICAL_3_2_INVPARAM_STATUS, 3,2,"Invalid property parameter."}, + {ICAL_3_3_INVPARAMVAL_STATUS, 3,3,"Invalid property parameter value."}, + {ICAL_3_4_INVCOMP_STATUS, 3,4,"Invalid calendar component sequence."}, + {ICAL_3_5_INVTIME_STATUS, 3,5,"Invalid date or time."}, + {ICAL_3_6_INVRULE_STATUS, 3,6,"Invalid rule."}, + {ICAL_3_7_INVCU_STATUS, 3,7,"Invalid Calendar User."}, + {ICAL_3_8_NOAUTH_STATUS, 3,8,"No authority."}, + {ICAL_3_9_BADVERSION_STATUS, 3,9,"Unsupported version."}, + {ICAL_3_10_TOOBIG_STATUS, 3,10,"Request entity too large."}, + {ICAL_3_11_MISSREQCOMP_STATUS, 3,11,"Required component or property missing."}, + {ICAL_3_12_UNKCOMP_STATUS, 3,12,"Unknown component or property found."}, + {ICAL_3_13_BADCOMP_STATUS, 3,13,"Unsupported component or property found"}, + {ICAL_3_14_NOCAP_STATUS, 3,14,"Unsupported capability."}, + {ICAL_4_0_BUSY_STATUS, 4,0,"Event conflict. Date/time is busy."}, + {ICAL_5_0_MAYBE_STATUS, 5,0,"Request MAY supported."}, + {ICAL_5_1_UNAVAIL_STATUS, 5,1,"Service unavailable."}, + {ICAL_5_2_NOSERVICE_STATUS, 5,2,"Invalid calendar service."}, + {ICAL_5_3_NOSCHED_STATUS, 5,3,"No scheduling support for user."} +}; + +struct {icalproperty_method method; char* str;} method_map[] = { + {ICAL_METHOD_PUBLISH,"PUBLISH"}, + {ICAL_METHOD_REQUEST,"REQUEST"}, + {ICAL_METHOD_REPLY,"REPLY"}, + {ICAL_METHOD_ADD,"ADD"}, + {ICAL_METHOD_CANCEL,"CANCEL"}, + {ICAL_METHOD_REFRESH,"REFRESH"}, + {ICAL_METHOD_COUNTER,"CPUNTER"}, + {ICAL_METHOD_DECLINECOUNTER,"DECLINECOUNTER"}, + /* CAP Methods */ + {ICAL_METHOD_CREATE,"CREATE"}, + {ICAL_METHOD_READ,"READ"}, + {ICAL_METHOD_RESPONSE,"RESPONSE"}, + {ICAL_METHOD_MOVE,"MOVE"}, + {ICAL_METHOD_MODIFY,"MODIFY"}, + {ICAL_METHOD_GENERATEUID,"GENERATEUID"}, + {ICAL_METHOD_DELETE,"DELETE"}, + {ICAL_METHOD_NONE,"NONE"} +}; + + +char* icalenum_method_to_string(icalproperty_method method) +{ + int i; + + for (i=0; method_map[i].method != ICAL_METHOD_NONE; i++) { + if ( method_map[i].method == method) { + return method_map[i].str; + } + } + + return 0; +} + +icalproperty_method icalenum_string_to_method(char* str) +{ + int i; + + for (i=0; method_map[i].method != ICAL_METHOD_NONE; i++) { + if ( strcmp(method_map[i].str, str) == 0) { + return method_map[i].method; + } + } + + return ICAL_METHOD_NONE; +} |