/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-2014 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <QString>
#include "util.h"
BufferInfo::BufferInfo()
- : _id(0),
+ : _bufferId(0),
_netid(0),
- _gid(0),
+ _type(InvalidBuffer),
+ _groupId(0),
_bufferName(QString())
{
}
-BufferInfo::BufferInfo(BufferId id, NetworkId networkid, uint gid, QString buf)
- : _id(id),
+
+BufferInfo::BufferInfo(BufferId id, NetworkId networkid, Type type, uint gid, QString buf)
+ : _bufferId(id),
_netid(networkid),
- _gid(gid),
+ _type(type),
+ _groupId(gid),
_bufferName(buf)
{
}
-QString BufferInfo::buffer() const {
- if(isChannelName(_bufferName))
- return _bufferName;
- else
- return nickFromMask(_bufferName); // FIXME get rid of global functions and use the Network stuff instead!
+
+BufferInfo BufferInfo::fakeStatusBuffer(NetworkId networkId)
+{
+ return BufferInfo(0, networkId, StatusBuffer);
}
-QDebug operator<<(QDebug dbg, const BufferInfo &b) {
- dbg.nospace() << "(bufId: " << b.uid() << ", netId: " << b.networkId() << ", groupId: " << b.groupId() << ", buf: " << b.buffer() << ")";
- return dbg.space();
+
+QString BufferInfo::bufferName() const
+{
+ if (isChannelName(_bufferName))
+ return _bufferName;
+ else
+ return nickFromMask(_bufferName); // FIXME get rid of global functions and use the Network stuff instead!
+}
+
+
+bool BufferInfo::acceptsRegularMessages() const
+{
+ if(_type == StatusBuffer || _type == InvalidBuffer)
+ return false;
+ return true;
}
-QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo) {
- out << bufferInfo._id << bufferInfo._netid << bufferInfo._gid << bufferInfo._bufferName.toUtf8();
- return out;
+
+QDebug operator<<(QDebug dbg, const BufferInfo &b)
+{
+ dbg.nospace() << "(bufId: " << b.bufferId() << ", netId: " << b.networkId() << ", groupId: " << b.groupId() << ", buf: " << b.bufferName() << ")";
+ return dbg.space();
}
-QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo) {
- QByteArray buffername;
- in >> bufferInfo._id >> bufferInfo._netid >> bufferInfo._gid >> buffername;
- bufferInfo._bufferName = QString::fromUtf8(buffername);
- return in;
+
+QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo)
+{
+ out << bufferInfo._bufferId << bufferInfo._netid << (qint16)bufferInfo._type << bufferInfo._groupId << bufferInfo._bufferName.toUtf8();
+ return out;
}
-uint qHash(const BufferInfo &bufferid) {
- return qHash(bufferid._id.toInt());
+
+QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo)
+{
+ QByteArray buffername;
+ qint16 bufferType;
+ in >> bufferInfo._bufferId >> bufferInfo._netid >> bufferType >> bufferInfo._groupId >> buffername;
+ bufferInfo._type = (BufferInfo::Type)bufferType;
+ bufferInfo._bufferName = QString::fromUtf8(buffername);
+ return in;
}
+
+uint qHash(const BufferInfo &bufferid)
+{
+ return qHash(bufferid._bufferId);
+}