1 | /*************************************************************************** |
2 | * Copyright (C) 2005-2014 by the Quassel Project * |
3 | * devel@quassel-irc.org * |
4 | * * |
5 | * This program is free software; you can redistribute it and/or modify * |
6 | * it under the terms of the GNU General Public License as published by * |
7 | * the Free Software Foundation; either version 2 of the License, or * |
8 | * (at your option) version 3. * |
9 | * * |
10 | * This program is distributed in the hope that it will be useful, * |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
13 | * GNU General Public License for more details. * |
14 | * * |
15 | * You should have received a copy of the GNU General Public License * |
16 | * along with this program; if not, write to the * |
17 | * Free Software Foundation, Inc., * |
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * |
19 | ***************************************************************************/ |
20 | |
21 | #include "ircevent.h" |
22 | |
23 | Event *IrcEvent::create(EventManager::EventType type, QVariantMap &map, Network *network) |
24 | { |
25 | if ((type & ~EventManager::IrcEventNumericMask) == EventManager::IrcEventNumeric) |
26 | return new IrcEventNumeric(type, map, network); |
27 | |
28 | if ((type & EventManager::EventGroupMask) != EventManager::IrcEvent) |
29 | return 0; |
30 | |
31 | switch (type) { |
32 | case EventManager::IrcEventRawPrivmsg: |
33 | case EventManager::IrcEventRawNotice: |
34 | return new IrcEventRawMessage(type, map, network); |
35 | |
36 | default: |
37 | return new IrcEvent(type, map, network); |
38 | } |
39 | } |
40 | |
41 | |
42 | IrcEvent::IrcEvent(EventManager::EventType type, QVariantMap &map, Network *network) |
43 | : NetworkEvent(type, map, network) |
44 | { |
45 | _prefix = map.take("prefix" ).toString(); |
46 | _params = map.take("params" ).toStringList(); |
47 | } |
48 | |
49 | |
50 | void IrcEvent::toVariantMap(QVariantMap &map) const |
51 | { |
52 | NetworkEvent::toVariantMap(map); |
53 | map["prefix" ] = prefix(); |
54 | map["params" ] = params(); |
55 | } |
56 | |
57 | |
58 | IrcEventNumeric::IrcEventNumeric(EventManager::EventType type, QVariantMap &map, Network *network) |
59 | : IrcEvent(type, map, network) |
60 | { |
61 | _number = map.take("number" ).toUInt(); |
62 | _target = map.take("target" ).toString(); |
63 | } |
64 | |
65 | |
66 | void IrcEventNumeric::toVariantMap(QVariantMap &map) const |
67 | { |
68 | IrcEvent::toVariantMap(map); |
69 | map["number" ] = number(); |
70 | map["target" ] = target(); |
71 | } |
72 | |
73 | |
74 | IrcEventRawMessage::IrcEventRawMessage(EventManager::EventType type, QVariantMap &map, Network *network) |
75 | : IrcEvent(type, map, network) |
76 | { |
77 | _rawMessage = map.take("rawMessage" ).toByteArray(); |
78 | } |
79 | |
80 | |
81 | void IrcEventRawMessage::toVariantMap(QVariantMap &map) const |
82 | { |
83 | IrcEvent::toVariantMap(map); |
84 | map["rawMessage" ] = rawMessage(); |
85 | } |
86 | |