diff options
author | Adam <Adam@anope.org> | 2011-09-25 04:19:15 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-09-25 04:19:15 -0400 |
commit | 1f2399de364c09adcce4193895cd362d80ffdfc5 (patch) | |
tree | 5f40fc531f22c174b6e10bb7bc12842a4a21d30b /src/nickalias.cpp | |
parent | 43201ead9575a74e350710bc191f4ac67366aca7 (diff) |
Added a new database format and sqlite support. Also moved db-convert to a module.
Diffstat (limited to 'src/nickalias.cpp')
-rw-r--r-- | src/nickalias.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/nickalias.cpp b/src/nickalias.cpp index f5269cc9f..7b07a4af3 100644 --- a/src/nickalias.cpp +++ b/src/nickalias.cpp @@ -102,3 +102,47 @@ void NickAlias::OnCancel(User *) new NickServRelease(this, Config->NSReleaseTimeout); } } + +SerializableBase::serialized_data NickAlias::serialize() +{ + serialized_data data; + + data["nick"].setKey().setMax(Config->NickLen) << this->nick; + data["last_quit"] << this->last_quit; + data["last_realname"] << this->last_realname; + data["last_usermask"] << this->last_usermask; + data["last_realhost"] << this->last_realhost; + data["time_registered"].setType(Serialize::DT_INT) << this->time_registered; + data["last_seen"].setType(Serialize::DT_INT) << this->last_seen; + data["nc"] << this->nc->display; + + if (this->hostinfo.HasVhost()) + { + data["vhost_ident"] << this->hostinfo.GetIdent(); + data["vhost_host"] << this->hostinfo.GetHost(); + data["vhost_creator"] << this->hostinfo.GetCreator(); + data["vhost_time"] << this->hostinfo.GetTime(); + } + + return data; +} + +void NickAlias::unserialize(SerializableBase::serialized_data &data) +{ + NickCore *core = findcore(data["nc"].astr()); + if (core == NULL) + return; + + NickAlias *na = new NickAlias(data["nick"].astr(), core); + data["last_quit"] >> na->last_quit; + data["last_realname"] >> na->last_realname; + data["last_usermask"] >> na->last_usermask; + data["last_realhost"] >> na->last_realhost; + data["time_registered"] >> na->time_registered; + data["last_seen"] >> na->last_seen; + + time_t vhost_time; + data["vhost_time"] >> vhost_time; + na->hostinfo.SetVhost(data["vhost_ident"].astr(), data["vhost_host"].astr(), data["vhost_creator"].astr(), vhost_time); +} + |