summaryrefslogtreecommitdiff
path: root/src/bots.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-12-13 06:12:56 -0500
committerAdam <Adam@anope.org>2012-12-13 06:12:56 -0500
commitc1077faa281c5635f85b892e605e23bd6c8fcc3b (patch)
tree213b5f87a19f182e1efd6110f03ff10d5b10ebf6 /src/bots.cpp
parent76ba147c22944b67e8522cd2bb7b6e1bae498ced (diff)
Optimize much of the database code and serialize code.
Diffstat (limited to 'src/bots.cpp')
-rw-r--r--src/bots.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/bots.cpp b/src/bots.cpp
index 1e48d034e..da5fe7574 100644
--- a/src/bots.cpp
+++ b/src/bots.cpp
@@ -82,29 +82,33 @@ BotInfo::~BotInfo()
BotListByUID->erase(this->uid);
}
-Serialize::Data BotInfo::Serialize() const
+void BotInfo::Serialize(Serialize::Data &data) const
{
- Serialize::Data data;
-
- data["nick"].SetMax(64)/*XXX*/ << this->nick;
+ data["nick"] << this->nick;
data["user"] << this->ident;
data["host"] << this->host;
data["realname"] << this->realname;
data["created"] << this->created;
data["flags"] << this->ToString();
-
- return data;
}
Serializable* BotInfo::Unserialize(Serializable *obj, Serialize::Data &data)
{
+ Anope::string nick, user, host, realname, flags;
+
+ data["nick"] >> nick;
+ data["user"] >> user;
+ data["host"] >> host;
+ data["realname"] >> realname;
+ data["flags"] >> flags;
+
BotInfo *bi;
if (obj)
bi = anope_dynamic_static_cast<BotInfo *>(obj);
- else if (!(bi = BotInfo::Find(data["nick"].astr())))
- bi = new BotInfo(data["nick"].astr(), data["user"].astr(), data["host"].astr(), data["realname"].astr());
+ else if (!(bi = BotInfo::Find(nick)))
+ bi = new BotInfo(nick, user, host, realname);
data["created"] >> bi->created;
- bi->FromString(data["flags"].astr());
+ bi->FromString(flags);
return bi;
}