src/include/common/vocl/iCalendar/iCalConverter.h

00001 
00020 #ifndef INCL_VIRTUAL_CALENDAR_CONVERTER
00021 #define INCL_VIRTUAL_CALENDAR_CONVERTER
00022 
00024 #include "base/fscapi.h"
00025 #include "vocl/iCalendar/Calendar.h"
00026 #include "vocl/VConverter.h"
00027 
00028 class WString;
00029 
00030 #define EVENT_PROPERTIES_LIST TEXT("BEGIN,CLASS,CREATED,DESCRIPTION,DTSTART,GEO,LAST-MODIFIED,LOCATION,ORGANIZER,PRIORITY,") \
00031                                    TEXT("DTSTAMP,SEQUENCE,STATUS,SUMMARY,TRANSP,UID,URL,RECURRENCE-ID,DTEND,DURATION,ATTACH,ATTENDEE,") \
00032                                    TEXT("CATEGORIES,COMMENT,CONTACT,EXDATE,EXRULE,REQUEST-STATUS,RELATED,RESOURCES,RDATE,RRULE,END,GROUP")
00033    
00034 #define TODO_PROPERTIES_LIST  TEXT("BEGIN,CLASS,COMPLETED,CREATED,DESCRIPTION,DTSTAMP,DTSTART,GEO,LAST-MODIFIED,LOCATION,ORGANIZER,PERCENT-COMPLETE,") \
00035                                    TEXT("PRIORITY,RECURRENCE-ID,SEQUENCE,STATUS,SUMMARY,UID,URL,DUE,DURATION,ATTACH,ATTENDEE,") \
00036                                    TEXT("CATEGORIES,COMMENT,CONTACT,EXDATE,EXRULE,REQUEST-STATUS,RELATED,RESOURCES,RDATE,RRULE,END,GROUP")
00037 
00038 #define CLASS_PROPERTY_VALUE  TEXT("PUBLIC,PRIVATE,CONFIDENTIAL")
00039 
00040 #define COMMENT_PARAM_LIST      TEXT("ALTREP,LANGUAGE")
00041 #define DT_PARAM_LIST           TEXT("VALUE,TZID")
00042 #define ORGANIZER_PARAM_LIST    TEXT("CN,DIR,SENT-BY,LANGUAGE,ROLE")
00043 #define ATTACH_PARAM_LIST       TEXT("FMTTYPE,ENCODING,VALUE")
00044 #define ATTENDEE_PARAM_LIST     TEXT("CUTYPE,MEMBER,ROLE,PARTSTAT,RSVP,DELEGATED-TO,DELEGATED-FROM,SENT-BY,CN,DIR,LANGUAGE")
00045 #define RDATE_PARAM_LIST        TEXT("VALUE,DATE-TIME,DATE,PERIOD,TZID")
00046 #define RECRUL_ITEMS_LIST       TEXT("FREQ,UNTIL,COUNT,INTERVAL,BYSECOND,BYMINUTE,BYHOUR,BYDAY,BYMONTHDAY,BYYEARDAY,BYWEEKNO,BYMONTH,BYSETPOS,WKST")
00047 #define FREQUENCY_VALUES_LIST   TEXT("SECONDLY,MINUTELY,HOURLY,DAILY,WEEKLY,MONTHLY,YEARLY")
00048 
00049 #define ERROR_SUCCESS                0L
00050 #define ERROR_KEY_PROPERTY_MISSING   100L
00051 #define ERROR_ILLEGAL_VERSION_NUMBER 101L
00052 #define ERROR_ILLEGAL_PROPERTY_NAME  102L
00053 #define ERROR_UNSUPPORTED_ENCODING   103L
00054 #define ERROR_ILLEGAL_TYPE_PARAMETER 104L
00055 #define ERROR_ILLEGAL_PARAMETER      105L
00056 #define ERROR_INVALID_PROPERTY_VALUE 106L
00057 #define ERROR_PARSING_ERROR          200L
00058 #define ERROR_INVALID_EVENT_BLOCK    301L
00059 #define ERROR_INVALID_TODO_BLOCK     302L
00060 
00061 //#define isdigit(c) ((c) >= '0' && (c)<= '9') FIXME
00062 
00063 
00064 class iCalConverter { 
00065 private:
00066     WCHAR* iCalendar;
00067     Calendar* calendar; 
00068     bool validateEvent(Event*, WString& error, long* errorCode);
00069     bool validateTodo(ToDo*, WString& error, long* errorCode);
00070     bool validatePropery(VProperty*, WString& error, long* errorCode);
00071     Event* extractEvent(VObject* vo, WString& errorDescription, long* errorCode);
00072     ToDo* extractTask(VObject* vo, WString& errorDescription, long* errorCode);
00073     bool validateGeo(WCHAR* geo);
00074     bool validateDT(WCHAR* dt);
00075     bool validateDate(WCHAR* date);
00076     bool validateRecur(WCHAR* recur);
00077     void extractAlarm(VObject* vo);
00078 
00079 public:
00080     iCalConverter();
00081     ~iCalConverter();
00082     void setSource(WCHAR* inputICalendar);
00083     void setSource(Calendar& inputCalendar);
00084     void getICalendar(WCHAR* vCard);
00085     void getCalendar(Calendar** outputContact);
00086     bool convert(WString& error, long* errorCode);
00087 };
00089 #endif

Generated on Fri Apr 27 12:29:19 2007 for Funambol C++ Client Library by  doxygen 1.5.2