From: Steve Brokenshire Date: Wed, 3 Feb 2016 19:27:48 +0000 (+0000) Subject: Created the CalendarTimezoneObject. X-Git-Tag: release-0.02~398 X-Git-Url: http://Server1/repobrowser/?a=commitdiff_plain;h=c8425b4c58851efe6986659c43f6fc311743b83c;p=xestiacalendar%2F.git Created the CalendarTimezoneObject. --- diff --git a/source/objects/calendartimezone/CalendarTimezone.cpp b/source/objects/calendartimezone/CalendarTimezone.cpp new file mode 100644 index 0000000..cf25c18 --- /dev/null +++ b/source/objects/calendartimezone/CalendarTimezone.cpp @@ -0,0 +1,112 @@ +#include "CalendarTimezone.h" + +using namespace std; + +CalendarObjectValidResult CalendarTimezoneObject::ValidObject(){ + + bool ValidBegin = false; + bool ValidEnd = false; + bool ValidTimeZoneID = false; + int SeekCount = 0; + string PropertyName; + + // Look for BEGIN:VEVENT. + + for (vector::iterator iter = ObjectName.begin(); + iter != ObjectName.end(); iter++){ + + if (ObjectName[SeekCount] == "BEGIN" && + ObjectData[SeekCount] == "VTIMEZONE"){ + + if (ValidBegin == false){ + ValidBegin = true; + } else { + return CALENDAROBJECTVALID_INVALIDFORMAT; + } + + } + + if (ObjectName[SeekCount] == "END" && + ObjectData[SeekCount] == "VTIMEZONE" && + ValidBegin == false){ + + return CALENDAROBJECTVALID_INVALIDFORMAT; + + } + + SeekCount++; + + } + + SeekCount = 0; + + // Look for DTSTAMP. + + for (vector::iterator iter = ObjectName.begin(); + iter != ObjectName.end(); iter++){ + + try{ + PropertyName = ObjectName[SeekCount].substr(0,7); + } + + catch(const out_of_range& oor){ + continue; + } + + if (PropertyName == "TZID"){ + + if (ValidTimeZoneID == false){ + ValidTimeZoneID = true; + } else { + return CALENDAROBJECTVALID_INVALIDFORMAT; + } + + } + + SeekCount++; + + } + + SeekCount = 0; + + // Look for END:VEVENT. + + for (vector::iterator iter = ObjectName.begin(); + iter != ObjectName.end(); iter++){ + + if (ObjectName[SeekCount] == "END" && + ObjectData[SeekCount] == "VTIMEZONE"){ + + if (ValidEnd == false){ + ValidEnd = true; + } else { + return CALENDAROBJECTVALID_INVALIDFORMAT; + } + + } + + SeekCount++; + + } + + // Check if the VEVENT is valid. + + if (ValidBegin == true && + ValidEnd == true && + ValidTimeZoneID == true){ + + return CALENDAROBJECTVALID_OK; + + } else { + + return CALENDAROBJECTVALID_INVALIDFORMAT; + + } + +} + +void CalendarTimezoneObject::ProcessData(){ + + + +} \ No newline at end of file diff --git a/source/objects/calendartimezone/CalendarTimezone.h b/source/objects/calendartimezone/CalendarTimezone.h new file mode 100644 index 0000000..94a351c --- /dev/null +++ b/source/objects/calendartimezone/CalendarTimezone.h @@ -0,0 +1,16 @@ +#ifndef __OBJECTS_CALENDARTIMEZONE_CALENDARTIMEZONE_H__ +#define __OBJECTS_CALENDARTIMEZONE_CALENDARTIMEZONE_H__ + +#include "../calendarobject/CalendarObject.h" + +class CalendarTimezoneObject: public CalendarObject{ + + CalendarObjectValidResult ValidObject(); + + private: + + void ProcessData(); + +}; + +#endif \ No newline at end of file