summaryrefslogtreecommitdiff
path: root/src/ssave/SSaveModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ssave/SSaveModel.cpp')
-rw-r--r--src/ssave/SSaveModel.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/ssave/SSaveModel.cpp b/src/ssave/SSaveModel.cpp
new file mode 100644
index 0000000..820c185
--- /dev/null
+++ b/src/ssave/SSaveModel.cpp
@@ -0,0 +1,85 @@
+/*
+ * SSaveModel.cpp
+ *
+ * Created on: Jan 29, 2012
+ * Author: Simon
+ */
+
+#include "SSaveModel.h"
+#include "client/Client.h"
+
+SSaveModel::SSaveModel():
+ save(NULL),
+ saveUploaded(false)
+{
+ // TODO Auto-generated constructor stub
+
+}
+
+void SSaveModel::notifySaveChanged()
+{
+ for(int i = 0; i < observers.size(); i++)
+ {
+ observers[i]->NotifySaveChanged(this);
+ }
+}
+
+void SSaveModel::notifySaveUploadChanged()
+{
+ for(int i = 0; i < observers.size(); i++)
+ {
+ observers[i]->NotifySaveUploadChanged(this);
+ }
+}
+
+void SSaveModel::UploadSave(std::string saveName, std::string saveDescription, bool publish)
+{
+ save->name = saveName;
+ save->Description = saveDescription;
+ save->Published = publish;
+ saveUploaded = false;
+ notifySaveUploadChanged();
+
+ if(Client::Ref().UploadSave(save) == RequestOkay)
+ {
+ saveUploaded = true;
+ }
+ else
+ {
+ saveUploaded = false;
+ }
+ notifySaveUploadChanged();
+}
+
+void SSaveModel::SetSave(Save * save)
+{
+ this->save = save;
+ notifySaveChanged();
+}
+
+Save * SSaveModel::GetSave()
+{
+ return this->save;
+}
+
+bool SSaveModel::GetSaveUploaded()
+{
+ return saveUploaded;
+}
+
+void SSaveModel::AddObserver(SSaveView * observer)
+{
+ observers.push_back(observer);
+ observer->NotifySaveChanged(this);
+ observer->NotifySaveUploadChanged(this);
+}
+
+void SSaveModel::Update()
+{
+
+}
+
+SSaveModel::~SSaveModel() {
+ delete save;
+}
+