#ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__ #define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__ #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 }; enum CalendarAlarmAction{ CALENDARALARM_UNSPECIFIED = -1, CALENDARALARM_AUDIO, CALENDARALARM_DISPLAY, CALENDARALARM_EMAIL }; struct CalendarAlarmDataStruct{ CalendarAlarmAction AlarmType = CALENDARALARM_UNSPECIFIED; string AlarmAction; string AlarmActionTokens; string TriggerData; string TriggerValue; string TriggerTokens; string DescriptionData; string DescriptionAltRep; string DescriptionLanguage; string DescriptionTokens; string RepeatData; string RepeatTokens; string SummaryData; string SummaryAltRep; string SummaryLanguage; string SummaryTokens; 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; string DurationData; string DurationTokens; vector AttachList; vector AttachListTokens; vector AttachListEncoding; vector AttachListFormatType; vector AttachListValue; vector XTokensData; vector XTokensDataTokens; }; class CalendarObject{ public: CalendarObjectLoadResult LoadFile(string LoadFilename); CalendarObjectLoadResult LoadString(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. string MethodData; string MethodTokens; string CalendarScaleData; string CalendarScaleTokens; string UniqueID; string UniqueIDTokens; vector AttachList; vector AttachListTokens; vector AttachListEncoding; vector AttachListFormatType; vector AttachListValue; vector CategoriesList; vector CategoriesListLanguage; vector CategoriesListTokens; string ClassData; string ClassDataTokens; string CompletedData; string CompletedDataTokens; vector CommentList; vector CommentListAltRep; vector CommentListLanguage; vector CommentListTokens; vector DescriptionList; vector DescriptionListAltRep; vector DescriptionListLanguage; vector DescriptionListTokens; string GeographicData; string GeographicTokens; string LocationData; string LocationDataAltRep; string LocationDataLanguage; string LocationDataTokens; string PercentCompleteData; string PercentCompleteTokens; int PriorityData = -1; string PriorityTokens; vector ResourcesData; vector ResourcesDataAltRep; vector ResourcesDataLanguage; vector ResourcesDataTokens; string StatusData; string StatusLanguage; string StatusTokens; string SummaryData; string SummaryDataAltRep; string SummaryDataLanguage; string SummaryDataTokens; string DateTimeEndData; string DateTimeEndDataValue; string DateTimeEndDataTimeZoneID; string DateTimeEndDataTokens; string DueData; string DueDataValue; string DueDataTimeZoneID; string DueDataTokens; string DateTimeStartData; string DateTimeStartDataValue; string DateTimeStartDataTimeZoneID; string DateTimeStartDataTokens; string DurationData; string DurationDataTokens; vector FreeBusyList; vector FreeBusyListType; vector FreeBusyListTokens; string TimeTransparencyData; string TimeTransparencyDataTokens; string TimeZoneData; string TimeZoneDataTokens; vector TimeZoneNameList; vector TimeZoneNameListLanguage; vector TimeZoneNameListTokens; string TimeZoneOffsetFromData; string TimeZoneOffsetFromDataTokens; string TimeZoneOffsetToData; string TimeZoneOffsetToDataTokens; string TimeZoneURLData; 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 ContactListAltRep; vector ContactListLanguage; vector ContactListTokens; string OrganiserData; string OrganiserDataCommonName; string OrganiserDataDirectoryEntry; string OrganiserDataSentByParam; string OrganiserDataLanguage; string OrganiserDataTokens; string RecurranceIDData; string RecurranceIDDataTimeZoneParam; string RecurranceIDDataRangeParam; string RecurranceIDDataValue; string RecurranceIDDataTokens; vector RelatedToData; vector RelatedToDataRelationType; vector RelatedToDataTokens; string URLData; string URLDataTokens; vector ExcludeDateData; vector ExcludeDateDataValue; vector ExcludeDateDataTimeZoneParam; vector ExcludeDateDataTokens; vector RecurranceDateData; vector RecurranceDateDataValue; vector RecurranceDateDataTimeZoneParam; vector RecurranceDateDataTokens; string RecurranceRuleData; string RecurranceRuleDataTokens; string TriggerDataList; string TriggerDataValue; string TriggerDataRelatedParam; string TriggerDataTokens; string DateTimeCreatedData; string DateTimeCreatedTokens; string DateTimeStampData; string DateTimeStampTokens; string LastModifiedData; string LastModifiedTokens; int SequenceData = -1; string SequenceTokens; vector XTokensData; vector XTokensDataTokens; vector RequestStatusData; vector RequestStatusLanguage; vector RequestStatusTokens; vector CalendarAlarmData; protected: // Initial Loading Data. vector ObjectName; vector ObjectData; vector> EventAlarmName; vector> EventAlarmData; private: virtual void ProcessData() {}; }; #endif