icalformatimpl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KCAL_ICALFORMATIMPL_H
00022 #define KCAL_ICALFORMATIMPL_H
00023
00024 #include <qstring.h>
00025 #include <qdict.h>
00026
00027 #include "scheduler.h"
00028 #include "freebusy.h"
00029
00030 extern "C" {
00031 #include <ical.h>
00032 #include <icalss.h>
00033 }
00034
00035 namespace KCal {
00036
00037 class Compat;
00038
00044 class ICalFormatImpl
00045 {
00046 public:
00048 ICalFormatImpl( ICalFormat *parent );
00049 virtual ~ICalFormatImpl();
00050
00051 bool populate( Calendar *, icalcomponent *fs);
00052
00053 icalcomponent *writeIncidence(Incidence *incidence);
00054 icalcomponent *writeTodo(Todo *todo);
00055 icalcomponent *writeEvent(Event *event);
00056 icalcomponent *writeFreeBusy(FreeBusy *freebusy,
00057 Scheduler::Method method);
00058 icalcomponent *writeJournal(Journal *journal);
00059 void writeIncidence(icalcomponent *parent,Incidence *incidence);
00060 icalproperty *writeAttendee(Attendee *attendee);
00061 icalproperty *writeOrganizer( const Person &organizer );
00062 icalproperty *writeAttachment(Attachment *attach);
00063 icalproperty *writeRecurrenceRule(Recurrence *);
00064 icalproperty *writeAlarm(Alarm *alarm);
00065
00066 QString extractErrorProperty(icalcomponent *);
00067 Todo *readTodo(icalcomponent *vtodo);
00068 Event *readEvent(icalcomponent *vevent);
00069 FreeBusy *readFreeBusy(icalcomponent *vfreebusy);
00070 Journal *readJournal(icalcomponent *vjournal);
00071 Attendee *readAttendee(icalproperty *attendee);
00072 Person readOrganizer( icalproperty *organizer );
00073 Attachment *readAttachment(icalproperty *attach);
00074 void readIncidence(icalcomponent *parent,Incidence *incidence);
00075 void readRecurrenceRule(icalproperty *rrule,Incidence *event);
00076 void readRecurrence( const struct icalrecurrencetype &r, Recurrence* recur );
00077 void readAlarm(icalcomponent *alarm,Incidence *incidence);
00079 const QString &loadedProductId() { return mLoadedProductId; }
00080
00081 icaltimetype writeICalDate(const QDate &);
00082 QDate readICalDate(icaltimetype);
00083 icaltimetype writeICalDateTime(const QDateTime &);
00084 QDateTime readICalDateTime(icaltimetype);
00085 icaldurationtype writeICalDuration(int seconds);
00086 int readICalDuration(icaldurationtype);
00087 icalcomponent *createCalendarComponent(Calendar * = 0);
00088 icalcomponent *createScheduleComponent(IncidenceBase *,Scheduler::Method);
00089
00090 private:
00091 void writeIncidenceBase(icalcomponent *parent,IncidenceBase *);
00092 void readIncidenceBase(icalcomponent *parent,IncidenceBase *);
00093 void writeCustomProperties(icalcomponent *parent,CustomProperties *);
00094 void readCustomProperties(icalcomponent *parent,CustomProperties *);
00095 void dumpIcalRecurrence(icalrecurrencetype);
00096 void readTimezone(icalcomponent *vtimezone);
00097 void readTzidParameter( icalcomponent *parent, icaltimetype &t );
00098
00099 ICalFormat *mParent;
00100 Calendar *mCalendar;
00101 QDict<class Timezone> mTimezones;
00102
00103 QString mLoadedProductId;
00104 int mCalendarVersion;
00105
00106 Event::List mEventsRelate;
00107 Todo::List mTodosRelate;
00108
00109 static const int mSecondsPerWeek;
00110 static const int mSecondsPerDay;
00111 static const int mSecondsPerHour;
00112 static const int mSecondsPerMinute;
00113
00114 Compat *mCompat;
00115
00116 class Private;
00117 Private *d;
00118 };
00119
00120 }
00121
00122 #endif
This file is part of the documentation for libkcal Library Version 3.3.2.