#include "CalendarObject.h" #include "../../common/file.h" using namespace std; CalendarObjectSaveResult CalendarObject::SaveFile(string SaveFilename){ ofstream FileStream; string ReceivedStringData = ""; // Open the file. FileStream.open(SaveFilename, ofstream::out); if (FileStream.rdstate() & ofstream::failbit){ return CALENDAROBJECTSAVE_CANNOTOPEN; } if (FileStream.rdstate() & ofstream::badbit){ return CALENDAROBJECTSAVE_CANNOTOPEN; } // Process the data into a string. CalendarObjectSaveResult SaveResult = CALENDAROBJECTSAVE_UNITTESTFAIL; string SaveStringData; SaveResult = SaveString(&SaveStringData); FileStream.write(SaveStringData.c_str(), SaveStringData.size()); FileStream.close(); return SaveResult; } CalendarObjectSaveResult CalendarObject::SaveString(string *SaveStringData){ *SaveStringData += "BEGIN:VCALENDAR\n"; *SaveStringData += "VERSION:2.0\n"; // Check if METHOD has a value and print it if it does (and // any token data if there). if (MethodData.size() > 0){ if (MethodTokens.size() > 0){ *SaveStringData += "METHOD;"; *SaveStringData += MethodTokens; } else { *SaveStringData += "METHOD"; } *SaveStringData += ":"; *SaveStringData += MethodData; *SaveStringData += "\n"; } // Check if CALSCALE has a value and print it if it does (and // any token data if there). if (CalendarScaleData.size() > 0){ if (CalendarScaleTokens.size() > 0){ *SaveStringData += "CALSCALE;"; *SaveStringData += CalendarScaleTokens; } else { *SaveStringData += "CALSCALE"; } *SaveStringData += ":"; *SaveStringData += CalendarScaleData; *SaveStringData += "\n"; } #if defined(XESTIACAL_UNITTEST) *SaveStringData += "PRODID:-//Xestia//Calendar Unit Testing//KW\n"; #else *SaveStringData += "PRODID:-//Xestia//Calendar Version "; *SaveStringData += XSDCAL_VERSION; *SaveStringData += "//KW\n"; #endif SaveObjectData(SaveStringData); *SaveStringData += "END:VCALENDAR"; return CALENDAROBJECTSAVE_OK; }