#include #include #include #include #include #include #include #include "../../common/text.h" using namespace std; enum CalendarObjectLoadResult { CALENDAROBJECTLOAD_UNITTESTFAIL = -1, CALENDAROBJECTLOAD_OK, CALENDAROBJECTLOAD_MISSING, CALENDAROBJECTLOAD_INVALIDFORMAT, CALENDAROBJECTLOAD_CANNOTOPEN }; enum CalendarObjectValidResult{ CALENDAROBJECTVALID_UNITTESTFAIL = -1, CALENDAROBJECTVALID_OK, CALENDAROBJECTVALID_INVALIDFORMAT }; class CalendarObject{ public: 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() {}; // Object data. std::string MethodData; std::string MethodTokens; std::string CalendarScaleData; std::string CalendarScaleTokens; std::string UniqueID; std::string UniqueIDTokens; vector AttachList; vector AttachListTokens; vector AttachListEncoding; vector AttachListFormatType; vector AttachListValue; vector CategoriesList; vector CategoriesListLanguage; vector CategoriesListTokens; std::string ClassData; std::string ClassDataTokens; vector CommentList; vector CommentListAltRep; vector CommentListLanguage; vector CommentListTokens; vector DescriptionList; vector DescriptionListAltRep; vector DescriptionListLanguage; vector DescriptionListTokens; std::string GeographicData; std::string GeographicTokens; std::string LocationData; std::string LocationDataAltRep; std::string LocationDataLanguage; std::string LocationDataTokens; std::string PercentCompleteData; std::string PercentCompleteTokens; int PriorityData = -1; std::string PriorityTokens; vector ResourcesData; vector ResourcesDataAltID; vector ResourcesDataLanguage; vector ResourcesDataTokens; std::string StatusData; std::string StatusTokens; std::string SummaryData; std::string SummaryDataAltRep; std::string SummaryDataLanguage; std::string SummaryDataTokens; std::string DateTimeEndData; std::string DateTimeEndDataValue; std::string DateTimeEndDataTimeZoneID; std::string DateTimeEndDataTokens; std::string DueData; std::string DueDataValue; std::string DueDataTimeZoneID; std::string DueDataTokens; std::string DateTimeStartData; std::string DateTimeStartDataValue; std::string DateTimeStartDataTimeZoneID; std::string DateTimeStartDataTokens; std::string DurationData; std::string DurationDataTokens; vector FreeBusyList; vector FreeBusyListType; vector FreeBusyListTokens; std::string TimeTransparencyData; std::string TimeTransparencyDataTokens; std::string TimeZoneData; std::string TimeZoneDataTokens; vector TimeZoneNameList; vector TimeZoneNameListLanguage; vector TimeZoneNameListTokens; std::string TimeZoneOffsetFromData; std::string TimeZoneOffsetFromDataTokens; std::string TimeZoneOffsetToData; std::string TimeZoneOffsetToDataTokens; std::string TimeZoneURLData; std::string TimeZoneURLTokens; vector AttendeeList; vector AttendeeListMember; vector AttendeeListDelegatedFrom; vector AttendeeListDelegatedTo; vector AttendeeListRole; vector AttendeeListRSVP; vector AttendeeListDirectoryEntry; vector AttendeeListSentBy; vector AttendeeListCommonName; vector AttendeeListCalendarUserType; vector AttendeeListParticipationStatus; vector AttendeeListLanguage; vector AttendeeListTokens; vector ContactList; vector ContactListAltID; vector ContactListLanguage; vector 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 RecurranceIDDataRangeParam; std::string RecurranceIDDataValue; std::string RecurranceIDDataTokens; vector RelatedToData; vector RelatedToDataRelationType; vector RelatedToDataTokens; std::string URLData; std::string URLDataTokens; vector ExcludeDateData; vector ExcludeDateDataValue; vector ExcludeDateDataTimeZoneParam; vector ExcludeDateDataTokens; vector RecurranceDateData; vector RecurranceDateDataValue; vector RecurranceDateDataTimeZoneParam; vector RecurranceDateDataTokens; std::string RecurranceRuleData; std::string RecurranceRuleDataTokens; 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; int SequenceData = -1; std::string SequenceTokens; vector XTokensData; vector XTokensDataTokens; std::string RequestStatusData; std::string RequestStatusLanguage; std::string RequestStatusTokens; protected: // Initial Loading Data. vector ObjectName; vector ObjectData; private: virtual void ProcessData() {}; };