1
0
mirror of https://github.com/anope/anope.git synced 2026-07-03 18:43:12 +02:00

Optimize much of the database code and serialize code.

This commit is contained in:
Adam
2012-12-13 06:12:56 -05:00
parent 76ba147c22
commit c1077faa28
60 changed files with 1203 additions and 1057 deletions
+14 -7
View File
@@ -137,10 +137,8 @@ bool XLine::IsRegex() const
return !this->mask.empty() && this->mask[0] == '/' && this->mask[this->mask.length() - 1] == '/';
}
Serialize::Data XLine::Serialize() const
void XLine::Serialize(Serialize::Data &data) const
{
Serialize::Data data;
data["mask"] << this->mask;
data["by"] << this->by;
data["created"] << this->created;
@@ -149,13 +147,15 @@ Serialize::Data XLine::Serialize() const
data["uid"] << this->id;
if (this->manager)
data["manager"] << this->manager->name;
return data;
}
Serializable* XLine::Unserialize(Serializable *obj, Serialize::Data &data)
{
ServiceReference<XLineManager> xlm("XLineManager", data["manager"].astr());
Anope::string smanager;
data["manager"] >> smanager;
ServiceReference<XLineManager> xlm("XLineManager", smanager);
if (!xlm)
return NULL;
@@ -176,9 +176,16 @@ Serializable* XLine::Unserialize(Serializable *obj, Serialize::Data &data)
}
else
{
Anope::string smask, sby, sreason, suid;
time_t expires;
data["mask"] >> smask;
data["by"] >> sby;
data["reason"] >> sreason;
data["uid"] >> suid;
data["expires"] >> expires;
xl = new XLine(data["mask"].astr(), data["by"].astr(), expires, data["reason"].astr(), data["uid"].astr());
xl = new XLine(smask, sby, expires, sreason, suid);
xlm->AddXLine(xl);
}