Provide (de)serialization for all event types
[quassel.git] / src / common / ctcpevent.cpp
index 1c6546f..780cda5 100644 (file)
  ***************************************************************************/
 
 #include "ctcpevent.h"
+
+Event *CtcpEvent::create(EventManager::EventType type, QVariantMap &map, Network *network) {
+  if(type == EventManager::CtcpEvent || type == EventManager::CtcpEventFlush)
+    return new CtcpEvent(type, map, network);
+
+  return 0;
+}
+
+
+CtcpEvent::CtcpEvent(EventManager::EventType type, QVariantMap &map, Network *network)
+  : IrcEvent(type, map, network)
+{
+  _ctcpType = static_cast<CtcpType>(map.take("ctcpType").toInt());
+  _ctcpCmd = map.take("ctcpCmd").toString();
+  _target = map.take("target").toString();
+  _param = map.take("param").toString();
+  _reply = map.take("repy").toString();
+  _uuid = map.take("uuid").toString();
+}
+
+
+void CtcpEvent::toVariantMap(QVariantMap &map) const {
+  IrcEvent::toVariantMap(map);
+  map["ctcpType"] = ctcpType();
+  map["ctcpCmd"] = ctcpCmd();
+  map["target"] = target();
+  map["param"] = param();
+  map["reply"] = reply();
+  map["uuid"] = uuid().toString();
+}