Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Setup initial version of the SaveFile functions for the CalendarObject class.
[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         CalendarObjectSaveResult SaveFile(string SaveFilename);
101         CalendarObjectSaveResult SaveString(string *SaveStringData);
102         CalendarObjectValidResult ValidBaseObject();
103         void ProcessBaseData();
104         
105         // Setup virtual subroutines for use by objects
106         // inheriting from CalendarObject later on.
107         
108         virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
109         virtual void Clear() {};
110         virtual void SaveObjectData() {};
111         
112         // Object data.
113         
114         string MethodData;
115         string MethodTokens;
116         
117         string CalendarScaleData;
118         string CalendarScaleTokens;
119         
120         string UniqueID;
121         string UniqueIDTokens;
122         
123         vector<string> AttachList;
124         vector<string> AttachListTokens;
125         vector<string> AttachListEncoding;
126         vector<string> AttachListFormatType;
127         vector<string> AttachListValue;
128         
129         vector<string> CategoriesList;
130         vector<string> CategoriesListLanguage;
131         vector<string> CategoriesListTokens;
132         
133         string ClassData;
134         string ClassDataTokens;
135         
136         string CompletedData;
137         string CompletedDataTokens;
138         
139         vector<string> CommentList;
140         vector<string> CommentListAltRep;
141         vector<string> CommentListLanguage;
142         vector<string> CommentListTokens;
143         
144         vector<string> DescriptionList;
145         vector<string> DescriptionListAltRep;
146         vector<string> DescriptionListLanguage;
147         vector<string> DescriptionListTokens;
148         
149         string GeographicData;
150         string GeographicTokens;
151         
152         string LocationData;
153         string LocationDataAltRep;
154         string LocationDataLanguage;
155         string LocationDataTokens;
156         
157         string PercentCompleteData;
158         string PercentCompleteTokens;
159         
160         int PriorityData = -1;
161         string PriorityTokens;
162         
163         vector<string> ResourcesData;
164         vector<string> ResourcesDataAltRep;
165         vector<string> ResourcesDataLanguage;
166         vector<string> ResourcesDataTokens;
168         string StatusData;
169         string StatusLanguage;
170         string StatusTokens;
171         
172         string SummaryData;
173         string SummaryDataAltRep;
174         string SummaryDataLanguage;
175         string SummaryDataTokens;
176         
177         string DateTimeEndData;
178         string DateTimeEndDataValue;
179         string DateTimeEndDataTimeZoneID;
180         string DateTimeEndDataTokens;
182         string DueData;
183         string DueDataValue;
184         string DueDataTimeZoneID;
185         string DueDataTokens;
187         string DateTimeStartData;
188         string DateTimeStartDataValue;
189         string DateTimeStartDataTimeZoneID;
190         string DateTimeStartDataTokens;
192         string DurationData;
193         string DurationDataTokens;
195         vector<string> FreeBusyList;
196         vector<string> FreeBusyListType;
197         vector<string> FreeBusyListTokens;
199         string TimeTransparencyData;
200         string TimeTransparencyDataTokens;
201         
202         string TimeZoneData;
203         string TimeZoneDataTokens;
204         
205         vector<string> TimeZoneNameList;
206         vector<string> TimeZoneNameListLanguage;
207         vector<string> TimeZoneNameListTokens;
208         
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;
236         
237         string OrganiserData;
238         string OrganiserDataCommonName;
239         string OrganiserDataDirectoryEntry;
240         string OrganiserDataSentByParam;
241         string OrganiserDataLanguage;
242         string OrganiserDataTokens;
243         
244         string RecurranceIDData;
245         string RecurranceIDDataTimeZoneParam;
246         string RecurranceIDDataRangeParam;
247         string RecurranceIDDataValue;
248         string RecurranceIDDataTokens;
249         
250         vector<string> RelatedToData;
251         vector<string> RelatedToDataRelationType;
252         vector<string> RelatedToDataTokens;
253         
254         string URLData;
255         string URLDataTokens;
257         vector<string> ExcludeDateData;
258         vector<string> ExcludeDateDataValue;
259         vector<string> ExcludeDateDataTimeZoneParam;
260         vector<string> ExcludeDateDataTokens;
261         
262         vector<string> RecurranceDateData;
263         vector<string> RecurranceDateDataValue;
264         vector<string> RecurranceDateDataTimeZoneParam;
265         vector<string> RecurranceDateDataTokens;
266         
267         string RecurranceRuleData;
268         string RecurranceRuleDataTokens;
269         
270         string TriggerDataList;
271         string TriggerDataValue;
272         string TriggerDataRelatedParam;
273         string TriggerDataTokens;
274         
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;
293         
294         vector<CalendarAlarmDataStruct> CalendarAlarmData;
295         
296         protected:
297         // Initial Loading Data.
298         vector<string> ObjectName;
299         vector<string> ObjectData;
300         
301         vector<vector<string>> EventAlarmName;
302         vector<vector<string>> EventAlarmData;
303         
304         private:
305         virtual void ProcessData() {};
306   
307 };
309 #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