00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_WINEVENT
00037 #define INCL_WINEVENT
00038
00043 #include "vocl/WinItem.h"
00044 #include "vocl/WinRecurrence.h"
00045 #include "vocl/WinRecipient.h"
00046 #include "vocl/constants.h"
00047 #include "vocl/VObject.h"
00048
00049
00050 typedef list<wstring> exceptionList;
00051 typedef exceptionList::iterator exceptionsIterator;
00052 typedef list<WinRecipient> recipientList;
00053
00054 #define MAX_DAYLIGHT_PROPS 6 // Max 6 "DAYLIGHT" properties for infinite recurrences.
00055 #include "base/globalsdef.h"
00056
00057 BEGIN_NAMESPACE
00058
00059
00065 class WinEvent : public WinItem {
00066
00067 private:
00068
00070 wstring vCalendar;
00071
00073 WinRecurrence recPattern;
00074
00083 bool checkVCalendarTypeAndVersion(VObject* vo);
00084
00093 void addTimezone(VObject* vo);
00094
00101 bool parseTimezone(VObject* vo);
00102
00103
00104 protected:
00105
00107 exceptionList excludeDate;
00109 exceptionList includeDate;
00110
00112 recipientList recipients;
00113
00114
00122 TIME_ZONE_INFORMATION tzInfo;
00123
00125 bool useTimezone;
00126
00127
00128
00129
00130
00137 void getIntervalOfRecurrence(int* yearBegin, int*yearEnd);
00138
00139
00140 public:
00141
00143 WinEvent();
00144
00146 WinEvent(const wstring dataString);
00147
00149 ~WinEvent();
00150
00151
00159 virtual int parse(const wstring dataString);
00160
00167 virtual wstring& toString();
00168
00169
00171 virtual WinRecurrence* getRecPattern();
00172
00174 exceptionList* getExcludeDates();
00175
00177 exceptionList* getIncludeDates();
00178
00180 recipientList* getRecipients();
00181
00182
00187 const TIME_ZONE_INFORMATION* getTimezone();
00188
00190 void setTimezone(const TIME_ZONE_INFORMATION* tz);
00191
00193 bool hasTimezone();
00194
00195
00202 long getCRC();
00203 };
00204
00205
00206 END_NAMESPACE
00207
00210 #endif