X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fobjects%2Fcalendarobject%2FCalendarObject-Save.cpp;h=ba19b6fcb914e92927c8a80c20d81b3caeb2c2c6;hp=a1043845a2b2375a3862b4e62c67b35d6832fdd2;hb=b0ad0f7c0c3c384040f069d0aa4111388e4b0add;hpb=9cfe89f551413dcf49e5de07137379c90ffce887 diff --git a/source/objects/calendarobject/CalendarObject-Save.cpp b/source/objects/calendarobject/CalendarObject-Save.cpp index a104384..ba19b6f 100644 --- a/source/objects/calendarobject/CalendarObject-Save.cpp +++ b/source/objects/calendarobject/CalendarObject-Save.cpp @@ -3,14 +3,99 @@ using namespace std; -CalendarObjectSaveResult CalendarObject::SaveString(string *SaveStringData){ +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; + } + + FileStream.close(); + + // Process the data into a string. + + CalendarObjectSaveResult SaveResult = CALENDAROBJECTSAVE_UNITTESTFAIL; + string SaveStringData; + + SaveResult = SaveString(&SaveStringData); + + return SaveResult; + } -CalendarObjectSaveResult CalendarObject::SaveFile(string SaveFilename){ +CalendarObjectSaveResult CalendarObject::SaveString(string *SaveStringData){ + + *SaveStringData += "BEGIN:VCARD\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 += "\n"; + +#endif + + SaveObjectData(SaveStringData); + *SaveStringData += "END:VCARD"; } \ No newline at end of file