+// CalendarObject-Save.cpp - CalendarObject class save functions
+//
+// (c) 2016-2017 Xestia Software Development.
+//
+// This file is part of Xestia Calendar.
+//
+// Xestia Calendar is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Calendar is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
+
#include "CalendarObject.h"
#include "../../common/file.h"
using namespace std;
-CalendarObjectSaveResult CalendarObject::SaveFile(string SaveFilename){
+CalendarObjectSaveResult CalendarObject::SaveFile(string saveFilename){
- ofstream FileStream;
- string ReceivedStringData = "";
+ ofstream fileStream;
+ string receivedStringData = "";
// Open the file.
- FileStream.open(SaveFilename, ofstream::out);
+ fileStream.open(saveFilename, ofstream::out);
- if (FileStream.rdstate() & ofstream::failbit){
+ if (fileStream.rdstate() & ofstream::failbit){
return CALENDAROBJECTSAVE_CANNOTOPEN;
}
- if (FileStream.rdstate() & ofstream::badbit){
+ if (fileStream.rdstate() & ofstream::badbit){
return CALENDAROBJECTSAVE_CANNOTOPEN;
}
- FileStream.close();
-
// Process the data into a string.
- CalendarObjectSaveResult SaveResult = CALENDAROBJECTSAVE_UNITTESTFAIL;
- string SaveStringData;
+ CalendarObjectSaveResult saveResult = CALENDAROBJECTSAVE_UNITTESTFAIL;
+ string saveStringData;
+
+ saveResult = SaveString(&saveStringData);
- SaveResult = SaveString(&SaveStringData);
+ fileStream.write(saveStringData.c_str(), saveStringData.size());
- return SaveResult;
+ fileStream.close();
+
+ return saveResult;
}
-CalendarObjectSaveResult CalendarObject::SaveString(string *SaveStringData){
+CalendarObjectSaveResult CalendarObject::SaveString(string *saveStringData){
- *SaveStringData += "BEGIN:VCALENDAR\n";
- *SaveStringData += "VERSION:2.0\n";
+ *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 (methodData.size() > 0){
- if (MethodTokens.size() > 0){
+ if (methodTokens.size() > 0){
- *SaveStringData += "METHOD;";
- *SaveStringData += MethodTokens;
+ *saveStringData += "METHOD;";
+ *saveStringData += methodTokens;
} else {
- *SaveStringData += "METHOD";
+ *saveStringData += "METHOD";
}
- *SaveStringData += ":";
- *SaveStringData += MethodData;
- *SaveStringData += "\n";
+ *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 (calendarScaleData.size() > 0){
- if (CalendarScaleTokens.size() > 0){
+ if (calendarScaleTokens.size() > 0){
- *SaveStringData += "CALSCALE;";
- *SaveStringData += CalendarScaleTokens;
+ *saveStringData += "CALSCALE;";
+ *saveStringData += calendarScaleTokens;
} else {
- *SaveStringData += "CALSCALE";
+ *saveStringData += "CALSCALE";
}
- *SaveStringData += ":";
- *SaveStringData += CalendarScaleData;
- *SaveStringData += "\n";
+ *saveStringData += ":";
+ *saveStringData += calendarScaleData;
+ *saveStringData += "\n";
}
#if defined(XESTIACAL_UNITTEST)
- *SaveStringData += "PRODID:-//Xestia//Calendar Unit Testing//KW\n";
+ *saveStringData += "PRODID:-//Xestia//Calendar Unit Testing//KW\n";
#else
- *SaveStringData += "PRODID:-//Xestia//Calendar Version ";
- *SaveStringData += XSDCAL_VERSION;
- *SaveStringData += "\n";
+ *saveStringData += "PRODID:-//Xestia//Calendar Version ";
+ *saveStringData += XSDCAL_VERSION;
+ *saveStringData += "//KW\n";
#endif
- SaveObjectData(SaveStringData);
+ SaveObjectData(saveStringData);
+
+ *saveStringData += "END:VCALENDAR";
- *SaveStringData += "END:VCALENDAR";
+ return CALENDAROBJECTSAVE_OK;
}
\ No newline at end of file