Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Setup initial version of the CalendarObjectSaveResult enum.
[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 CalendarObjectSaveResult {
25         CALENDAROBJECTSAVE_UNITTESTFAIL = -1,
26         CALENDAROBJECTSAVE_OK,
27 };
29 enum CalendarObjectValidResult{
30         CALENDAROBJECTVALID_UNITTESTFAIL = -1,
31         CALENDAROBJECTVALID_OK,
32         CALENDAROBJECTVALID_INVALIDFORMAT
33 };
35 enum CalendarAlarmAction{
36         CALENDARALARM_UNSPECIFIED = -1,
37         CALENDARALARM_AUDIO,
38         CALENDARALARM_DISPLAY,
39         CALENDARALARM_EMAIL
40 };
42 struct CalendarAlarmDataStruct{
43         
44         CalendarAlarmAction AlarmType = CALENDARALARM_UNSPECIFIED;
45         
46         string AlarmAction;
47         string AlarmActionTokens;
48         
49         string TriggerData;
50         string TriggerValue;
51         string TriggerRelated;
52         string TriggerTokens;
53         
54         string DescriptionData;
55         string DescriptionAltRep;
56         string DescriptionLanguage;
57         string DescriptionTokens;
58         
59         string RepeatData;
60         string RepeatTokens;
61         
62         string SummaryData;
63         string SummaryAltRep;
64         string SummaryLanguage;
65         string SummaryTokens;
66         
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;
80         
81         string DurationData;
82         string DurationTokens;
83         
84         vector<string> AttachList;
85         vector<string> AttachListTokens;
86         vector<string> AttachListEncoding;
87         vector<string> AttachListFormatType;
88         vector<string> AttachListValue;
89         
90         vector<string> XTokensData;
91         vector<string> XTokensDataTokens;
92         
93 };
95 class CalendarObject{
97         public:
98         CalendarObjectLoadResult LoadFile(string LoadFilename);
99         CalendarObjectLoadResult LoadString(string *LoadStringData);
100         CalendarObjectValidResult ValidBaseObject();
101         void ProcessBaseData();
102         
103         // Setup virtual subroutines for use by objects
104         // inheriting from CalendarObject later on.
105         
106         virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
107         virtual void Clear() {};
108         
109         // Object data.
110         
111         string MethodData;
112         string MethodTokens;
113         
114         string CalendarScaleData;
115         string CalendarScaleTokens;
116         
117         string UniqueID;
118         string UniqueIDTokens;
119         
120         vector<string> AttachList;
121         vector<string> AttachListTokens;
122         vector<string> AttachListEncoding;
123         vector<string> AttachListFormatType;
124         vector<string> AttachListValue;
125         
126         vector<string> CategoriesList;
127         vector<string> CategoriesListLanguage;
128         vector<string> CategoriesListTokens;
129         
130         string ClassData;
131         string ClassDataTokens;
132         
133         string CompletedData;
134         string CompletedDataTokens;
135         
136         vector<string> CommentList;
137         vector<string> CommentListAltRep;
138         vector<string> CommentListLanguage;
139         vector<string> CommentListTokens;
140         
141         vector<string> DescriptionList;
142         vector<string> DescriptionListAltRep;
143         vector<string> DescriptionListLanguage;
144         vector<string> DescriptionListTokens;
145         
146         string GeographicData;
147         string GeographicTokens;
148         
149         string LocationData;
150         string LocationDataAltRep;
151         string LocationDataLanguage;
152         string LocationDataTokens;
153         
154         string PercentCompleteData;
155         string PercentCompleteTokens;
156         
157         int PriorityData = -1;
158         string PriorityTokens;
159         
160         vector<string> ResourcesData;
161         vector<string> ResourcesDataAltRep;
162         vector<string> ResourcesDataLanguage;
163         vector<string> ResourcesDataTokens;
165         string StatusData;
166         string StatusLanguage;
167         string StatusTokens;
168         
169         string SummaryData;
170         string SummaryDataAltRep;
171         string SummaryDataLanguage;
172         string SummaryDataTokens;
173         
174         string DateTimeEndData;
175         string DateTimeEndDataValue;
176         string DateTimeEndDataTimeZoneID;
177         string DateTimeEndDataTokens;
179         string DueData;
180         string DueDataValue;
181         string DueDataTimeZoneID;
182         string DueDataTokens;
184         string DateTimeStartData;
185         string DateTimeStartDataValue;
186         string DateTimeStartDataTimeZoneID;
187         string DateTimeStartDataTokens;
189         string DurationData;
190         string DurationDataTokens;
192         vector<string> FreeBusyList;
193         vector<string> FreeBusyListType;
194         vector<string> FreeBusyListTokens;
196         string TimeTransparencyData;
197         string TimeTransparencyDataTokens;
198         
199         string TimeZoneData;
200         string TimeZoneDataTokens;
201         
202         vector<string> TimeZoneNameList;
203         vector<string> TimeZoneNameListLanguage;
204         vector<string> TimeZoneNameListTokens;
205         
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;
233         
234         string OrganiserData;
235         string OrganiserDataCommonName;
236         string OrganiserDataDirectoryEntry;
237         string OrganiserDataSentByParam;
238         string OrganiserDataLanguage;
239         string OrganiserDataTokens;
240         
241         string RecurranceIDData;
242         string RecurranceIDDataTimeZoneParam;
243         string RecurranceIDDataRangeParam;
244         string RecurranceIDDataValue;
245         string RecurranceIDDataTokens;
246         
247         vector<string> RelatedToData;
248         vector<string> RelatedToDataRelationType;
249         vector<string> RelatedToDataTokens;
250         
251         string URLData;
252         string URLDataTokens;
254         vector<string> ExcludeDateData;
255         vector<string> ExcludeDateDataValue;
256         vector<string> ExcludeDateDataTimeZoneParam;
257         vector<string> ExcludeDateDataTokens;
258         
259         vector<string> RecurranceDateData;
260         vector<string> RecurranceDateDataValue;
261         vector<string> RecurranceDateDataTimeZoneParam;
262         vector<string> RecurranceDateDataTokens;
263         
264         string RecurranceRuleData;
265         string RecurranceRuleDataTokens;
266         
267         string TriggerDataList;
268         string TriggerDataValue;
269         string TriggerDataRelatedParam;
270         string TriggerDataTokens;
271         
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;
290         
291         vector<CalendarAlarmDataStruct> CalendarAlarmData;
292         
293         protected:
294         // Initial Loading Data.
295         vector<string> ObjectName;
296         vector<string> ObjectData;
297         
298         vector<vector<string>> EventAlarmName;
299         vector<vector<string>> EventAlarmData;
300         
301         private:
302         virtual void ProcessData() {};
303   
304 };
306 #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