+// 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 <http://www.gnu.org/licenses/>
+
#ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
#define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
#include "../../common/text.h"
#include "../../version.h"
+#if defined(WIN32)
+#include <Windows.h>
+#endif
+
using namespace std;
enum CalendarObjectLoadResult {
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<string> AttendeeList;
- vector<string> AttendeeListMember;
- vector<string> AttendeeListDelegatedFrom;
- vector<string> AttendeeListDelegatedTo;
- vector<string> AttendeeListRole;
- vector<string> AttendeeListRSVP;
- vector<string> AttendeeListDirectoryEntry;
- vector<string> AttendeeListSentBy;
- vector<string> AttendeeListCommonName;
- vector<string> AttendeeListCalendarUserType;
- vector<string> AttendeeListParticipationStatus;
- vector<string> AttendeeListLanguage;
- vector<string> AttendeeListTokens;
-
- string DurationData;
- string DurationTokens;
-
- vector<string> AttachList;
- vector<string> AttachListTokens;
- vector<string> AttachListEncoding;
- vector<string> AttachListFormatType;
- vector<string> AttachListValue;
-
- vector<string> XTokensData;
- vector<string> XTokensDataTokens;
+ 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<string> attendeeList;
+ vector<string> attendeeListMember;
+ vector<string> attendeeListDelegatedFrom;
+ vector<string> attendeeListDelegatedTo;
+ vector<string> attendeeListRole;
+ vector<string> attendeeListRSVP;
+ vector<string> attendeeListDirectoryEntry;
+ vector<string> attendeeListSentBy;
+ vector<string> attendeeListCommonName;
+ vector<string> attendeeListCalendarUserType;
+ vector<string> attendeeListParticipationStatus;
+ vector<string> attendeeListLanguage;
+ vector<string> attendeeListTokens;
+
+ string durationData;
+ string durationTokens;
+
+ vector<string> attachList;
+ vector<string> attachListTokens;
+ vector<string> attachListEncoding;
+ vector<string> attachListFormatType;
+ vector<string> attachListValue;
+
+ vector<string> xTokensData;
+ vector<string> xTokensDataTokens;
};
class CalendarObject{
public:
- CalendarObjectLoadResult LoadFile(string LoadFilename);
- CalendarObjectLoadResult LoadString(string *LoadStringData);
- CalendarObjectSaveResult SaveFile(string SaveFilename);
- CalendarObjectSaveResult SaveString(string *SaveStringData);
+ CalendarObjectLoadResult LoadFile(string loadFilename);
+ CalendarObjectLoadResult LoadString(string *loadStringData);
+ CalendarObjectSaveResult SaveFile(string saveFilename);
+ CalendarObjectSaveResult SaveString(string *saveStringData);
CalendarObjectValidResult ValidBaseObject();
void ProcessBaseData();
virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
virtual void Clear() {};
- virtual void SaveObjectData(string *SaveData) {};
+ virtual void SaveObjectData(string *saveData) {};
// Object data.
- string MethodData;
- string MethodTokens;
+ string methodData;
+ string methodTokens;
- string CalendarScaleData;
- string CalendarScaleTokens;
+ string calendarScaleData;
+ string calendarScaleTokens;
- string UniqueID;
- string UniqueIDTokens;
+ string uniqueID;
+ string uniqueIDTokens;
- vector<string> AttachList;
- vector<string> AttachListTokens;
- vector<string> AttachListEncoding;
- vector<string> AttachListFormatType;
- vector<string> AttachListValue;
+ vector<string> attachList;
+ vector<string> attachListTokens;
+ vector<string> attachListEncoding;
+ vector<string> attachListFormatType;
+ vector<string> attachListValue;
- vector<string> CategoriesList;
- vector<string> CategoriesListLanguage;
- vector<string> CategoriesListTokens;
+ vector<string> categoriesList;
+ vector<string> categoriesListLanguage;
+ vector<string> categoriesListTokens;
- string ClassData;
- string ClassDataTokens;
+ string classData;
+ string classDataTokens;
- string CompletedData;
- string CompletedDataTokens;
+ string completedData;
+ string completedDataTokens;
- vector<string> CommentList;
- vector<string> CommentListAltRep;
- vector<string> CommentListLanguage;
- vector<string> CommentListTokens;
+ vector<string> commentList;
+ vector<string> commentListAltRep;
+ vector<string> commentListLanguage;
+ vector<string> commentListTokens;
- vector<string> DescriptionList;
- vector<string> DescriptionListAltRep;
- vector<string> DescriptionListLanguage;
- vector<string> DescriptionListTokens;
+ vector<string> descriptionList;
+ vector<string> descriptionListAltRep;
+ vector<string> descriptionListLanguage;
+ vector<string> descriptionListTokens;
- string GeographicData;
- string GeographicTokens;
+ string geographicData;
+ string geographicTokens;
- string LocationData;
- string LocationDataAltRep;
- string LocationDataLanguage;
- string LocationDataTokens;
+ string locationData;
+ string locationDataAltRep;
+ string locationDataLanguage;
+ string locationDataTokens;
- string PercentCompleteData;
- string PercentCompleteTokens;
+ string percentCompleteData;
+ string percentCompleteTokens;
- int PriorityData = -1;
- string PriorityTokens;
+ int priorityData = -1;
+ string priorityTokens;
- vector<string> ResourcesData;
- vector<string> ResourcesDataAltRep;
- vector<string> ResourcesDataLanguage;
- vector<string> ResourcesDataTokens;
+ vector<string> resourcesData;
+ vector<string> resourcesDataAltRep;
+ vector<string> resourcesDataLanguage;
+ vector<string> resourcesDataTokens;
- string StatusData;
- string StatusLanguage;
- string StatusTokens;
-
- string SummaryData;
- string SummaryDataAltRep;
- string SummaryDataLanguage;
- string SummaryDataTokens;
-
- string DateTimeEndData;
- string DateTimeEndDataValue;
- string DateTimeEndDataTimeZoneID;
- string DateTimeEndDataTokens;
+ 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 dueData;
+ string dueDataValue;
+ string dueDataTimeZoneID;
+ string dueDataTokens;
- string DateTimeStartData;
- string DateTimeStartDataValue;
- string DateTimeStartDataTimeZoneID;
- string DateTimeStartDataTokens;
+ string dateTimeStartData;
+ string dateTimeStartDataValue;
+ string dateTimeStartDataTimeZoneID;
+ string dateTimeStartDataTokens;
- string DurationData;
- string DurationDataTokens;
+ string durationData;
+ string durationDataTokens;
- vector<string> FreeBusyList;
- vector<string> FreeBusyListType;
- vector<string> FreeBusyListTokens;
+ vector<string> freeBusyList;
+ vector<string> freeBusyListType;
+ vector<string> freeBusyListTokens;
- string TimeTransparencyData;
- string TimeTransparencyDataTokens;
+ string timeTransparencyData;
+ string timeTransparencyDataTokens;
- string TimeZoneData;
- string TimeZoneDataTokens;
+ string timeZoneData;
+ string timeZoneDataTokens;
- vector<string> TimeZoneNameList;
- vector<string> TimeZoneNameListLanguage;
- vector<string> TimeZoneNameListTokens;
+ vector<string> timeZoneNameList;
+ vector<string> timeZoneNameListLanguage;
+ vector<string> timeZoneNameListTokens;
- string TimeZoneOffsetFromData;
- string TimeZoneOffsetFromDataTokens;
+ string timeZoneOffsetFromData;
+ string timeZoneOffsetFromDataTokens;
- string TimeZoneOffsetToData;
- string TimeZoneOffsetToDataTokens;
+ string timeZoneOffsetToData;
+ string timeZoneOffsetToDataTokens;
- string TimeZoneURLData;
- string TimeZoneURLTokens;
+ string timeZoneURLData;
+ string timeZoneURLTokens;
- vector<string> AttendeeList;
- vector<string> AttendeeListMember;
- vector<string> AttendeeListDelegatedFrom;
- vector<string> AttendeeListDelegatedTo;
- vector<string> AttendeeListRole;
- vector<string> AttendeeListRSVP;
- vector<string> AttendeeListDirectoryEntry;
- vector<string> AttendeeListSentBy;
- vector<string> AttendeeListCommonName;
- vector<string> AttendeeListCalendarUserType;
- vector<string> AttendeeListParticipationStatus;
- vector<string> AttendeeListLanguage;
- vector<string> AttendeeListTokens;
+ vector<string> attendeeList;
+ vector<string> attendeeListMember;
+ vector<string> attendeeListDelegatedFrom;
+ vector<string> attendeeListDelegatedTo;
+ vector<string> attendeeListRole;
+ vector<string> attendeeListRSVP;
+ vector<string> attendeeListDirectoryEntry;
+ vector<string> attendeeListSentBy;
+ vector<string> attendeeListCommonName;
+ vector<string> attendeeListCalendarUserType;
+ vector<string> attendeeListParticipationStatus;
+ vector<string> attendeeListLanguage;
+ vector<string> attendeeListTokens;
- vector<string> ContactList;
- vector<string> ContactListAltRep;
- vector<string> ContactListLanguage;
- vector<string> ContactListTokens;
-
- string OrganiserData;
- string OrganiserDataCommonName;
- string OrganiserDataDirectoryEntry;
- string OrganiserDataSentByParam;
- string OrganiserDataLanguage;
- string OrganiserDataTokens;
-
- string RecurranceIDData;
- string RecurranceIDDataTimeZoneParam;
- string RecurranceIDDataRangeParam;
- string RecurranceIDDataValue;
- string RecurranceIDDataTokens;
-
- vector<string> RelatedToData;
- vector<string> RelatedToDataRelationType;
- vector<string> RelatedToDataTokens;
-
- string URLData;
- string URLDataTokens;
+ vector<string> contactList;
+ vector<string> contactListAltRep;
+ vector<string> contactListLanguage;
+ vector<string> contactListTokens;
+
+ string organiserData;
+ string organiserDataCommonName;
+ string organiserDataDirectoryEntry;
+ string organiserDataSentByParam;
+ string organiserDataLanguage;
+ string organiserDataTokens;
+
+ string recurranceIDData;
+ string recurranceIDDataTimeZoneParam;
+ string recurranceIDDataRangeParam;
+ string recurranceIDDataValue;
+ string recurranceIDDataTokens;
+
+ vector<string> relatedToData;
+ vector<string> relatedToDataRelationType;
+ vector<string> relatedToDataTokens;
+
+ string urlData;
+ string urlDataTokens;
- vector<string> ExcludeDateData;
- vector<string> ExcludeDateDataValue;
- vector<string> ExcludeDateDataTimeZoneParam;
- vector<string> ExcludeDateDataTokens;
-
- vector<string> RecurranceDateData;
- vector<string> RecurranceDateDataValue;
- vector<string> RecurranceDateDataTimeZoneParam;
- vector<string> RecurranceDateDataTokens;
-
- string RecurranceRuleData;
- string RecurranceRuleDataTokens;
-
- string TriggerDataList;
- string TriggerDataValue;
- string TriggerDataRelatedParam;
- string TriggerDataTokens;
-
- string DateTimeCreatedData;
- string DateTimeCreatedTokens;
+ vector<string> excludeDateData;
+ vector<string> excludeDateDataValue;
+ vector<string> excludeDateDataTimeZoneParam;
+ vector<string> excludeDateDataTokens;
+
+ vector<string> recurranceDateData;
+ vector<string> recurranceDateDataValue;
+ vector<string> recurranceDateDataTimeZoneParam;
+ vector<string> recurranceDateDataTokens;
+
+ string recurranceRuleData;
+ string recurranceRuleDataTokens;
+
+ string triggerDataList;
+ string triggerDataValue;
+ string triggerDataRelatedParam;
+ string triggerDataTokens;
+
+ string dateTimeCreatedData;
+ string dateTimeCreatedTokens;
- string DateTimeStampData;
- string DateTimeStampTokens;
+ string dateTimeStampData;
+ string dateTimeStampTokens;
- string LastModifiedData;
- string LastModifiedTokens;
+ string lastModifiedData;
+ string lastModifiedTokens;
- int SequenceData = -1;
- string SequenceTokens;
+ int sequenceData = -1;
+ string sequenceTokens;
- vector<string> XTokensData;
- vector<string> XTokensDataTokens;
+ vector<string> xTokensData;
+ vector<string> xTokensDataTokens;
- vector<string> RequestStatusData;
- vector<string> RequestStatusLanguage;
- vector<string> RequestStatusTokens;
+ vector<string> requestStatusData;
+ vector<string> requestStatusLanguage;
+ vector<string> requestStatusTokens;
- vector<CalendarAlarmDataStruct> CalendarAlarmData;
+ vector<CalendarAlarmDataStruct> calendarAlarmData;
protected:
// Initial Loading Data.
- vector<string> ObjectName;
- vector<string> ObjectData;
+ vector<string> objectName;
+ vector<string> objectData;
- vector<vector<string>> EventAlarmName;
- vector<vector<string>> EventAlarmData;
+ vector<vector<string>> eventAlarmName;
+ vector<vector<string>> eventAlarmData;
private:
virtual void ProcessData() {};