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 CalendarObjectValidResult{
25 CALENDAROBJECTVALID_UNITTESTFAIL = -1,
26 CALENDAROBJECTVALID_OK,
27 CALENDAROBJECTVALID_INVALIDFORMAT
30 enum CalendarAlarmAction{
31 CALENDARALARM_UNSPECIFIED = -1,
33 CALENDARALARM_DISPLAY,
37 struct CalendarAlarmDataStruct{
39 CalendarAlarmAction AlarmType = CALENDARALARM_UNSPECIFIED;
42 string AlarmActionTokens;
48 string DescriptionData;
49 string DescriptionAltRep;
50 string DescriptionLanguage;
51 string DescriptionTokens;
58 string SummaryLanguage;
61 vector<string> AttendeeList;
62 vector<string> AttendeeListMember;
63 vector<string> AttendeeListDelegatedFrom;
64 vector<string> AttendeeListDelegatedTo;
65 vector<string> AttendeeListRole;
66 vector<string> AttendeeListRSVP;
67 vector<string> AttendeeListDirectoryEntry;
68 vector<string> AttendeeListSentBy;
69 vector<string> AttendeeListCommonName;
70 vector<string> AttendeeListCalendarUserType;
71 vector<string> AttendeeListParticipationStatus;
72 vector<string> AttendeeListLanguage;
73 vector<string> AttendeeListTokens;
76 string DurationTokens;
78 vector<string> AttachList;
79 vector<string> AttachListTokens;
80 vector<string> AttachListEncoding;
81 vector<string> AttachListFormatType;
82 vector<string> AttachListValue;
84 vector<string> XTokensData;
85 vector<string> XTokensDataTokens;
92 CalendarObjectLoadResult LoadFile(string LoadFilename);
93 CalendarObjectLoadResult LoadString(string *LoadStringData);
94 CalendarObjectValidResult ValidBaseObject();
95 void ProcessBaseData();
97 // Setup virtual subroutines for use by objects
98 // inheriting from CalendarObject later on.
100 virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
101 virtual void Clear() {};
108 string CalendarScaleData;
109 string CalendarScaleTokens;
112 string UniqueIDTokens;
114 vector<string> AttachList;
115 vector<string> AttachListTokens;
116 vector<string> AttachListEncoding;
117 vector<string> AttachListFormatType;
118 vector<string> AttachListValue;
120 vector<string> CategoriesList;
121 vector<string> CategoriesListLanguage;
122 vector<string> CategoriesListTokens;
125 string ClassDataTokens;
127 string CompletedData;
128 string CompletedDataTokens;
130 vector<string> CommentList;
131 vector<string> CommentListAltRep;
132 vector<string> CommentListLanguage;
133 vector<string> CommentListTokens;
135 vector<string> DescriptionList;
136 vector<string> DescriptionListAltRep;
137 vector<string> DescriptionListLanguage;
138 vector<string> DescriptionListTokens;
140 string GeographicData;
141 string GeographicTokens;
144 string LocationDataAltRep;
145 string LocationDataLanguage;
146 string LocationDataTokens;
148 string PercentCompleteData;
149 string PercentCompleteTokens;
151 int PriorityData = -1;
152 string PriorityTokens;
154 vector<string> ResourcesData;
155 vector<string> ResourcesDataAltRep;
156 vector<string> ResourcesDataLanguage;
157 vector<string> ResourcesDataTokens;
160 string StatusLanguage;
164 string SummaryDataAltRep;
165 string SummaryDataLanguage;
166 string SummaryDataTokens;
168 string DateTimeEndData;
169 string DateTimeEndDataValue;
170 string DateTimeEndDataTimeZoneID;
171 string DateTimeEndDataTokens;
175 string DueDataTimeZoneID;
176 string DueDataTokens;
178 string DateTimeStartData;
179 string DateTimeStartDataValue;
180 string DateTimeStartDataTimeZoneID;
181 string DateTimeStartDataTokens;
184 string DurationDataTokens;
186 vector<string> FreeBusyList;
187 vector<string> FreeBusyListType;
188 vector<string> FreeBusyListTokens;
190 string TimeTransparencyData;
191 string TimeTransparencyDataTokens;
194 string TimeZoneDataTokens;
196 vector<string> TimeZoneNameList;
197 vector<string> TimeZoneNameListLanguage;
198 vector<string> TimeZoneNameListTokens;
200 string TimeZoneOffsetFromData;
201 string TimeZoneOffsetFromDataTokens;
203 string TimeZoneOffsetToData;
204 string TimeZoneOffsetToDataTokens;
206 string TimeZoneURLData;
207 string TimeZoneURLTokens;
209 vector<string> AttendeeList;
210 vector<string> AttendeeListMember;
211 vector<string> AttendeeListDelegatedFrom;
212 vector<string> AttendeeListDelegatedTo;
213 vector<string> AttendeeListRole;
214 vector<string> AttendeeListRSVP;
215 vector<string> AttendeeListDirectoryEntry;
216 vector<string> AttendeeListSentBy;
217 vector<string> AttendeeListCommonName;
218 vector<string> AttendeeListCalendarUserType;
219 vector<string> AttendeeListParticipationStatus;
220 vector<string> AttendeeListLanguage;
221 vector<string> AttendeeListTokens;
223 vector<string> ContactList;
224 vector<string> ContactListAltRep;
225 vector<string> ContactListLanguage;
226 vector<string> ContactListTokens;
228 string OrganiserData;
229 string OrganiserDataCommonName;
230 string OrganiserDataDirectoryEntry;
231 string OrganiserDataSentByParam;
232 string OrganiserDataLanguage;
233 string OrganiserDataTokens;
235 string RecurranceIDData;
236 string RecurranceIDDataTimeZoneParam;
237 string RecurranceIDDataRangeParam;
238 string RecurranceIDDataValue;
239 string RecurranceIDDataTokens;
241 vector<string> RelatedToData;
242 vector<string> RelatedToDataRelationType;
243 vector<string> RelatedToDataTokens;
246 string URLDataTokens;
248 vector<string> ExcludeDateData;
249 vector<string> ExcludeDateDataValue;
250 vector<string> ExcludeDateDataTimeZoneParam;
251 vector<string> ExcludeDateDataTokens;
253 vector<string> RecurranceDateData;
254 vector<string> RecurranceDateDataValue;
255 vector<string> RecurranceDateDataTimeZoneParam;
256 vector<string> RecurranceDateDataTokens;
258 string RecurranceRuleData;
259 string RecurranceRuleDataTokens;
261 string TriggerDataList;
262 string TriggerDataValue;
263 string TriggerDataRelatedParam;
264 string TriggerDataTokens;
266 string DateTimeCreatedData;
267 string DateTimeCreatedTokens;
269 string DateTimeStampData;
270 string DateTimeStampTokens;
272 string LastModifiedData;
273 string LastModifiedTokens;
275 int SequenceData = -1;
276 string SequenceTokens;
278 vector<string> XTokensData;
279 vector<string> XTokensDataTokens;
281 vector<string> RequestStatusData;
282 vector<string> RequestStatusLanguage;
283 vector<string> RequestStatusTokens;
285 vector<CalendarAlarmDataStruct> CalendarAlarmData;
288 // Initial Loading Data.
289 vector<string> ObjectName;
290 vector<string> ObjectData;
292 vector<vector<string>> EventAlarmName;
293 vector<vector<string>> EventAlarmData;
296 virtual void ProcessData() {};