Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added inclusion guards.
[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 class CalendarObject{
32         public:
33         CalendarObjectLoadResult LoadFile(std::string LoadFilename);
34         CalendarObjectLoadResult LoadString(std::string *LoadStringData);
35         CalendarObjectValidResult ValidBaseObject();
36         void ProcessBaseData();
37         
38         // Setup virtual subroutines for use by objects
39         // inheriting from CalendarObject later on.
40         
41         virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
42         virtual void Clear() {};
43         
44         // Object data.
45         
46         std::string MethodData;
47         std::string MethodTokens;
48         
49         std::string CalendarScaleData;
50         std::string CalendarScaleTokens;
51         
52         std::string UniqueID;
53         std::string UniqueIDTokens;
54         
55         vector<std::string> AttachList;
56         vector<std::string> AttachListTokens;
57         vector<std::string> AttachListEncoding;
58         vector<std::string> AttachListFormatType;
59         vector<std::string> AttachListValue;
60         
61         vector<std::string> CategoriesList;
62         vector<std::string> CategoriesListLanguage;
63         vector<std::string> CategoriesListTokens;
64         
65         std::string ClassData;
66         std::string ClassDataTokens;
67         
68         vector<std::string> CommentList;
69         vector<std::string> CommentListAltRep;
70         vector<std::string> CommentListLanguage;
71         vector<std::string> CommentListTokens;
72         
73         vector<std::string> DescriptionList;
74         vector<std::string> DescriptionListAltRep;
75         vector<std::string> DescriptionListLanguage;
76         vector<std::string> DescriptionListTokens;
77         
78         std::string GeographicData;
79         std::string GeographicTokens;
80         
81         std::string LocationData;
82         std::string LocationDataAltRep;
83         std::string LocationDataLanguage;
84         std::string LocationDataTokens;
85         
86         std::string PercentCompleteData;
87         std::string PercentCompleteTokens;
88         
89         int PriorityData = -1;
90         std::string PriorityTokens;
91         
92         vector<std::string> ResourcesData;
93         vector<std::string> ResourcesDataAltRep;
94         vector<std::string> ResourcesDataLanguage;
95         vector<std::string> ResourcesDataTokens;
97         std::string StatusData;
98         std::string StatusLanguage;
99         std::string StatusTokens;
100         
101         std::string SummaryData;
102         std::string SummaryDataAltRep;
103         std::string SummaryDataLanguage;
104         std::string SummaryDataTokens;
105         
106         std::string DateTimeEndData;
107         std::string DateTimeEndDataValue;
108         std::string DateTimeEndDataTimeZoneID;
109         std::string DateTimeEndDataTokens;
111         std::string DueData;
112         std::string DueDataValue;
113         std::string DueDataTimeZoneID;
114         std::string DueDataTokens;
116         std::string DateTimeStartData;
117         std::string DateTimeStartDataValue;
118         std::string DateTimeStartDataTimeZoneID;
119         std::string DateTimeStartDataTokens;
121         std::string DurationData;
122         std::string DurationDataTokens;
124         vector<std::string> FreeBusyList;
125         vector<std::string> FreeBusyListType;
126         vector<std::string> FreeBusyListTokens;
128         std::string TimeTransparencyData;
129         std::string TimeTransparencyDataTokens;
130         
131         std::string TimeZoneData;
132         std::string TimeZoneDataTokens;
133         
134         vector<std::string> TimeZoneNameList;
135         vector<std::string> TimeZoneNameListLanguage;
136         vector<std::string> TimeZoneNameListTokens;
137         
138         std::string TimeZoneOffsetFromData;
139         std::string TimeZoneOffsetFromDataTokens;
141         std::string TimeZoneOffsetToData;
142         std::string TimeZoneOffsetToDataTokens;
144         std::string TimeZoneURLData;
145         std::string TimeZoneURLTokens;
147         vector<std::string> AttendeeList;
148         vector<std::string> AttendeeListMember;
149         vector<std::string> AttendeeListDelegatedFrom;
150         vector<std::string> AttendeeListDelegatedTo;
151         vector<std::string> AttendeeListRole;
152         vector<std::string> AttendeeListRSVP;
153         vector<std::string> AttendeeListDirectoryEntry;
154         vector<std::string> AttendeeListSentBy;
155         vector<std::string> AttendeeListCommonName;
156         vector<std::string> AttendeeListCalendarUserType;
157         vector<std::string> AttendeeListParticipationStatus;
158         vector<std::string> AttendeeListLanguage;
159         vector<std::string> AttendeeListTokens;
161         vector<std::string> ContactList;
162         vector<std::string> ContactListAltRep;
163         vector<std::string> ContactListLanguage;
164         vector<std::string> ContactListTokens;
165         
166         std::string OrganiserData;
167         std::string OrganiserDataCommonName;
168         std::string OrganiserDataDirectoryEntry;
169         std::string OrganiserDataSentByParam;
170         std::string OrganiserDataLanguage;
171         std::string OrganiserDataTokens;
172         
173         std::string RecurranceIDData;
174         std::string RecurranceIDDataTimeZoneParam;
175         std::string RecurranceIDDataRangeParam;
176         std::string RecurranceIDDataValue;
177         std::string RecurranceIDDataTokens;
178         
179         vector<std::string> RelatedToData;
180         vector<std::string> RelatedToDataRelationType;
181         vector<std::string> RelatedToDataTokens;
182         
183         std::string URLData;
184         std::string URLDataTokens;
186         vector<std::string> ExcludeDateData;
187         vector<std::string> ExcludeDateDataValue;
188         vector<std::string> ExcludeDateDataTimeZoneParam;
189         vector<std::string> ExcludeDateDataTokens;
190         
191         vector<std::string> RecurranceDateData;
192         vector<std::string> RecurranceDateDataValue;
193         vector<std::string> RecurranceDateDataTimeZoneParam;
194         vector<std::string> RecurranceDateDataTokens;
195         
196         std::string RecurranceRuleData;
197         std::string RecurranceRuleDataTokens;
198         
199         std::string TriggerDataList;
200         std::string TriggerDataValue;
201         std::string TriggerDataRelatedParam;
202         std::string TriggerDataTokens;
203         
204         std::string DateTimeCreatedData;
205         std::string DateTimeCreatedTokens;
207         std::string DateTimeStampData;
208         std::string DateTimeStampTokens;
210         std::string LastModifiedData;
211         std::string LastModifiedTokens;
213         int SequenceData = -1;
214         std::string SequenceTokens;
216         vector<std::string> XTokensData;
217         vector<std::string> XTokensDataTokens;
219         vector<std::string> RequestStatusData;
220         vector<std::string> RequestStatusLanguage;
221         vector<std::string> RequestStatusTokens;
222         
223         protected:
224         // Initial Loading Data.
225         vector<std::string> ObjectName;
226         vector<std::string> ObjectData;
228         private:
229         virtual void ProcessData() {};
230   
231 };
233 #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