Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Win32: implement further UTF8 support
[xestiacalendar/.git] / source / objects / calendarobject / CalendarObject.h
index affdcd6..1b03eee 100644 (file)
@@ -1,3 +1,21 @@
+// 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 <map>
 
 #include "../../common/text.h"
+#include "../../version.h"
+
+#if defined(WIN32)
+#include <Windows.h>
+#endif
 
 using namespace std;
 
@@ -21,6 +44,12 @@ enum CalendarObjectLoadResult {
        CALENDAROBJECTLOAD_CANNOTOPEN
 };
 
+enum CalendarObjectSaveResult {
+       CALENDAROBJECTSAVE_UNITTESTFAIL = -1,
+       CALENDAROBJECTSAVE_OK,
+       CALENDAROBJECTSAVE_CANNOTOPEN
+};
+
 enum CalendarObjectValidResult{
        CALENDAROBJECTVALID_UNITTESTFAIL = -1,
        CALENDAROBJECTVALID_OK,
@@ -36,62 +65,64 @@ enum CalendarAlarmAction{
 
 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);
+       CalendarObjectLoadResult LoadFile(string loadFilename);
+       CalendarObjectLoadResult LoadString(string *loadStringData);
+       CalendarObjectSaveResult SaveFile(string saveFilename);
+       CalendarObjectSaveResult SaveString(string *saveStringData);
        CalendarObjectValidResult ValidBaseObject();
        void ProcessBaseData();
        
@@ -100,198 +131,199 @@ class CalendarObject{
        
        virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; };
        virtual void Clear() {};
+       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() {};
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