X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2Fcalendarobject%2FCalendarObject.h;h=29e21fcc60623cd0620d814bb375bac1cf1be951;hb=cba151c4b833a26c63984769f921bab5e755decd;hp=142ef2fba4ee2c552795f43deb5cd0f0ccf72f70;hpb=23ed94d24ff92c7e8e1a253575c02935cb672d19;p=xestiacalendar%2F.git diff --git a/source/objects/calendarobject/CalendarObject.h b/source/objects/calendarobject/CalendarObject.h index 142ef2f..29e21fc 100644 --- a/source/objects/calendarobject/CalendarObject.h +++ b/source/objects/calendarobject/CalendarObject.h @@ -1,3 +1,24 @@ +// CalendarObject.h - CalendarObject class header +// +// (c) 2016-2017 Xestia Software Development. +// +// This file is part of Xestia Calendar. +// +// Xestia Calendar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by the +// Free Software Foundation, version 3 of the license. +// +// Xestia Calendar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with Xestia Calendar. If not, see + +#ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__ +#define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__ + #include #include #include @@ -7,28 +28,97 @@ #include #include "../../common/text.h" +#include "../../version.h" using namespace std; enum CalendarObjectLoadResult { - CALENDAROBJECTLOAD_UNITTESTFAIL = -1, - CALENDAROBJECTLOAD_OK, - CALENDAROBJECTLOAD_MISSING, - CALENDAROBJECTLOAD_INVALIDFORMAT, - CALENDAROBJECTLOAD_CANNOTOPEN + CALENDAROBJECTLOAD_UNITTESTFAIL = -1, + CALENDAROBJECTLOAD_OK, + CALENDAROBJECTLOAD_MISSING, + CALENDAROBJECTLOAD_INVALIDFORMAT, + CALENDAROBJECTLOAD_CANNOTOPEN +}; + +enum CalendarObjectSaveResult { + CALENDAROBJECTSAVE_UNITTESTFAIL = -1, + CALENDAROBJECTSAVE_OK, + CALENDAROBJECTSAVE_CANNOTOPEN }; enum CalendarObjectValidResult{ - CALENDAROBJECTVALID_UNITTESTFAIL = -1, - CALENDAROBJECTVALID_OK, - CALENDAROBJECTVALID_INVALIDFORMAT + 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 TriggerRelated; + 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(std::string LoadFilename); - CalendarObjectLoadResult LoadString(std::string *LoadStringData); + CalendarObjectLoadResult LoadFile(string LoadFilename); + CalendarObjectLoadResult LoadString(string *LoadStringData); + CalendarObjectSaveResult SaveFile(string SaveFilename); + CalendarObjectSaveResult SaveString(string *SaveStringData); CalendarObjectValidResult ValidBaseObject(); void ProcessBaseData(); @@ -37,196 +127,203 @@ class CalendarObject{ virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; }; virtual void Clear() {}; + virtual void SaveObjectData(string *SaveData) {}; // Object data. - std::string MethodData; - std::string MethodTokens; + 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; - std::string CalendarScaleData; - std::string CalendarScaleTokens; + string CompletedData; + string CompletedDataTokens; - std::string UniqueID; - std::string UniqueIDTokens; + vector CommentList; + vector CommentListAltRep; + vector CommentListLanguage; + vector CommentListTokens; - vector AttachList; - vector AttachListTokens; - vector AttachListEncoding; - vector AttachListValue; + vector DescriptionList; + vector DescriptionListAltRep; + vector DescriptionListLanguage; + vector DescriptionListTokens; - vector CategoriesList; - vector CategoriesListLanguage; - vector CateogriesListTokens; + string GeographicData; + string GeographicTokens; - std::string ClassData; - std::string ClassListTokens; - - vector CommentList; - vector CommentListAltID; - vector CommentListLanguage; - vector CommentListTokens; - - vector DescriptionList; - vector DescriptionListAltID; - vector DescriptionListLanguage; - vector DescriptionListTokens; - - std::string GeographicData; - std::string GeographicTokens; - - std::string LocationData; - std::string LocationDataAltID; - - std::string PercentCompleteData; - std::string PercentCompleteTokens; - - int PriorityData; - std::string PriorityTokens; - - vector ResourcesData; - vector ResourcesDataAltID; - vector ResourcesDataLanguage; - vector ResourcesDataTokens; - - std::string StatusData; - std::string StatusTokens; - - std::string SummaryData; - std::string SummaryDataAltID; - std::string SummaryDataLanguage; - std::string SummaryDataTokens; - - std::string DataTimeEndData; - std::string DataTimeEndDataValue; - std::string DataTimeEndDataTimeZoneID; - std::string DataTimeEndDataTokens; - - std::string DueData; - std::string DueDataValue; - std::string DueDataTimeZoneID; - std::string DueDataTokens; - - std::string DataTimeStartData; - std::string DataTimeStartDataValue; - std::string DataTimeStartDataTimeZoneID; - std::string DataTimeStartDataTokens; - - 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 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 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 XTokensData; - vector XTokensDataTokens; - - vector RequestStatusData; - vector RequestStatusLanguage; - vector RequestStatusTokens; + 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 ObjectName; + vector ObjectData; + + vector> EventAlarmName; + vector> EventAlarmData; + private: virtual void ProcessData() {}; }; + +#endif \ No newline at end of file