1 /***************************************************************************
2 * Copyright (C) 2005/06 by The Quassel Team *
3 * devel@quassel-irc.org *
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) any later version. *
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. *
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 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
22 #include <QDataStream>
24 Message::Message(BufferId __buffer, Type __type, QString __text, QString __sender, quint8 __flags)
25 : _buffer(__buffer), _text(__text), _sender(__sender), _type(__type), _flags(__flags) {
26 _timeStamp = QDateTime::currentDateTime().toUTC();
29 Message::Message(QDateTime __ts, BufferId __buffer, Type __type, QString __text, QString __sender, quint8 __flags)
30 : _timeStamp(__ts), _buffer(__buffer), _text(__text), _sender(__sender), _type(__type), _flags(__flags) {
34 MsgId Message::msgId() const {
38 void Message::setMsgId(MsgId _id) {
42 BufferId Message::buffer() const {
46 QString Message::text() const {
50 QString Message::sender() const {
54 Message::Type Message::type() const {
58 quint8 Message::flags() const {
62 QDateTime Message::timeStamp() const {
67 QDataStream &operator<<(QDataStream &out, const Message &msg) {
68 out << (quint32)msg.timeStamp().toTime_t() << (quint8)msg.type() << (quint8)msg.flags()
69 << msg.buffer() << msg.sender().toUtf8() << msg.text().toUtf8();
73 QDataStream &operator>>(QDataStream &in, Message &msg) {
78 in >> ts >> t >> f >> buf >> s >> m;
79 msg._type = (Message::Type)t;
80 msg._flags = (quint8)f;
82 msg._timeStamp = QDateTime::fromTime_t(ts);
83 msg._sender = QString::fromUtf8(s);
84 msg._text = QString::fromUtf8(m);