#include <fstream>
#include <sstream>
#include <vector>
+#include <stdexcept>
+#include <map>
+
+#include "../../common/text.h"
using namespace std;
CalendarObjectLoadResult LoadFile(std::string LoadFilename);
CalendarObjectLoadResult LoadString(std::string *LoadStringData);
CalendarObjectValidResult ValidBaseObject();
+ void ProcessBaseData();
// Setup virtual subroutines for use by objects
// inheriting from CalendarObject later on.
virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
virtual void Clear() {};
- protected:
- // Initial Loading Data.
- vector<std::string> ObjectName;
- vector<std::string> ObjectData;
-
// Object data.
+ std::string MethodData;
+ std::string MethodTokens;
+
+ std::string CalendarScaleData;
+ std::string CalendarScaleTokens;
+
+ std::string UniqueID;
+ std::string UniqueIDTokens;
+
vector<std::string> AttachList;
vector<std::string> AttachListTokens;
vector<std::string> AttachListEncoding;
int PriorityData;
std::string PriorityTokens;
- std::string ResourcesData;
- std::string ResourcesDataAltID;
- std::string ResourcesDataLanguage;
- std::string ResourcesDataTokens;
+ vector<std::string> ResourcesData;
+ vector<std::string> ResourcesDataAltID;
+ vector<std::string> ResourcesDataLanguage;
+ vector<std::string> ResourcesDataTokens;
std::string StatusData;
std::string StatusTokens;
std::string DueDataTimeZoneID;
std::string DueDataTokens;
- std::string DataTimeStartData;
- std::string DataTimeStartDataValue;
- std::string DataTimeStartDataTimeZoneID;
- std::string DataTimeStartDataTokens;
+ std::string DateTimeStartData;
+ std::string DateTimeStartDataValue;
+ std::string DateTimeStartDataTimeZoneID;
+ std::string DateTimeStartDataTokens;
std::string DurationData;
std::string DurationDataTokens;
std::string TimeTransparencyData;
std::string TimeTransparencyDataTokens;
+
+ std::string TimeZoneData;
+ std::string TimeZoneDataTokens;
+
+ vector<std::string> TimeZoneNameList;
+ vector<std::string> TimeZoneNameListLanguage;
+ vector<std::string> TimeZoneNameListTokens;
+
+ std::string TimeZoneOffsetFromData;
+ std::string TimeZoneOffsetFromDataTokens;
+
+ std::string TimeZoneOffsetToData;
+ std::string TimeZoneOffsetToDataTokens;
+
+ std::string TimeZoneURLData;
+ std::string TimeZoneURLTokens;
+
+ vector<std::string> AttendeeList;
+ vector<std::string> AttendeeListMember;
+ vector<std::string> AttendeeListDelegatedFrom;
+ vector<std::string> AttendeeListDelegatedTo;
+ vector<std::string> AttendeeListRole;
+ vector<std::string> AttendeeListRSVP;
+ vector<std::string> AttendeeListDirectoryEntry;
+ vector<std::string> AttendeeListSentBy;
+ vector<std::string> AttendeeListCommonName;
+ vector<std::string> AttendeeListCalendarUserType;
+ vector<std::string> AttendeeListParticipationStatus;
+ vector<std::string> AttendeeListLanguage;
+ vector<std::string> AttendeeListTokens;
+
+ vector<std::string> ContactList;
+ vector<std::string> ContactListAltID;
+ vector<std::string> ContactListLanguage;
+ vector<std::string> ContactListTokens;
+
+ std::string OrganiserData;
+ std::string OrganiserDataCommonName;
+ std::string OrganiserDataDirectoryEntry;
+ std::string OrganiserDataSentByParam;
+ std::string OrganiserDataLanguage;
+ std::string OrganiserDataTokens;
+
+ std::string RecurranceIDData;
+ std::string RecurranceIDDataTimeZoneParam;
+ std::string RecurranceIDDataValue;
+ std::string RecurranceIDDataTokens;
+
+ vector<std::string> RelatedToData;
+ vector<std::string> RelatedToDataRelationType;
+ vector<std::string> RelatedToDataTokens;
+
+ std::string URLData;
+ std::string URLDataTokens;
+
+ vector<std::string> ExcludeDateData;
+ vector<std::string> ExcludeDateDataValue;
+ vector<std::string> ExcludeDateDataTimeZoneParam;
+ vector<std::string> ExcludeDateDataTokens;
+
+ vector<std::string> RecurranceDateData;
+ vector<std::string> RecurranceDateDataValue;
+ vector<std::string> RecurranceDateDataTimeZoneParam;
+ vector<std::string> RecurranceDateDataTokens;
+
+ std::string RecurranceRuleData;
+ std::string RecurranceRuleDataFrequency;
+ std::string RecurranceRuleDataCount;
+ std::string RecurranceRuleDataInterval;
+ std::string RecurranceRuleDataUntil;
+ std::string RecurranceRuleDataMonth;
+ std::string RecurranceRuleDataWeekStarting;
+ std::string RecurranceRuleDataWeekByDay;
+ std::string RecurranceRuleDataWeekByMonthDay;
+ std::string RecurranceRuleDataWeekByWeekNumber;
+ std::string RecurranceRuleDataWeekBySetPosition;
+
+ std::string TriggerDataList;
+ std::string TriggerDataValue;
+ std::string TriggerDataRelatedParam;
+ std::string TriggerDataTokens;
+
+ std::string DateTimeCreatedData;
+ std::string DateTimeCreatedTokens;
+
+ std::string DateTimeStampData;
+ std::string DateTimeStampTokens;
+
+ std::string LastModifiedData;
+ std::string LastModifiedTokens;
+
+ std::string SequenceData;
+ std::string SequenceTokens;
+
+ vector<std::string> XTokensData;
+ vector<std::string> XTokensDataTokens;
+
+ vector<std::string> RequestStatusData;
+ vector<std::string> RequestStatusLanguage;
+ vector<std::string> RequestStatusTokens;
+
+ protected:
+ // Initial Loading Data.
+ vector<std::string> ObjectName;
+ vector<std::string> ObjectData;
private:
virtual void ProcessData() {};