1 #include "CalendarTimezone.h"
5 void CalendarTimezoneObject::SaveObjectData(string *SaveData){
8 string DataLineProcessed = "";
10 *SaveData += "BEGIN:VTIMEZONE\n";
14 if (TimeZoneData.size() > 0){
16 if (TimeZoneDataTokens.size() > 0){
19 DataLine += TimeZoneDataTokens;
28 DataLine += TimeZoneData;
31 DataLineProcessed = OutputText(&DataLine);
33 *SaveData += DataLineProcessed;
36 DataLineProcessed.clear();
40 // Process the LAST-MODIFIED value.
42 if (LastModifiedData.size() > 0){
44 if (LastModifiedTokens.size() > 0){
46 DataLine += "LAST-MODIFIED;";
47 DataLine += LastModifiedTokens;
51 DataLine += "LAST-MODIFIED";
56 DataLine += LastModifiedData;
59 DataLineProcessed = OutputText(&DataLine);
61 *SaveData += DataLineProcessed;
64 DataLineProcessed.clear();
68 // Process the TZURL value.
70 if (TimeZoneURLData.size() > 0){
72 if (TimeZoneURLTokens.size() > 0){
75 DataLine += TimeZoneURLTokens;
84 DataLine += TimeZoneURLData;
87 DataLineProcessed = OutputText(&DataLine);
89 *SaveData += DataLineProcessed;
92 DataLineProcessed.clear();
96 // Process Standard timezones.
98 if (TimezoneStandardCollection.size() > 0){
100 for (int TimezoneStandardSeek = 0; TimezoneStandardSeek < TimezoneStandardCollection.size();
101 TimezoneStandardSeek++){
103 *SaveData += "BEGIN:STANDARD\n";
105 // Process the DTSTART value.
107 if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData.size() > 0){
109 if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens.size() > 0){
111 DataLine += "DTSTART;";
112 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens;
116 DataLine += "DTSTART";
121 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData;
124 DataLineProcessed = OutputText(&DataLine);
126 *SaveData += DataLineProcessed;
129 DataLineProcessed.clear();
133 // Process the TZOFFSETFROM value.
135 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData.size() > 0){
137 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens.size() > 0){
139 DataLine += "TZOFFSETFROM;";
140 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens;
144 DataLine += "TZOFFSETFROM";
149 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData;
152 DataLineProcessed = OutputText(&DataLine);
154 *SaveData += DataLineProcessed;
157 DataLineProcessed.clear();
161 // Process the TZOFFSETTO value.
163 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData.size() > 0){
165 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens.size() > 0){
167 DataLine += "TZOFFSETTO;";
168 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens;
172 DataLine += "TZOFFSETTO";
177 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData;
180 DataLineProcessed = OutputText(&DataLine);
182 *SaveData += DataLineProcessed;
185 DataLineProcessed.clear();
189 // Process the RRULE value.
191 if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData.size() > 0){
193 if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens.size() > 0){
195 DataLine += "RRULE;";
196 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens;
205 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData;
208 DataLineProcessed = OutputText(&DataLine);
210 *SaveData += DataLineProcessed;
213 DataLineProcessed.clear();
217 *SaveData += "END:STANDARD\n";
223 // Process Daylight timezones.
225 if (TimezoneDaylightCollection.size() > 0){
227 for (int TimezoneDaylightSeek = 0; TimezoneDaylightSeek < TimezoneDaylightCollection.size();
228 TimezoneDaylightSeek++){
230 *SaveData += "BEGIN:DAYLIGHT\n";
232 // Process the DTSTART value.
234 if (TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData.size() > 0){
236 if (TimezoneStandardCollection[TimezoneDaylightSeek].DateTimeStartTokens.size() > 0){
238 DataLine += "DTSTART;";
239 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartTokens;
243 DataLine += "DTSTART";
248 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData;
251 DataLineProcessed = OutputText(&DataLine);
253 *SaveData += DataLineProcessed;
256 DataLineProcessed.clear();
260 // Process the TZOFFSETFROM value.
262 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData.size() > 0){
264 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens.size() > 0){
266 DataLine += "TZOFFSETFROM;";
267 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens;
271 DataLine += "TZOFFSETFROM";
276 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData;
279 DataLineProcessed = OutputText(&DataLine);
281 *SaveData += DataLineProcessed;
284 DataLineProcessed.clear();
288 // Process the TZOFFSETTO value.
290 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData.size() > 0){
292 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens.size() > 0){
294 DataLine += "TZOFFSETTO;";
295 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens;
299 DataLine += "TZOFFSETTO";
304 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData;
307 DataLineProcessed = OutputText(&DataLine);
309 *SaveData += DataLineProcessed;
312 DataLineProcessed.clear();
316 // Process the RRULE value.
318 if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData.size() > 0){
320 if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens.size() > 0){
322 DataLine += "RRULE;";
323 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens;
332 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData;
335 DataLineProcessed = OutputText(&DataLine);
337 *SaveData += DataLineProcessed;
340 DataLineProcessed.clear();
344 *SaveData += "END:DAYLIGHT\n";
350 *SaveData += "END:VTIMEZONE\n";