summaryrefslogtreecommitdiff
path: root/src/memoserv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/memoserv.cpp')
-rw-r--r--src/memoserv.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/memoserv.cpp b/src/memoserv.cpp
index 21940aca1..faaca180b 100644
--- a/src/memoserv.cpp
+++ b/src/memoserv.cpp
@@ -11,9 +11,41 @@
#include "services.h"
#include "modules.h"
+#include "memoserv.h"
Memo::Memo() : Flags<MemoFlag>(MemoFlagStrings) { }
+SerializableBase::serialized_data Memo::serialize()
+{
+ serialized_data data;
+
+ data["owner"] << this->owner;
+ data["time"] << this->time;
+ data["sender"] << this->sender;
+ data["text"] << this->text;
+
+ return data;
+}
+
+void Memo::unserialize(SerializableBase::serialized_data &data)
+{
+ if (!memoserv)
+ return;
+
+ bool ischan;
+ MemoInfo *mi = memoserv->GetMemoInfo(data["owner"].astr(), ischan);
+ if (!mi)
+ return;
+
+ Memo *m = new Memo();
+ data["owner"] >> m->owner;
+ data["time"] >> m->time;
+ data["sender"] >> m->sender;
+ data["text"] >> m->text;
+
+ mi->memos.push_back(m);
+}
+
unsigned MemoInfo::GetIndex(Memo *m) const
{
for (unsigned i = 0; i < this->memos.size(); ++i)