1 #include "CalendarObject.h"
2 #include "../../common/file.h"
6 CalendarObjectSaveResult CalendarObject::SaveFile(string SaveFilename){
9 string ReceivedStringData = "";
13 FileStream.open(SaveFilename, ofstream::out);
15 if (FileStream.rdstate() & ofstream::failbit){
16 return CALENDAROBJECTSAVE_CANNOTOPEN;
19 if (FileStream.rdstate() & ofstream::badbit){
20 return CALENDAROBJECTSAVE_CANNOTOPEN;
23 // Process the data into a string.
25 CalendarObjectSaveResult SaveResult = CALENDAROBJECTSAVE_UNITTESTFAIL;
26 string SaveStringData;
28 SaveResult = SaveString(&SaveStringData);
30 FileStream.write(SaveStringData.c_str(), SaveStringData.size());
38 CalendarObjectSaveResult CalendarObject::SaveString(string *SaveStringData){
40 *SaveStringData += "BEGIN:VCALENDAR\n";
41 *SaveStringData += "VERSION:2.0\n";
43 // Check if METHOD has a value and print it if it does (and
44 // any token data if there).
46 if (MethodData.size() > 0){
48 if (MethodTokens.size() > 0){
50 *SaveStringData += "METHOD;";
51 *SaveStringData += MethodTokens;
55 *SaveStringData += "METHOD";
59 *SaveStringData += ":";
60 *SaveStringData += MethodData;
61 *SaveStringData += "\n";
65 // Check if CALSCALE has a value and print it if it does (and
66 // any token data if there).
68 if (CalendarScaleData.size() > 0){
70 if (CalendarScaleTokens.size() > 0){
72 *SaveStringData += "CALSCALE;";
73 *SaveStringData += CalendarScaleTokens;
77 *SaveStringData += "CALSCALE";
81 *SaveStringData += ":";
82 *SaveStringData += CalendarScaleData;
83 *SaveStringData += "\n";
87 #if defined(XESTIACAL_UNITTEST)
89 *SaveStringData += "PRODID:-//Xestia//Calendar Unit Testing//KW\n";
93 *SaveStringData += "PRODID:-//Xestia//Calendar Version ";
94 *SaveStringData += XSDCAL_VERSION;
95 *SaveStringData += "//KW\n";
99 SaveObjectData(SaveStringData);
101 *SaveStringData += "END:VCALENDAR";
103 return CALENDAROBJECTSAVE_OK;