}
+ bool DueProcessed = false;
+
+ // Process the data from DUE.
+
+ DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "DUE");
+
+ if (DataReceived.begin() != DataReceived.end()){
+
+ bool TokenData = false;
+ string PropertyTokens;
+
+ PropertyNameData = (string*)&DataReceived.begin()->first;
+
+ PropertyData = SplitValues(*PropertyNameData);
+
+ for(map<string,string>::iterator iter = PropertyData.begin();
+ iter != PropertyData.end(); iter++){
+
+ if (iter->first == "TZID"){
+
+ DueDataTimeZoneID = iter->second;
+
+ } else if (iter->first == "VALUE"){
+
+ DueDataValue = iter->second;
+
+ } else {
+
+ if (TokenData == false){
+ TokenData = true;
+ } else {
+ PropertyTokens += ";";
+ }
+
+ PropertyTokens += iter->first;
+ PropertyTokens += "=";
+ PropertyTokens += iter->second;
+
+ }
+
+ }
+
+ if (PropertyTokens.size() > 0){
+
+ DueDataTokens = PropertyTokens;
+
+ }
+
+ DueData = DataReceived.begin()->second;
+ DueProcessed = true;
+
+ }
+
+ // If there is no DUE, then check for DURATION.
+
+ if (DueProcessed == false){
+
+ DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "DURATION");
+
+ if (DataReceived.begin() != DataReceived.end()){
+
+ try {
+ DurationDataTokens = DataReceived.begin()->first.substr(9);
+ }
+
+ catch(const out_of_range &oor){
+ // Do nothing as there is no data.
+ }
+
+ DurationData = DataReceived.begin()->second;
+
+ }
+
+ }
+
}
\ No newline at end of file