CalendarObjectValidResult CalendarObject::ValidBaseObject(){
bool ValidBegin = false;
+ bool ValidAlarmBegin = false;
bool ValidVersion = false;
bool ValidEnd = false;
int SeekCount = 0;
+ vector<int> DeleteLines;
+ vector<string> AlarmObjectName;
+ vector<string> AlarmObjectData;
// Check that the first line contains BEGIN:VCALENDAR
// and it only appears once.
return CALENDAROBJECTVALID_INVALIDFORMAT;
+ } else if (ObjectName[SeekCount] == "END" &&
+ ObjectData[SeekCount] == "VALARM" &&
+ ValidAlarmBegin == false){
+
+ return CALENDAROBJECTVALID_INVALIDFORMAT;
+
+ } else if (ObjectName[SeekCount] == "END" &&
+ ObjectData[SeekCount] == "VCALENDAR" &&
+ ValidAlarmBegin == true){
+
+ return CALENDAROBJECTVALID_INVALIDFORMAT;
+
+ }
+
+ // Look for any VALARM sections.
+
+ if (ValidAlarmBegin == true){
+
+ AlarmObjectName.push_back(ObjectName[SeekCount]);
+ AlarmObjectData.push_back(ObjectData[SeekCount]);
+ DeleteLines.push_back(SeekCount);
+
+ }
+
+ if (ObjectName[SeekCount] == "END" &&
+ ObjectData[SeekCount] == "VALARM" &&
+ ValidAlarmBegin == true){
+
+ EventAlarmName.push_back(AlarmObjectName);
+ EventAlarmData.push_back(AlarmObjectData);
+
+ AlarmObjectName.clear();
+ AlarmObjectData.clear();
+
+ ValidAlarmBegin = false;
+
+ }
+
+ if (ObjectName[SeekCount] == "BEGIN" &&
+ ObjectData[SeekCount] == "VALARM" &&
+ ValidBegin == true){
+
+ if (ValidAlarmBegin == false){
+ ValidAlarmBegin = true;
+ } else {
+ return CALENDAROBJECTVALID_INVALIDFORMAT;
+ }
+
+ AlarmObjectName.push_back(ObjectName[SeekCount]);
+ AlarmObjectData.push_back(ObjectData[SeekCount]);
+ DeleteLines.push_back(SeekCount);
+
}
SeekCount++;
}
+ // Remove lines that aren't needed as they have
+ // been moved to the EventAlarm section.
+
+ for (vector<int>::reverse_iterator deliter = DeleteLines.rbegin();
+ deliter != DeleteLines.rend(); deliter++){
+
+ ObjectName.erase(ObjectName.begin()+(*deliter));
+ ObjectData.erase(ObjectData.begin()+(*deliter));
+
+ }
+
if (ValidBegin == true &&
ValidEnd == true &&
- ValidVersion == true){
-
+ ValidVersion == true &&
+ ValidAlarmBegin == false){
+
return CALENDAROBJECTVALID_OK;
} else {