1 #ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
2 #define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
12 #include "../../common/text.h"
16 enum CalendarObjectLoadResult {
17 CALENDAROBJECTLOAD_UNITTESTFAIL = -1,
18 CALENDAROBJECTLOAD_OK,
19 CALENDAROBJECTLOAD_MISSING,
20 CALENDAROBJECTLOAD_INVALIDFORMAT,
21 CALENDAROBJECTLOAD_CANNOTOPEN
24 enum CalendarObjectSaveResult {
25 CALENDAROBJECTSAVE_UNITTESTFAIL = -1,
26 CALENDAROBJECTSAVE_OK,
29 enum CalendarObjectValidResult{
30 CALENDAROBJECTVALID_UNITTESTFAIL = -1,
31 CALENDAROBJECTVALID_OK,
32 CALENDAROBJECTVALID_INVALIDFORMAT
35 enum CalendarAlarmAction{
36 CALENDARALARM_UNSPECIFIED = -1,
38 CALENDARALARM_DISPLAY,
42 struct CalendarAlarmDataStruct{
44 CalendarAlarmAction AlarmType = CALENDARALARM_UNSPECIFIED;
47 string AlarmActionTokens;
51 string TriggerRelated;
54 string DescriptionData;
55 string DescriptionAltRep;
56 string DescriptionLanguage;
57 string DescriptionTokens;
64 string SummaryLanguage;
67 vector<string> AttendeeList;
68 vector<string> AttendeeListMember;
69 vector<string> AttendeeListDelegatedFrom;
70 vector<string> AttendeeListDelegatedTo;
71 vector<string> AttendeeListRole;
72 vector<string> AttendeeListRSVP;
73 vector<string> AttendeeListDirectoryEntry;
74 vector<string> AttendeeListSentBy;
75 vector<string> AttendeeListCommonName;
76 vector<string> AttendeeListCalendarUserType;
77 vector<string> AttendeeListParticipationStatus;
78 vector<string> AttendeeListLanguage;
79 vector<string> AttendeeListTokens;
82 string DurationTokens;
84 vector<string> AttachList;
85 vector<string> AttachListTokens;
86 vector<string> AttachListEncoding;
87 vector<string> AttachListFormatType;
88 vector<string> AttachListValue;
90 vector<string> XTokensData;
91 vector<string> XTokensDataTokens;
98 CalendarObjectLoadResult LoadFile(string LoadFilename);
99 CalendarObjectLoadResult LoadString(string *LoadStringData);
100 CalendarObjectSaveResult SaveFile(string SaveFilename);
101 CalendarObjectSaveResult SaveString(string *SaveStringData);
102 CalendarObjectValidResult ValidBaseObject();
103 void ProcessBaseData();
105 // Setup virtual subroutines for use by objects
106 // inheriting from CalendarObject later on.
108 virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
109 virtual void Clear() {};
110 virtual void SaveObjectData() {};
117 string CalendarScaleData;
118 string CalendarScaleTokens;
121 string UniqueIDTokens;
123 vector<string> AttachList;
124 vector<string> AttachListTokens;
125 vector<string> AttachListEncoding;
126 vector<string> AttachListFormatType;
127 vector<string> AttachListValue;
129 vector<string> CategoriesList;
130 vector<string> CategoriesListLanguage;
131 vector<string> CategoriesListTokens;
134 string ClassDataTokens;
136 string CompletedData;
137 string CompletedDataTokens;
139 vector<string> CommentList;
140 vector<string> CommentListAltRep;
141 vector<string> CommentListLanguage;
142 vector<string> CommentListTokens;
144 vector<string> DescriptionList;
145 vector<string> DescriptionListAltRep;
146 vector<string> DescriptionListLanguage;
147 vector<string> DescriptionListTokens;
149 string GeographicData;
150 string GeographicTokens;
153 string LocationDataAltRep;
154 string LocationDataLanguage;
155 string LocationDataTokens;
157 string PercentCompleteData;
158 string PercentCompleteTokens;
160 int PriorityData = -1;
161 string PriorityTokens;
163 vector<string> ResourcesData;
164 vector<string> ResourcesDataAltRep;
165 vector<string> ResourcesDataLanguage;
166 vector<string> ResourcesDataTokens;
169 string StatusLanguage;
173 string SummaryDataAltRep;
174 string SummaryDataLanguage;
175 string SummaryDataTokens;
177 string DateTimeEndData;
178 string DateTimeEndDataValue;
179 string DateTimeEndDataTimeZoneID;
180 string DateTimeEndDataTokens;
184 string DueDataTimeZoneID;
185 string DueDataTokens;
187 string DateTimeStartData;
188 string DateTimeStartDataValue;
189 string DateTimeStartDataTimeZoneID;
190 string DateTimeStartDataTokens;
193 string DurationDataTokens;
195 vector<string> FreeBusyList;
196 vector<string> FreeBusyListType;
197 vector<string> FreeBusyListTokens;
199 string TimeTransparencyData;
200 string TimeTransparencyDataTokens;
203 string TimeZoneDataTokens;
205 vector<string> TimeZoneNameList;
206 vector<string> TimeZoneNameListLanguage;
207 vector<string> TimeZoneNameListTokens;
209 string TimeZoneOffsetFromData;
210 string TimeZoneOffsetFromDataTokens;
212 string TimeZoneOffsetToData;
213 string TimeZoneOffsetToDataTokens;
215 string TimeZoneURLData;
216 string TimeZoneURLTokens;
218 vector<string> AttendeeList;
219 vector<string> AttendeeListMember;
220 vector<string> AttendeeListDelegatedFrom;
221 vector<string> AttendeeListDelegatedTo;
222 vector<string> AttendeeListRole;
223 vector<string> AttendeeListRSVP;
224 vector<string> AttendeeListDirectoryEntry;
225 vector<string> AttendeeListSentBy;
226 vector<string> AttendeeListCommonName;
227 vector<string> AttendeeListCalendarUserType;
228 vector<string> AttendeeListParticipationStatus;
229 vector<string> AttendeeListLanguage;
230 vector<string> AttendeeListTokens;
232 vector<string> ContactList;
233 vector<string> ContactListAltRep;
234 vector<string> ContactListLanguage;
235 vector<string> ContactListTokens;
237 string OrganiserData;
238 string OrganiserDataCommonName;
239 string OrganiserDataDirectoryEntry;
240 string OrganiserDataSentByParam;
241 string OrganiserDataLanguage;
242 string OrganiserDataTokens;
244 string RecurranceIDData;
245 string RecurranceIDDataTimeZoneParam;
246 string RecurranceIDDataRangeParam;
247 string RecurranceIDDataValue;
248 string RecurranceIDDataTokens;
250 vector<string> RelatedToData;
251 vector<string> RelatedToDataRelationType;
252 vector<string> RelatedToDataTokens;
255 string URLDataTokens;
257 vector<string> ExcludeDateData;
258 vector<string> ExcludeDateDataValue;
259 vector<string> ExcludeDateDataTimeZoneParam;
260 vector<string> ExcludeDateDataTokens;
262 vector<string> RecurranceDateData;
263 vector<string> RecurranceDateDataValue;
264 vector<string> RecurranceDateDataTimeZoneParam;
265 vector<string> RecurranceDateDataTokens;
267 string RecurranceRuleData;
268 string RecurranceRuleDataTokens;
270 string TriggerDataList;
271 string TriggerDataValue;
272 string TriggerDataRelatedParam;
273 string TriggerDataTokens;
275 string DateTimeCreatedData;
276 string DateTimeCreatedTokens;
278 string DateTimeStampData;
279 string DateTimeStampTokens;
281 string LastModifiedData;
282 string LastModifiedTokens;
284 int SequenceData = -1;
285 string SequenceTokens;
287 vector<string> XTokensData;
288 vector<string> XTokensDataTokens;
290 vector<string> RequestStatusData;
291 vector<string> RequestStatusLanguage;
292 vector<string> RequestStatusTokens;
294 vector<CalendarAlarmDataStruct> CalendarAlarmData;
297 // Initial Loading Data.
298 vector<string> ObjectName;
299 vector<string> ObjectData;
301 vector<vector<string>> EventAlarmName;
302 vector<vector<string>> EventAlarmData;
305 virtual void ProcessData() {};