Quassel IRC  Pre-Release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
bufferinfo.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2015 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 <QString>
22 #include <QDataStream>
23 #include <QDebug>
24 #include <QByteArray>
25 
26 #include "bufferinfo.h"
27 
28 #include "util.h"
29 
31  : _bufferId(0),
32  _netid(0),
33  _type(InvalidBuffer),
34  _groupId(0),
35  _bufferName(QString())
36 {
37 }
38 
39 
40 BufferInfo::BufferInfo(BufferId id, NetworkId networkid, Type type, uint gid, QString buf)
41  : _bufferId(id),
42  _netid(networkid),
43  _type(type),
44  _groupId(gid),
45  _bufferName(buf)
46 {
47 }
48 
49 
51 {
52  return BufferInfo(0, networkId, StatusBuffer);
53 }
54 
55 
56 QString BufferInfo::bufferName() const
57 {
59  return _bufferName;
60  else
61  return nickFromMask(_bufferName); // FIXME get rid of global functions and use the Network stuff instead!
62 }
63 
64 
66 {
68  return false;
69  return true;
70 }
71 
72 
73 QDebug operator<<(QDebug dbg, const BufferInfo &b)
74 {
75  dbg.nospace() << "(bufId: " << b.bufferId() << ", netId: " << b.networkId() << ", groupId: " << b.groupId() << ", buf: " << b.bufferName() << ")";
76  return dbg.space();
77 }
78 
79 
80 QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo)
81 {
82  out << bufferInfo._bufferId << bufferInfo._netid << (qint16)bufferInfo._type << bufferInfo._groupId << bufferInfo._bufferName.toUtf8();
83  return out;
84 }
85 
86 
87 QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo)
88 {
89  QByteArray buffername;
90  qint16 bufferType;
91  in >> bufferInfo._bufferId >> bufferInfo._netid >> bufferType >> bufferInfo._groupId >> buffername;
92  bufferInfo._type = (BufferInfo::Type)bufferType;
93  bufferInfo._bufferName = QString::fromUtf8(buffername);
94  return in;
95 }
96 
97 
98 uint qHash(const BufferInfo &bufferid)
99 {
100  return qHash(bufferid._bufferId);
101 }