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 CalendarObjectValidResult ValidBaseObject();
101 void ProcessBaseData();
103 // Setup virtual subroutines for use by objects
104 // inheriting from CalendarObject later on.
106 virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
107 virtual void Clear() {};
114 string CalendarScaleData;
115 string CalendarScaleTokens;
118 string UniqueIDTokens;
120 vector<string> AttachList;
121 vector<string> AttachListTokens;
122 vector<string> AttachListEncoding;
123 vector<string> AttachListFormatType;
124 vector<string> AttachListValue;
126 vector<string> CategoriesList;
127 vector<string> CategoriesListLanguage;
128 vector<string> CategoriesListTokens;
131 string ClassDataTokens;
133 string CompletedData;
134 string CompletedDataTokens;
136 vector<string> CommentList;
137 vector<string> CommentListAltRep;
138 vector<string> CommentListLanguage;
139 vector<string> CommentListTokens;
141 vector<string> DescriptionList;
142 vector<string> DescriptionListAltRep;
143 vector<string> DescriptionListLanguage;
144 vector<string> DescriptionListTokens;
146 string GeographicData;
147 string GeographicTokens;
150 string LocationDataAltRep;
151 string LocationDataLanguage;
152 string LocationDataTokens;
154 string PercentCompleteData;
155 string PercentCompleteTokens;
157 int PriorityData = -1;
158 string PriorityTokens;
160 vector<string> ResourcesData;
161 vector<string> ResourcesDataAltRep;
162 vector<string> ResourcesDataLanguage;
163 vector<string> ResourcesDataTokens;
166 string StatusLanguage;
170 string SummaryDataAltRep;
171 string SummaryDataLanguage;
172 string SummaryDataTokens;
174 string DateTimeEndData;
175 string DateTimeEndDataValue;
176 string DateTimeEndDataTimeZoneID;
177 string DateTimeEndDataTokens;
181 string DueDataTimeZoneID;
182 string DueDataTokens;
184 string DateTimeStartData;
185 string DateTimeStartDataValue;
186 string DateTimeStartDataTimeZoneID;
187 string DateTimeStartDataTokens;
190 string DurationDataTokens;
192 vector<string> FreeBusyList;
193 vector<string> FreeBusyListType;
194 vector<string> FreeBusyListTokens;
196 string TimeTransparencyData;
197 string TimeTransparencyDataTokens;
200 string TimeZoneDataTokens;
202 vector<string> TimeZoneNameList;
203 vector<string> TimeZoneNameListLanguage;
204 vector<string> TimeZoneNameListTokens;
206 string TimeZoneOffsetFromData;
207 string TimeZoneOffsetFromDataTokens;
209 string TimeZoneOffsetToData;
210 string TimeZoneOffsetToDataTokens;
212 string TimeZoneURLData;
213 string TimeZoneURLTokens;
215 vector<string> AttendeeList;
216 vector<string> AttendeeListMember;
217 vector<string> AttendeeListDelegatedFrom;
218 vector<string> AttendeeListDelegatedTo;
219 vector<string> AttendeeListRole;
220 vector<string> AttendeeListRSVP;
221 vector<string> AttendeeListDirectoryEntry;
222 vector<string> AttendeeListSentBy;
223 vector<string> AttendeeListCommonName;
224 vector<string> AttendeeListCalendarUserType;
225 vector<string> AttendeeListParticipationStatus;
226 vector<string> AttendeeListLanguage;
227 vector<string> AttendeeListTokens;
229 vector<string> ContactList;
230 vector<string> ContactListAltRep;
231 vector<string> ContactListLanguage;
232 vector<string> ContactListTokens;
234 string OrganiserData;
235 string OrganiserDataCommonName;
236 string OrganiserDataDirectoryEntry;
237 string OrganiserDataSentByParam;
238 string OrganiserDataLanguage;
239 string OrganiserDataTokens;
241 string RecurranceIDData;
242 string RecurranceIDDataTimeZoneParam;
243 string RecurranceIDDataRangeParam;
244 string RecurranceIDDataValue;
245 string RecurranceIDDataTokens;
247 vector<string> RelatedToData;
248 vector<string> RelatedToDataRelationType;
249 vector<string> RelatedToDataTokens;
252 string URLDataTokens;
254 vector<string> ExcludeDateData;
255 vector<string> ExcludeDateDataValue;
256 vector<string> ExcludeDateDataTimeZoneParam;
257 vector<string> ExcludeDateDataTokens;
259 vector<string> RecurranceDateData;
260 vector<string> RecurranceDateDataValue;
261 vector<string> RecurranceDateDataTimeZoneParam;
262 vector<string> RecurranceDateDataTokens;
264 string RecurranceRuleData;
265 string RecurranceRuleDataTokens;
267 string TriggerDataList;
268 string TriggerDataValue;
269 string TriggerDataRelatedParam;
270 string TriggerDataTokens;
272 string DateTimeCreatedData;
273 string DateTimeCreatedTokens;
275 string DateTimeStampData;
276 string DateTimeStampTokens;
278 string LastModifiedData;
279 string LastModifiedTokens;
281 int SequenceData = -1;
282 string SequenceTokens;
284 vector<string> XTokensData;
285 vector<string> XTokensDataTokens;
287 vector<string> RequestStatusData;
288 vector<string> RequestStatusLanguage;
289 vector<string> RequestStatusTokens;
291 vector<CalendarAlarmDataStruct> CalendarAlarmData;
294 // Initial Loading Data.
295 vector<string> ObjectName;
296 vector<string> ObjectData;
298 vector<vector<string>> EventAlarmName;
299 vector<vector<string>> EventAlarmData;
302 virtual void ProcessData() {};