1 #include "CalendarTimezone.h"
5 CalendarObjectValidResult CalendarTimezoneObject::ValidObject(){
7 bool ValidBegin = false;
9 bool ValidTimeZoneID = false;
13 // Look for BEGIN:VEVENT.
15 for (vector<string>::iterator iter = ObjectName.begin();
16 iter != ObjectName.end(); iter++){
18 if (ObjectName[SeekCount] == "BEGIN" &&
19 ObjectData[SeekCount] == "VTIMEZONE"){
21 if (ValidBegin == false){
24 return CALENDAROBJECTVALID_INVALIDFORMAT;
29 if (ObjectName[SeekCount] == "END" &&
30 ObjectData[SeekCount] == "VTIMEZONE" &&
33 return CALENDAROBJECTVALID_INVALIDFORMAT;
45 for (vector<string>::iterator iter = ObjectName.begin();
46 iter != ObjectName.end(); iter++){
49 PropertyName = ObjectName[SeekCount].substr(0,4);
52 catch(const out_of_range& oor){
56 if (PropertyName == "TZID"){
58 if (ValidTimeZoneID == false){
59 ValidTimeZoneID = true;
61 return CALENDAROBJECTVALID_INVALIDFORMAT;
72 // Look for END:VEVENT.
74 for (vector<string>::iterator iter = ObjectName.begin();
75 iter != ObjectName.end(); iter++){
77 if (ObjectName[SeekCount] == "END" &&
78 ObjectData[SeekCount] == "VTIMEZONE"){
80 if (ValidEnd == false){
83 return CALENDAROBJECTVALID_INVALIDFORMAT;
92 // Check if the VEVENT is valid.
94 if (ValidBegin == true &&
96 ValidTimeZoneID == true){
98 return CALENDAROBJECTVALID_OK;
102 return CALENDAROBJECTVALID_INVALIDFORMAT;
108 void CalendarTimezoneObject::ProcessData(){
112 multimap<string,string> DataReceived;
113 map<string,string> PropertyData;
114 string *PropertyNameData = nullptr;
115 int ObjectSeekCount = 0;
117 // Get the Date Time Stamp (DTSTAMP).
119 DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "TZID");
121 // Process the data from DTSTAMP.
123 if (DataReceived.begin() != DataReceived.end()){
126 TimeZoneDataTokens = DataReceived.begin()->first.substr(5);
129 catch(const out_of_range &oor){
130 // Do nothing as there is no data.
133 TimeZoneData = DataReceived.begin()->second;
137 // Process the data from LAST-MODIFIED.
139 DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "LAST-MODIFIED");
141 if (DataReceived.begin() != DataReceived.end()){
144 LastModifiedTokens = DataReceived.begin()->first.substr(14);
147 catch(const out_of_range &oor){
148 // Do nothing as there is no data.
151 LastModifiedData = DataReceived.begin()->second;