diff options
Diffstat (limited to 'src/memoserv.cpp')
-rw-r--r-- | src/memoserv.cpp | 32 |
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) |