Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added RRULE property for saving data from a CalendarTimezoneObject.
[xestiacalendar/.git] / source / objects / calendartimezone / CalendarTimezone-Save.cpp
1 #include "CalendarTimezone.h"
3 using namespace std;
5 void CalendarTimezoneObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VTIMEZONE\n";
11         
12         // Process the TZID.
13         
14         if (TimeZoneData.size() > 0){
15                 
16                 if (TimeZoneDataTokens.size() > 0){
17                 
18                         DataLine += "TZID;";
19                         DataLine += TimeZoneDataTokens;
20                         
21                 } else {
23                         DataLine += "TZID";
24                         
25                 }
27                 DataLine += ":";
28                 DataLine += TimeZoneData;
29                 DataLine += "\n";
30                 
31                 DataLineProcessed = OutputText(&DataLine);
32                 
33                 *SaveData += DataLineProcessed;
34                 
35                 DataLine.clear();
36                 DataLineProcessed.clear();
37                 
38         }
39         
40         // Process the LAST-MODIFIED value.
41         
42         if (LastModifiedData.size() > 0){
43                 
44                 if (LastModifiedTokens.size() > 0){
45                 
46                         DataLine += "LAST-MODIFIED;";
47                         DataLine += LastModifiedTokens;
48                         
49                 } else {
51                         DataLine += "LAST-MODIFIED";
52                         
53                 }
55                 DataLine += ":";
56                 DataLine += LastModifiedData;
57                 DataLine += "\n";
58                 
59                 DataLineProcessed = OutputText(&DataLine);
60                 
61                 *SaveData += DataLineProcessed;
62                 
63                 DataLine.clear();
64                 DataLineProcessed.clear();
65                 
66         }
67         
68         // Process the TZURL value.
69         
70         if (TimeZoneURLData.size() > 0){
71                 
72                 if (TimeZoneURLTokens.size() > 0){
73                 
74                         DataLine += "TZURL;";
75                         DataLine += TimeZoneURLTokens;
76                         
77                 } else {
79                         DataLine += "TZURL";
80                         
81                 }
83                 DataLine += ":";
84                 DataLine += TimeZoneURLData;
85                 DataLine += "\n";
86                 
87                 DataLineProcessed = OutputText(&DataLine);
88                 
89                 *SaveData += DataLineProcessed;
90                 
91                 DataLine.clear();
92                 DataLineProcessed.clear();
93                 
94         }
96         // Process Standard timezones.
97         
98         if (TimezoneStandardCollection.size() > 0){
99                 
100                 for (int TimezoneStandardSeek = 0; TimezoneStandardSeek < TimezoneStandardCollection.size();
101                         TimezoneStandardSeek++){
102                                 
103                         *SaveData += "BEGIN:STANDARD\n";
104                                 
105                         // Process the DTSTART value.
106         
107                         if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData.size() > 0){
108                 
109                                 if (TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens.size() > 0){
110                 
111                                         DataLine += "DTSTART;";
112                                         DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartTokens;
113                         
114                                 } else {
116                                         DataLine += "DTSTART";
117                         
118                                 }
120                                 DataLine += ":";
121                                 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].DateTimeStartData;
122                                 DataLine += "\n";
123                 
124                                 DataLineProcessed = OutputText(&DataLine);
125                 
126                                 *SaveData += DataLineProcessed;
127                 
128                                 DataLine.clear();
129                                 DataLineProcessed.clear();
130                 
131                         }
132                         
133                         // Process the TZOFFSETFROM value.
134         
135                         if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData.size() > 0){
136                 
137                                 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens.size() > 0){
138                 
139                                         DataLine += "TZOFFSETFROM;";
140                                         DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromTokens;
141                         
142                                 } else {
144                                         DataLine += "TZOFFSETFROM";
145                         
146                                 }
148                                 DataLine += ":";
149                                 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetFromData;
150                                 DataLine += "\n";
151                 
152                                 DataLineProcessed = OutputText(&DataLine);
153                 
154                                 *SaveData += DataLineProcessed;
155                 
156                                 DataLine.clear();
157                                 DataLineProcessed.clear();
158                 
159                         }
160                         
161                         // Process the TZOFFSETTO value.
162         
163                         if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData.size() > 0){
164                 
165                                 if (TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens.size() > 0){
166                 
167                                         DataLine += "TZOFFSETTO;";
168                                         DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToTokens;
169                         
170                                 } else {
172                                         DataLine += "TZOFFSETTO";
173                         
174                                 }
176                                 DataLine += ":";
177                                 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].TimeZoneOffsetToData;
178                                 DataLine += "\n";
179                 
180                                 DataLineProcessed = OutputText(&DataLine);
181                 
182                                 *SaveData += DataLineProcessed;
183                 
184                                 DataLine.clear();
185                                 DataLineProcessed.clear();
186                 
187                         }
188                         
189                         // Process the RRULE value.
190         
191                         if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData.size() > 0){
192                 
193                                 if (TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens.size() > 0){
194                 
195                                         DataLine += "RRULE;";
196                                         DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleDataTokens;
197                         
198                                 } else {
200                                         DataLine += "RRULE";
201                         
202                                 }
204                                 DataLine += ":";
205                                 DataLine += TimezoneStandardCollection[TimezoneStandardSeek].RecurranceRuleData;
206                                 DataLine += "\n";
207                 
208                                 DataLineProcessed = OutputText(&DataLine);
209                 
210                                 *SaveData += DataLineProcessed;
211                 
212                                 DataLine.clear();
213                                 DataLineProcessed.clear();
214                 
215                         }
216                                 
217                         *SaveData += "END:STANDARD\n";
218                                 
219                 }
220                 
221         }
222         
223         // Process Daylight timezones.
224         
225         if (TimezoneDaylightCollection.size() > 0){
227                 for (int TimezoneDaylightSeek = 0; TimezoneDaylightSeek < TimezoneDaylightCollection.size();
228                         TimezoneDaylightSeek++){
229                 
230                         *SaveData += "BEGIN:DAYLIGHT\n";
231                                 
232                         // Process the DTSTART value.
233         
234                         if (TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData.size() > 0){
235                 
236                                 if (TimezoneStandardCollection[TimezoneDaylightSeek].DateTimeStartTokens.size() > 0){
237                 
238                                         DataLine += "DTSTART;";
239                                         DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartTokens;
240                         
241                                 } else {
243                                         DataLine += "DTSTART";
244                         
245                                 }
247                                 DataLine += ":";
248                                 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].DateTimeStartData;
249                                 DataLine += "\n";
250                 
251                                 DataLineProcessed = OutputText(&DataLine);
252                 
253                                 *SaveData += DataLineProcessed;
254                 
255                                 DataLine.clear();
256                                 DataLineProcessed.clear();
257                 
258                         }
259                         
260                         // Process the TZOFFSETFROM value.
261         
262                         if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData.size() > 0){
263                 
264                                 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens.size() > 0){
265                 
266                                         DataLine += "TZOFFSETFROM;";
267                                         DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromTokens;
268                         
269                                 } else {
271                                         DataLine += "TZOFFSETFROM";
272                         
273                                 }
275                                 DataLine += ":";
276                                 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetFromData;
277                                 DataLine += "\n";
278                 
279                                 DataLineProcessed = OutputText(&DataLine);
280                 
281                                 *SaveData += DataLineProcessed;
282                 
283                                 DataLine.clear();
284                                 DataLineProcessed.clear();
285                 
286                         }
287                         
288                         // Process the TZOFFSETTO value.
289         
290                         if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData.size() > 0){
291                 
292                                 if (TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens.size() > 0){
293                 
294                                         DataLine += "TZOFFSETTO;";
295                                         DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToTokens;
296                         
297                                 } else {
299                                         DataLine += "TZOFFSETTO";
300                         
301                                 }
303                                 DataLine += ":";
304                                 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].TimeZoneOffsetToData;
305                                 DataLine += "\n";
306                 
307                                 DataLineProcessed = OutputText(&DataLine);
308                 
309                                 *SaveData += DataLineProcessed;
310                 
311                                 DataLine.clear();
312                                 DataLineProcessed.clear();
313                 
314                         }
315                         
316                         // Process the RRULE value.
317         
318                         if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData.size() > 0){
319                 
320                                 if (TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens.size() > 0){
321                 
322                                         DataLine += "RRULE;";
323                                         DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleDataTokens;
324                         
325                                 } else {
327                                         DataLine += "RRULE";
328                         
329                                 }
331                                 DataLine += ":";
332                                 DataLine += TimezoneDaylightCollection[TimezoneDaylightSeek].RecurranceRuleData;
333                                 DataLine += "\n";
334                 
335                                 DataLineProcessed = OutputText(&DataLine);
336                 
337                                 *SaveData += DataLineProcessed;
338                 
339                                 DataLine.clear();
340                                 DataLineProcessed.clear();
341                 
342                         }
343                                 
344                         *SaveData += "END:DAYLIGHT\n";
345                                 
346                 }
347                 
348         }
349         
350         *SaveData += "END:VTIMEZONE\n";
351         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy