Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added the initial version of CalendarAlarmObject.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 7 Feb 2016 13:19:59 +0000 (13:19 +0000)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 7 Feb 2016 13:19:59 +0000 (13:19 +0000)
source/objects/calendaralarm/CalendarAlarm.cpp [new file with mode: 0644]
source/objects/calendaralarm/CalendarAlarm.h [new file with mode: 0644]

diff --git a/source/objects/calendaralarm/CalendarAlarm.cpp b/source/objects/calendaralarm/CalendarAlarm.cpp
new file mode 100644 (file)
index 0000000..e9f122a
--- /dev/null
@@ -0,0 +1,117 @@
+#include "CalendarAlarm.h"
+
+using namespace std;
+
+CalendarObjectValidResult CalendarAlarmObject::ValidObject(){
+       bool ValidBegin = false;
+       bool ValidEnd = false;
+       bool ValidTimeZoneID = false;
+       int SeekCount = 0;
+       string PropertyName;
+       
+       // Look for BEGIN:VEVENT.
+       
+       for (vector<string>::iterator iter = ObjectName.begin();
+               iter != ObjectName.end(); iter++){
+       
+               if (ObjectName[SeekCount] == "BEGIN" &&
+                       ObjectData[SeekCount] == "VALARM"){
+                       
+                       if (ValidBegin == false){
+                               ValidBegin = true;
+                       } else {
+                               return CALENDAROBJECTVALID_INVALIDFORMAT;
+                       }
+                               
+               }
+               
+               if (ObjectName[SeekCount] == "END" &&
+                       ObjectData[SeekCount] == "VALARM" &&
+                       ValidBegin == false){
+               
+                       return CALENDAROBJECTVALID_INVALIDFORMAT;
+                               
+               }
+               
+               SeekCount++;
+                       
+       }
+       
+       SeekCount = 0;
+       
+       // Look for DTSTAMP.
+       
+       for (vector<string>::iterator iter = ObjectName.begin();
+               iter != ObjectName.end(); iter++){
+                       
+               try{
+                       PropertyName = ObjectName[SeekCount].substr(0,4);
+               }
+                       
+               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<string>::iterator iter = ObjectName.begin();
+               iter != ObjectName.end(); iter++){
+       
+               if (ObjectName[SeekCount] == "END" &&
+                       ObjectData[SeekCount] == "VALARM"){
+                       
+                       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 CalendarAlarmObject::ProcessData(){
+
+       // Process the data.
+       
+       multimap<string,string> DataReceived;
+       map<string,string> PropertyData;
+       string *PropertyNameData = nullptr;
+       int ObjectSeekCount = 0;
+       
+}
\ No newline at end of file
diff --git a/source/objects/calendaralarm/CalendarAlarm.h b/source/objects/calendaralarm/CalendarAlarm.h
new file mode 100644 (file)
index 0000000..b9d0b4a
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef __OBJECTS_CALENDARALARM_CALENDARALARM_H__
+#define __OBJECTS_CALENDARALARM_CALENDARALARM_H__
+
+#include "../calendarobject/CalendarObject.h"
+
+using namespace std;
+
+class CalendarAlarmObject: public CalendarObject{
+  
+       CalendarObjectValidResult ValidObject();
+
+       private:
+       
+       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