Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Version 0.08 release
[xestiacalendar/.git] / calendarobject / CalendarObject.h
1 #include <string>
2 #include <iostream>
3 #include <fstream>
4 #include <sstream>
5 #include <vector>
6 #include <stdexcept>
8 using namespace std;
10 enum CalendarObjectLoadResult {
11     CALENDAROBJECTLOAD_UNITTESTFAIL = -1,
12     CALENDAROBJECTLOAD_OK,
13     CALENDAROBJECTLOAD_MISSING,
14     CALENDAROBJECTLOAD_INVALIDFORMAT,
15     CALENDAROBJECTLOAD_CANNOTOPEN
16 };
18 enum CalendarObjectValidResult{
19     CALENDAROBJECTVALID_UNITTESTFAIL = -1,
20     CALENDAROBJECTVALID_OK,
21     CALENDAROBJECTVALID_INVALIDFORMAT
22 };
24 class CalendarObject{
26         public:
27         CalendarObjectLoadResult LoadFile(std::string LoadFilename);
28         CalendarObjectLoadResult LoadString(std::string *LoadStringData);
29         CalendarObjectValidResult ValidBaseObject();
30         
31         // Setup virtual subroutines for use by objects
32         // inheriting from CalendarObject later on.
33         
34         virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
35         virtual void Clear() {};
36         
37         // Object data.
38         
39         vector<std::string> AttachList;
40         vector<std::string> AttachListTokens;
41         vector<std::string> AttachListEncoding;
42         vector<std::string> AttachListValue;
43         
44         vector<std::string> CategoriesList;
45         vector<std::string> CategoriesListLanguage;
46         vector<std::string> CateogriesListTokens;
47         
48         std::string ClassData;
49         std::string ClassListTokens;
50         
51         vector<std::string> CommentList;
52         vector<std::string> CommentListAltID;
53         vector<std::string> CommentListLanguage;
54         vector<std::string> CommentListTokens;
55         
56         vector<std::string> DescriptionList;
57         vector<std::string> DescriptionListAltID;
58         vector<std::string> DescriptionListLanguage;
59         vector<std::string> DescriptionListTokens;
60         
61         std::string GeographicData;
62         std::string GeographicTokens;
63         
64         std::string LocationData;
65         std::string LocationDataAltID;
66         
67         std::string PercentCompleteData;
68         std::string PercentCompleteTokens;
69         
70         int PriorityData;
71         std::string PriorityTokens;
72         
73         vector<std::string> ResourcesData;
74         vector<std::string> ResourcesDataAltID;
75         vector<std::string> ResourcesDataLanguage;
76         vector<std::string> ResourcesDataTokens;
78         std::string StatusData;
79         std::string StatusTokens;
80         
81         std::string SummaryData;
82         std::string SummaryDataAltID;
83         std::string SummaryDataLanguage;
84         std::string SummaryDataTokens;
85         
86         std::string DataTimeEndData;
87         std::string DataTimeEndDataValue;
88         std::string DataTimeEndDataTimeZoneID;
89         std::string DataTimeEndDataTokens;
91         std::string DueData;
92         std::string DueDataValue;
93         std::string DueDataTimeZoneID;
94         std::string DueDataTokens;
96         std::string DataTimeStartData;
97         std::string DataTimeStartDataValue;
98         std::string DataTimeStartDataTimeZoneID;
99         std::string DataTimeStartDataTokens;
101         std::string DurationData;
102         std::string DurationDataTokens;
104         vector<std::string> FreeBusyList;
105         vector<std::string> FreeBusyListType;
106         vector<std::string> FreeBusyListTokens;
108         std::string TimeTransparencyData;
109         std::string TimeTransparencyDataTokens;
110         
111         std::string TimeZoneData;
112         std::string TimeZoneDataTokens;
113         
114         vector<std::string> TimeZoneNameList;
115         vector<std::string> TimeZoneNameListLanguage;
116         vector<std::string> TimeZoneNameListTokens;
117         
118         std::string TimeZoneOffsetFromData;
119         std::string TimeZoneOffsetFromDataTokens;
121         std::string TimeZoneOffsetToData;
122         std::string TimeZoneOffsetToDataTokens;
124         std::string TimeZoneURLData;
125         std::string TimeZoneURLTokens;
127         vector<std::string> AttendeeList;
128         vector<std::string> AttendeeListMember;
129         vector<std::string> AttendeeListDelegatedFrom;
130         vector<std::string> AttendeeListDelegatedTo;
131         vector<std::string> AttendeeListRole;
132         vector<std::string> AttendeeListRSVP;
133         vector<std::string> AttendeeListDirectoryEntry;
134         vector<std::string> AttendeeListSentBy;
135         vector<std::string> AttendeeListCommonName;
136         vector<std::string> AttendeeListCalendarUserType;
137         vector<std::string> AttendeeListParticipationStatus;
138         vector<std::string> AttendeeListLanguage;
139         vector<std::string> AttendeeListTokens;
141         vector<std::string> ContactList;
142         vector<std::string> ContactListAltID;
143         vector<std::string> ContactListLanguage;
144         vector<std::string> ContactListTokens;
145         
146         std::string OrganiserData;
147         std::string OrganiserDataCommonName;
148         std::string OrganiserDataDirectoryEntry;
149         std::string OrganiserDataSentByParam;
150         std::string OrganiserDataLanguage;
151         std::string OrganiserDataTokens;
152         
153         std::string RecurranceIDData;
154         std::string RecurranceIDDataTimeZoneParam;
155         std::string RecurranceIDDataValue;
156         std::string RecurranceIDDataTokens;
157         
158         vector<std::string> RelatedToData;
159         vector<std::string> RelatedToDataRelationType;
160         vector<std::string> RelatedToDataTokens;
161         
162         std::string URLData;
163         std::string URLDataTokens;
165         vector<std::string> ExcludeDateData;
166         vector<std::string> ExcludeDateDataValue;
167         vector<std::string> ExcludeDateDataTimeZoneParam;
168         vector<std::string> ExcludeDateDataTokens;
169         
170         vector<std::string> RecurranceDateData;
171         vector<std::string> RecurranceDateDataValue;
172         vector<std::string> RecurranceDateDataTimeZoneParam;
173         vector<std::string> RecurranceDateDataTokens;
174         
175         std::string RecurranceRuleData;
176         std::string RecurranceRuleDataFrequency;
177         std::string RecurranceRuleDataCount;
178         std::string RecurranceRuleDataInterval;
179         std::string RecurranceRuleDataUntil;
180         std::string RecurranceRuleDataMonth;
181         std::string RecurranceRuleDataWeekStarting;
182         std::string RecurranceRuleDataWeekByDay;
183         std::string RecurranceRuleDataWeekByMonthDay;
184         std::string RecurranceRuleDataWeekByWeekNumber;
185         std::string RecurranceRuleDataWeekBySetPosition;
186         
187         std::string TriggerDataList;
188         std::string TriggerDataValue;
189         std::string TriggerDataRelatedParam;
190         std::string TriggerDataTokens;
191         
192         std::string DateTimeCreatedData;
193         std::string DateTimeCreatedTokens;
195         std::string DateTimeStampData;
196         std::string DateTimeStampTokens;
198         std::string LastModifiedData;
199         std::string LastModifiedTokens;
201         std::string SequenceData;
202         std::string SequenceTokens;
204         vector<std::string> XTokensData;
205         vector<std::string> XTokensDataTokens;
207         vector<std::string> RequestStatusData;
208         vector<std::string> RequestStatusLanguage;
209         vector<std::string> RequestStatusTokens;
210         
211         protected:
212         // Initial Loading Data.
213         vector<std::string> ObjectName;
214         vector<std::string> ObjectData;
216         private:
217         virtual void ProcessData() {};
218   
219 };
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