Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added initial VALARM processing in CalendarEventObject.
[xestiacalendar/.git] / source / objects / calendarobject / CalendarObject.h
1 #ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
2 #define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
4 #include <string>
5 #include <iostream>
6 #include <fstream>
7 #include <sstream>
8 #include <vector>
9 #include <stdexcept>
10 #include <map>
12 #include "../../common/text.h"
14 using namespace std;
16 enum CalendarObjectLoadResult {
17         CALENDAROBJECTLOAD_UNITTESTFAIL = -1,
18         CALENDAROBJECTLOAD_OK,
19         CALENDAROBJECTLOAD_MISSING,
20         CALENDAROBJECTLOAD_INVALIDFORMAT,
21         CALENDAROBJECTLOAD_CANNOTOPEN
22 };
24 enum CalendarObjectValidResult{
25         CALENDAROBJECTVALID_UNITTESTFAIL = -1,
26         CALENDAROBJECTVALID_OK,
27         CALENDAROBJECTVALID_INVALIDFORMAT
28 };
30 enum CalendarAlarmAction{
31         CALENDARALARM_UNSPECIFIED = -1,
32         CALENDARALARM_AUDIO,
33         CALENDARALARM_DISPLAY,
34         CALENDARALARM_EMAIL
35 };
37 struct CalendarAlarmDataStruct{
38         
39         CalendarAlarmAction AlarmType = CALENDARALARM_UNSPECIFIED;
40         
41         string AlarmAction;
42         string AlarmActionTokens;
43         
44         string TriggerData;
45         string TriggerValue;
46         string TriggerTokens;
47         
48         string DescriptionData;
49         string DescriptionAltRep;
50         string DescriptionLanguage;
51         string DescriptionTokens;
52         
53         string RepeatData;
54         string RepeatTokens;
55         
56         string SummaryData;
57         string SummaryAltRep;
58         string SummaryLanguage;
59         string SummaryTokens;
60         
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;
74         
75         string DurationData;
76         string DurationTokens;
77         
78         vector<string> AttachList;
79         vector<string> AttachListTokens;
80         vector<string> AttachListEncoding;
81         vector<string> AttachListFormatType;
82         vector<string> AttachListValue;
83         
84         vector<string> XTokensData;
85         vector<string> XTokensDataTokens;
86         
87 };
89 class CalendarObject{
91         public:
92         CalendarObjectLoadResult LoadFile(string LoadFilename);
93         CalendarObjectLoadResult LoadString(string *LoadStringData);
94         CalendarObjectValidResult ValidBaseObject();
95         void ProcessBaseData();
96         
97         // Setup virtual subroutines for use by objects
98         // inheriting from CalendarObject later on.
99         
100         virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
101         virtual void Clear() {};
102         
103         // Object data.
104         
105         string MethodData;
106         string MethodTokens;
107         
108         string CalendarScaleData;
109         string CalendarScaleTokens;
110         
111         string UniqueID;
112         string UniqueIDTokens;
113         
114         vector<string> AttachList;
115         vector<string> AttachListTokens;
116         vector<string> AttachListEncoding;
117         vector<string> AttachListFormatType;
118         vector<string> AttachListValue;
119         
120         vector<string> CategoriesList;
121         vector<string> CategoriesListLanguage;
122         vector<string> CategoriesListTokens;
123         
124         string ClassData;
125         string ClassDataTokens;
126         
127         string CompletedData;
128         string CompletedDataTokens;
129         
130         vector<string> CommentList;
131         vector<string> CommentListAltRep;
132         vector<string> CommentListLanguage;
133         vector<string> CommentListTokens;
134         
135         vector<string> DescriptionList;
136         vector<string> DescriptionListAltRep;
137         vector<string> DescriptionListLanguage;
138         vector<string> DescriptionListTokens;
139         
140         string GeographicData;
141         string GeographicTokens;
142         
143         string LocationData;
144         string LocationDataAltRep;
145         string LocationDataLanguage;
146         string LocationDataTokens;
147         
148         string PercentCompleteData;
149         string PercentCompleteTokens;
150         
151         int PriorityData = -1;
152         string PriorityTokens;
153         
154         vector<string> ResourcesData;
155         vector<string> ResourcesDataAltRep;
156         vector<string> ResourcesDataLanguage;
157         vector<string> ResourcesDataTokens;
159         string StatusData;
160         string StatusLanguage;
161         string StatusTokens;
162         
163         string SummaryData;
164         string SummaryDataAltRep;
165         string SummaryDataLanguage;
166         string SummaryDataTokens;
167         
168         string DateTimeEndData;
169         string DateTimeEndDataValue;
170         string DateTimeEndDataTimeZoneID;
171         string DateTimeEndDataTokens;
173         string DueData;
174         string DueDataValue;
175         string DueDataTimeZoneID;
176         string DueDataTokens;
178         string DateTimeStartData;
179         string DateTimeStartDataValue;
180         string DateTimeStartDataTimeZoneID;
181         string DateTimeStartDataTokens;
183         string DurationData;
184         string DurationDataTokens;
186         vector<string> FreeBusyList;
187         vector<string> FreeBusyListType;
188         vector<string> FreeBusyListTokens;
190         string TimeTransparencyData;
191         string TimeTransparencyDataTokens;
192         
193         string TimeZoneData;
194         string TimeZoneDataTokens;
195         
196         vector<string> TimeZoneNameList;
197         vector<string> TimeZoneNameListLanguage;
198         vector<string> TimeZoneNameListTokens;
199         
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;
227         
228         string OrganiserData;
229         string OrganiserDataCommonName;
230         string OrganiserDataDirectoryEntry;
231         string OrganiserDataSentByParam;
232         string OrganiserDataLanguage;
233         string OrganiserDataTokens;
234         
235         string RecurranceIDData;
236         string RecurranceIDDataTimeZoneParam;
237         string RecurranceIDDataRangeParam;
238         string RecurranceIDDataValue;
239         string RecurranceIDDataTokens;
240         
241         vector<string> RelatedToData;
242         vector<string> RelatedToDataRelationType;
243         vector<string> RelatedToDataTokens;
244         
245         string URLData;
246         string URLDataTokens;
248         vector<string> ExcludeDateData;
249         vector<string> ExcludeDateDataValue;
250         vector<string> ExcludeDateDataTimeZoneParam;
251         vector<string> ExcludeDateDataTokens;
252         
253         vector<string> RecurranceDateData;
254         vector<string> RecurranceDateDataValue;
255         vector<string> RecurranceDateDataTimeZoneParam;
256         vector<string> RecurranceDateDataTokens;
257         
258         string RecurranceRuleData;
259         string RecurranceRuleDataTokens;
260         
261         string TriggerDataList;
262         string TriggerDataValue;
263         string TriggerDataRelatedParam;
264         string TriggerDataTokens;
265         
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;
284         
285         vector<CalendarAlarmDataStruct> CalendarAlarmData;
286         
287         protected:
288         // Initial Loading Data.
289         vector<string> ObjectName;
290         vector<string> ObjectData;
291         
292         vector<vector<string>> EventAlarmName;
293         vector<vector<string>> EventAlarmData;
294         
295         private:
296         virtual void ProcessData() {};
297   
298 };
300 #endif
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