Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Updated/Added copyright header and licensing to all source files
[xestiacalendar/.git] / source / objects / calendarobject / CalendarObject.h
index 0862224..29e21fc 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>
+
+#ifndef __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
+#define __OBJECTS_CALENDAROBJECT_CALENDAROBJECT_H__
+
 #include <string>
 #include <iostream>
 #include <fstream>
 #include <map>
 
 #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<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(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,198 +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;
        
-       std::string CalendarScaleData;
-       std::string CalendarScaleTokens;
+       string UniqueID;
+       string UniqueIDTokens;
        
-       std::string UniqueID;
-       std::string UniqueIDTokens;
+       vector<string> AttachList;
+       vector<string> AttachListTokens;
+       vector<string> AttachListEncoding;
+       vector<string> AttachListFormatType;
+       vector<string> AttachListValue;
        
-       vector<std::string> AttachList;
-       vector<std::string> AttachListTokens;
-       vector<std::string> AttachListEncoding;
-       vector<std::string> AttachListValue;
+       vector<string> CategoriesList;
+       vector<string> CategoriesListLanguage;
+       vector<string> CategoriesListTokens;
        
-       vector<std::string> CategoriesList;
-       vector<std::string> CategoriesListLanguage;
-       vector<std::string> CateogriesListTokens;
+       string ClassData;
+       string ClassDataTokens;
        
-       std::string ClassData;
-       std::string ClassDataTokens;
+       string CompletedData;
+       string CompletedDataTokens;
        
-       vector<std::string> CommentList;
-       vector<std::string> CommentListAltID;
-       vector<std::string> CommentListLanguage;
-       vector<std::string> CommentListTokens;
+       vector<string> CommentList;
+       vector<string> CommentListAltRep;
+       vector<string> CommentListLanguage;
+       vector<string> CommentListTokens;
        
-       vector<std::string> DescriptionList;
-       vector<std::string> DescriptionListAltRep;
-       vector<std::string> DescriptionListLanguage;
-       vector<std::string> DescriptionListTokens;
+       vector<string> DescriptionList;
+       vector<string> DescriptionListAltRep;
+       vector<string> DescriptionListLanguage;
+       vector<string> DescriptionListTokens;
        
-       std::string GeographicData;
-       std::string GeographicTokens;
+       string GeographicData;
+       string GeographicTokens;
        
-       std::string LocationData;
-       std::string LocationDataAltRep;
-       std::string LocationDataLanguage;
-       std::string LocationDataTokens;
+       string LocationData;
+       string LocationDataAltRep;
+       string LocationDataLanguage;
+       string LocationDataTokens;
        
-       std::string PercentCompleteData;
-       std::string PercentCompleteTokens;
+       string PercentCompleteData;
+       string PercentCompleteTokens;
        
        int PriorityData = -1;
-       std::string PriorityTokens;
-       
-       vector<std::string> ResourcesData;
-       vector<std::string> ResourcesDataAltID;
-       vector<std::string> ResourcesDataLanguage;
-       vector<std::string> 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 DateTimeStartData;
-       std::string DateTimeStartDataValue;
-       std::string DateTimeStartDataTimeZoneID;
-       std::string DateTimeStartDataTokens;
-
-       std::string DurationData;
-       std::string DurationDataTokens;
-
-       vector<std::string> FreeBusyList;
-       vector<std::string> FreeBusyListType;
-       vector<std::string> FreeBusyListTokens;
-
-       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;
+       string PriorityTokens;
+       
+       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 DueData;
+       string DueDataValue;
+       string DueDataTimeZoneID;
+       string DueDataTokens;
+
+       string DateTimeStartData;
+       string DateTimeStartDataValue;
+       string DateTimeStartDataTimeZoneID;
+       string DateTimeStartDataTokens;
+
+       string DurationData;
+       string DurationDataTokens;
+
+       vector<string> FreeBusyList;
+       vector<string> FreeBusyListType;
+       vector<string> FreeBusyListTokens;
+
+       string TimeTransparencyData;
+       string TimeTransparencyDataTokens;
+       
+       string TimeZoneData;
+       string TimeZoneDataTokens;
+       
+       vector<string> TimeZoneNameList;
+       vector<string> TimeZoneNameListLanguage;
+       vector<string> TimeZoneNameListTokens;
+       
+       string TimeZoneOffsetFromData;
+       string TimeZoneOffsetFromDataTokens;
+
+       string TimeZoneOffsetToData;
+       string TimeZoneOffsetToDataTokens;
+
+       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> 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;
+
+       string DateTimeStampData;
+       string DateTimeStampTokens;
+
+       string LastModifiedData;
+       string LastModifiedTokens;
+
+       int SequenceData = -1;
+       string SequenceTokens;
+
+       vector<string> XTokensData;
+       vector<string> XTokensDataTokens;
+
+       vector<string> RequestStatusData;
+       vector<string> RequestStatusLanguage;
+       vector<string> RequestStatusTokens;
+       
+       vector<CalendarAlarmDataStruct> CalendarAlarmData;
        
        protected:
        // Initial Loading Data.
-       vector<std::string> ObjectName;
-       vector<std::string> ObjectData;
-
+       vector<string> ObjectName;
+       vector<string> ObjectData;
+       
+       vector<vector<string>> EventAlarmName;
+       vector<vector<string>> EventAlarmData;
+       
        private:
        virtual void ProcessData() {};
   
 };
+
+#endif
\ No newline at end of file
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy