diff options
author | Adam <Adam@anope.org> | 2012-12-13 06:12:56 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-12-13 06:12:56 -0500 |
commit | c1077faa281c5635f85b892e605e23bd6c8fcc3b (patch) | |
tree | 213b5f87a19f182e1efd6110f03ff10d5b10ebf6 /src/bots.cpp | |
parent | 76ba147c22944b67e8522cd2bb7b6e1bae498ced (diff) |
Optimize much of the database code and serialize code.
Diffstat (limited to 'src/bots.cpp')
-rw-r--r-- | src/bots.cpp | 22 |
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; } |